用一維數組實現:(30個學生)的課程成績統計工作。用隨機數產生全班同學的成績,保存在數組中
2
用一維數組實現:全班同學(30個學生)的課程成績的統計工作 。用隨機數產生全班同學的成績,保存在數組中。
(1) 輸出最高分和它的索引號
(2) 按等級統計出各級別人數。
A級: 90~100分;
B級:80~89分;
C級:70~79分;
D:60~69分;
E級:0~59分
(3)計算全班的平均成績和標準差。標準差公式sqrt(((x1-x)^2 +(x2-x)^2 +…(xn-x)^2)/n ),其中的x表示平均成績。
(4) 對學生成績排序,按降序序列輸出,輸出格式要求:每行10個,用空格分隔;
package 兩個題;
/*
原創:馬志勇
許昌學院
*/
import
java.text.DecimalFormat;
public class Grade {
public static void Fenji(int a[]) {
int A=0,B=0,C=0,D=0,E=0;
for (int i = 0; i < a.length; i++) {
if(a[i]>=90) {
A++;
}
else if(a[i]>=80) {
B++;
}
else if(a[i]>=70) {
C++;
}
else if(a[i]>=60) {
D++;
}
else
E++;
}
System.out.println("***分數段級別***");
System.out.println("A:"+A+"\tB:"+B);
System.out.println("C:"+C+"\tC:"+C);
System.out.println("E:"+E);
}
public static void a_1(int a[]) {
int t=Mix_i(a);
System.out.println("最高分:"+a[t]+"\t
學號:1902-"+(t+1));
}
public static int Mix_i(int a[]) {
int min = 0;
int t = 0;
for (int i = 0; i < a.length; i++) {
if (min < a[i]) {
min = a[i];
t = i;
}
}
return t;
}
public static double average(int a[]) {
double ave=0;
DecimalFormat de=new DecimalFormat();
int sum=0;
for (int i = 0; i < a.length; i++) {
sum=sum+a[i];
}
ave=(sum/30)*100;
return ave;
}
public static String calculate(int a[],double ave) {
DecimalFormat de=new DecimalFormat("0.0");
double result;
String result1;
double middle=0;
for(int i=0;i<a.length;i++) {
middle =Math.pow(a[i]-ave, 2);
}
result=Math.sqrt(middle);
result1=de.format(result);
return result1;
}
public static void jiangxu(int a[]) {
for (int i = 0; i < a.length-1; i++) {
for(int j=i+1;j<a.length;j++) {
if(a[i]<a[j]) {
int mid=a[j];
a[j]=a[i];
a[i]=mid;
}
}
}
int t=0;
for (int i = 0; i < a.length; i++) {
t++;
System.out.print(a[i]+" ");
if(t>14) {
System.out.println("\n");
t=0;
}
}
}
public static void main(String[] args) {
DecimalFormat de=new DecimalFormat("0.0");
System.out.println("**************班級整體情況*****************");
int a[]=new int[30];
for (int i = 0; i < a.length; i++) {
a[i]=(int)((Math.random()*100)+1);
}
a_1(a);
Fenji(a);
double c=average(a)/100;
System.out.println("平均分:"+de.format(c));
System.out.println("標準差:"+calculate(a,c));
System.out.println("降序爲:");
jiangxu(a);
}
}