import java.util.Random;
import java.util.Scanner;
/*
* 1.班级考试要进行分组,键盘录入该班级总共多少组,以及每组的学生数量,
* 2.根据录入的组数及每组学员的数量创建二维数组
* 3.利用随机数产生0-100的成绩(包含0和100)
* 4.要求:
* (1)打印该班级中每组的不及格人数
* (2)打印该班级中每组的平均分
* (3)打印组的最高平均分
* (4)打印班级中的不及格人数
* (5)打印班级平均分
* (6)演示格式如下:
* 请输入班级总组数:3
* 请输入班级中每组的人数:10
* 控制台输出:
* 第1组不及格人数为: 6 人
* 第1组平均分为: 52
* 第2组不及格人数为: 7 人
* 第2组平均分为: 46
* 第3组不及格人数为: 3 人
* 第3组平均分为: 69
* 班级中单组最高平均分为:69
* 班级中不及格人数为: 16 人
* 班级总平均分为: 56
* */
public class Test02 {
public static void main(String[] args) {
Random r = new Random();
Scanner sc = new Scanner(System.in);
System.out.println("请输入班级组数:");
int group_num = sc.nextInt();
System.out.println("请输入每组人数:");
int group_stu_num = sc.nextInt();
//定义班级数组
int[][] class_arr = new int[group_num][group_stu_num];
//获取全班成绩
for(int x=0; x<class_arr.length; x++) {
for(int y=0; y<class_arr[x].length; y++) {
class_arr[x][y] = r.nextInt(101); //默认获得整数类型成绩
}
}
System.out.println("--------------------------");
for(int x=0; x<class_arr.length; x++) { //遍历集合,获取实际成绩
for(int y=0; y<class_arr[x].length; y++){
System.out.print(class_arr[x][y] + " ");
}
System.out.println();
}
System.out.println("--------------------------");
//计算不及格人数与总分
int count = 0; //每组不及格人数计算
int sum = 0; //每组总成绩计算
float avr = 0; //每组平均成绩计算
int class_count = 0; //全班不及格人数计算
int class_sum = 0; //全班总成绩计算
float class_avr = 0; //全班平均成绩计算
float max = 0; //每组最高平均分
for(int x=0; x<class_arr.length; x++) {
for(int y=0; y<class_arr[x].length; y++){
sum += class_arr[x][y]; //计算每组的总成绩
if(class_arr[x][y] < 60) //计算每组的不及格人数
count++;
}
avr = (float)sum / group_stu_num; //计算每组平均分
System.out.print("第" + (x+1) + "组不及格人数为:" + count + " 人。");
System.out.println("\n第" + (x+1) + "组的平均分为:" + avr);
if(max < avr) max = avr; //获取单组最高分
class_count += count; //计算班级总的不及格人数
class_sum += sum; //计算班级总成绩
count = 0;
sum = 0;
}
System.out.println("--------------------------");
System.out.println("班级中单组最高平均分为:" + max);//计算班级平均分
class_avr = (float)class_sum / (group_num * group_stu_num);
System.out.print("班级中不及格人数:" + class_count+ " 人。");
System.out.println("\n班级总平均分:" + class_avr); //疑问:float型输出怎么保留一位小数
}
}