注册 登录
编程论坛 C++教室

求人秒解,我们最近的作业!

Luareds 发布于 2015-05-26 19:13, 527 次点击
任意20名学生,每个学生5门功课成绩。
1.分别统计每门功课的优、良、中、及格、不及格人数;
2.求出每个同学的总分并按总分由高到低排列;
3.输出每一门成绩的平均分,保留一位小数;
1 回复
#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]);
        }
    }
}
1