import java.util.Arrays; class Student implements ...
import java.util.Arrays; class Student implements Comparable<student> { private String snumber; // 学号 private String sname; // 姓名 private String gender; // 性别 private int score; // 成绩 public Student(String snumber, String sname, String gender) { super(); this.snumber = snumber; this.sname = sname; this.gender = gender; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public String getSnumber() { return snumber; } public String getSname() { return sname; } public String getGender() { return gender; } @Override public String toString() { StringBuffer studentInformation = new StringBuffer(); return studentInformation.append("学号:").append(snumber) .append(",姓名:").append(sname) .append(",性别:") .append(gender) .append(",成绩:").append(score).toString(); } //补充代码实现根据学号进行比较,任务是根据学号进行排序 //当前对象的snumber属性值与参数student的snumber属性值进行比较 //通过实现了该方法后,连个Student对象就可以比较大小(根据学号进行比较) @Override public int compareTo(Student student) { return this.snumber.compareTo(student.getSnumber()); } } class Course { private String cnumber; // 课程号 private String cname; // 课程名 private Student[] students; // 修读该课程的学生 public Course(String cnumber, String cname) { super(); this.cnumber = cnumber; this.cname = cname; } public void setStudents(Student[] students) { this.students = students; } /** * 按学号进行排序输出学生信息 */ public void sort() { //private Student[] students; // 修读该课程的学生 //对存放在students中的学生按学号进行排序 //数据结构中学过了排序(),选择自己熟悉的排序方法完成排序 Arrays.sort(students); for(Student student: students) { System.out.println(student); } } /** * 1、统计平均分 2、找出最高分、最低分 3、统计男、女生的平均分 */ public void census() { if (students != null) { int max = students[0].getScore(), min = students[0].getScore(); int count_boy = 0, count_girl = 0; double sum_score_boy = 0, sum_score_girl = 0; for (Student student : students) { int score = student.getScore(); if (score > max) max = score; if (score < min) min = score; if (student.getGender().equals("男")) { count_boy++; sum_score_boy = sum_score_boy + score; } else { count_girl++; sum_score_girl = sum_score_girl + score; } } System.out.printf("最高分:%d,最低分:%d\r\n", max, min); if (count_boy > 0) { System.out.printf("男生平均分:%.2f\r\n", sum_score_boy / count_boy); } else { System.out.println("男生平均分:没有男生修读此课程"); } if (count_girl > 0) { System.out.printf("女生平均分:%.2f\r\n", sum_score_girl / count_girl); } else { System.out.println("女生平均分:没有女生修读此课程"); } System.out.printf("全班平均分:%.2f", (sum_score_boy + sum_score_girl) / (count_boy + count_girl)); } } @Override public String toString() { StringBuffer courseInformation = new StringBuffer(); return courseInformation.append("课程号:").append(cnumber) .append(",课程名称:").append(cname).toString(); } } public class CensusScore { public static void main(String[] args) { Course course = new Course("267266", "高级语言程序设计"); //补充代码实现创建若干个学生,并将创建的学生添加到课程对象的students属性中 Student s1 = new Student("201826701001", "zhangsan", "男"); s1.setScore(90); Student s2 = new Student("201826701010", "lisi", "女"); s2.setScore(89); Student s3 = new Student("201826701006", "wangwu", "男"); s3.setScore(78); Student s4 = new Student("201826701003", "hell", "男"); s4.setScore(92); Student[] students = new Student[] {s1,s2,s3,s4}; course.setStudents(students); course.sort(); //按学号排序,待实现 course.census();//统计,已实现 } }