A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

前一半的需求:
随机模拟100个学生的成绩,成绩在20分到100之间,
                然后计算一下平均分,要求保留2位小数,四舍五入的算法。
                然后再计算:        0-10分阶段的人数以及百分比
                                11-20:人数、百分比
                                90-100:人数、百分比
                                及格人数、百分比
-------------------------------------------------------------------------------------------
public class Test1 {
        public static void main(String[] args) {
                pingJunShu();
               
               
        }

        private static void pingJunShu() {
                int[] arr = new int[110];
                int sum = 0;
                int i20 = 0;
                int i50 = 0;
                int i60 = 0;
                int i70 = 0;
                int i80 = 0;
                int i90 = 0;
               
               
                for (int i = 0; i < arr.length; i++) {
                        arr[i] = (int)(Math.random()*80)+20;                //随机成绩在20-100之间
                        System.out.println("arr["+i+"]的分数:"+arr[i]+" ");
                        sum += arr[i];
                       
                        if(arr[i]>=0 && arr[i]< 20){
                                i20++;
                        }else if(arr[i]>=20 && arr[i]< 60){
                                i50++;
                        }else if(arr[i]>=60 && arr[i]< 70){
                                i60++;
                        }else if(arr[i]>=70 && arr[i]< 80){
                                i70++;
                        }else if(arr[i]>=80 && arr[i]< 90){
                                i80++;
                        }else if(arr[i]>=90 && arr[i]< 100){
                                i90++;
                        }
                }
                System.out.println("总成绩:"+sum);
               
                BigDecimal bd1 = new BigDecimal(sum);
                BigDecimal bd2 = new BigDecimal(arr.length);
                BigDecimal bd3 = bd1.divide(bd2, 2, 4);
                System.out.println("平均数:"+bd3);

                String s1 = baiFenBi(arr, i20);
                String s2 = baiFenBi(arr, i50);
                String s3 = baiFenBi(arr, i60);
                String s4 = baiFenBi(arr, i70);
                String s5 = baiFenBi(arr, i80);
                String s6 = baiFenBi(arr, i90);
               
                System.out.println("成绩在20~59的人数共计:"+i50+"人;百分比:"+s2);
                System.out.println("成绩在60~69的人数共计:"+i60+"人;百分比:"+s3);
                System.out.println("成绩在70~79的人数共计:"+i70+"人;百分比:"+s4);
                System.out.println("成绩在80~89的人数共计:"+i80+"人;百分比:"+s5);
                System.out.println("成绩在90~99的人数共计:"+i90+"人;百分比:"+s6);
               
                                       
               
        }


        public static String baiFenBi(int[] arr, int i20) {
                BigDecimal bd6 = new BigDecimal(i20).divide(new BigDecimal(arr.length),4, 4);
                /*BigDecimal bd7 = new BigDecimal("100");
                String s = bd6.multiply(bd7)+"%";*/
               
                NumberFormat nf = NumberFormat.getPercentInstance();
                nf.setMinimumFractionDigits(2);
                String s = ""+nf.format(bd6.doubleValue());
                return s;
        }
       


}

2 个回复

倒序浏览
阿西吧  弄了半天
回复 使用道具 举报
不复杂,多练习就OK
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马