黑马程序员技术交流社区

标题: 前段时间。老湿给整了个题,做了一半。先呈上。后一半还在研究中。 [打印本页]

作者: 木子小四    时间: 2016-4-9 18:26
标题: 前段时间。老湿给整了个题,做了一半。先呈上。后一半还在研究中。
前一半的需求:
随机模拟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;
        }
       


}

作者: 木子小四    时间: 2016-4-9 18:28
阿西吧  弄了半天
作者: 小海龙    时间: 2016-4-9 18:56
不复杂,多练习就OK




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2