成绩计算实例

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型输出怎么保留一位小数
        
    }
}

 

posted on 2017-03-06 23:35  Arsene.HT  阅读(247)  评论(0编辑  收藏  举报

导航