![]() |
#2
林月儿2015-05-27 19:51
//求人秒解,我们最近的作业!
//任意20名学生,每个学生5门功课成绩。 //1.分别统计每门功课的优、良、中、及格、不及格人数; //2.求出每个同学的总分并按总分由高到低排列; //3.输出每一门成绩的平均分,保留一位小数; class Student{ private static int number=0; private int sno; private int[] score=new int[5]; private int total; private String[] grade=new String[5]; Student(){ sno=++number; this.setScore(); this.setGrade(); this.setTotal(); } public void setScore(){ for(int i=0;i<5;i++){ this.score[i]=new java.util.Scanner(System.in).nextInt(); } } public void setGrade(){ for(int i=0;i<5;i++){ switch(score[i]/10){ case 9:grade[i]="优";break; case 8:grade[i]="良";break; case 7:grade[i]="中";break; case 6:grade[i]="及格";break; default:grade[i]="不及格"; } } } public void setTotal(){ for(int i=0;i<5;i++){ this.total+=score[i]; } } public int getTotal(){ return total; } public int getSno(){ return sno; } public int getScore(int i){ return score[i]; } public String getGrade(int i){ return grade[i]; } } public class homework { public static void main(String[] args){ int num = 20; int[][] matrix=new int[5][5]; double[] ave=new double[5]; Student[] stu=new Student[num]; for(int i=0;i<num;i++){ stu[i]=new Student(); } for(int i=0;i<num-1;i++){ for(int j=0;j<num-i-1;j++){ if(stu[j].getTotal()>stu[j+1].getTotal()){ Student st=stu[j]; stu[j]=stu[j+1]; stu[j+1]=st; } } } for(Student s:stu){ for(int j=0;j<5;j++){ if(s.getGrade(j).equals("优"))matrix[j][0]++; if(s.getGrade(j).equals("良"))matrix[j][1]++; if(s.getGrade(j).equals("中"))matrix[j][2]++; if(s.getGrade(j).equals("及格"))matrix[j][3]++; if(s.getGrade(j).equals("不及格"))matrix[j][4]++; } } System.out.println("科目人数:优 良 中 差 及格 不及格"); for(int i=0;i<5;i++){ System.out.print("科目"+(i+1)); for(int j=0;j<5;j++){ System.out.print(" "+matrix[i][j]); } System.out.println(); } for(int i=0;i<5;i++){ for(int j=0;j<stu.length;j++){ ave[i]=ave[i]+Double.parseDouble(String.valueOf(stu[j].getScore(i))); } } for(int i=0;i<ave.length;i++){ System.out.println("科目"+(i+1)+"的均分:"+ave[i]); } } } |
任意20名学生,每个学生5门功课成绩。
1.分别统计每门功课的优、良、中、及格、不及格人数;
2.求出每个同学的总分并按总分由高到低排列;
3.输出每一门成绩的平均分,保留一位小数;