StudentSystem.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package exercise.studentSystem;
  2. import java.util.Arrays;
  3. /**
  4. * @author WanJl
  5. * @version 1.0
  6. * @title StudentSystem
  7. * @description
  8. * @create 2026/7/22
  9. */
  10. public class StudentSystem {
  11. private Student[] students;
  12. private int count;
  13. /**
  14. * 这是一个有参的构造方法,当通过这个构造方法创建对象的时候,就可以创建一个指定长度的学生数组
  15. * @param capacity 学生数组的容量长度
  16. */
  17. public StudentSystem(int capacity) {
  18. //初始化指定容量的学生数组
  19. students=new Student[capacity];
  20. count=0;
  21. }
  22. /**
  23. * 将学生添加到数组中(如果数组已满,提示"数组已满,添加失败")
  24. * @param s
  25. */
  26. public void addStudent(Student s){
  27. if (count>=this.students.length){
  28. System.out.println("数组已满,添加失败");
  29. }else {
  30. // 向数组中添加一个学生对象
  31. students[count]=s;
  32. //学生人数+1
  33. count++;
  34. }
  35. }
  36. /**
  37. * 输出所有学生信息(含平均分)
  38. */
  39. public void printAll(){
  40. for (Student s: students){
  41. System.out.println("学号:"+s.getId()+",姓名:"+s.getName()+
  42. ",Java成绩:"+s.getJavaScore()+",MySQL成绩:"+s.getMysqlScore()+
  43. ",平均成绩:"+s.getAverage());
  44. }
  45. }
  46. /**
  47. * 按平均分降序排序(冒泡排序)
  48. */
  49. public void sortByAverage(){
  50. for (int i = 0; i < students.length-1; i++) {
  51. for (int j = 0; j < students.length-1-i; j++) {
  52. if (students[j].getAverage()<students[j+1].getAverage()){
  53. Student tempStudent=students[j];
  54. students[j]=students[j+1];
  55. students[j+1]=tempStudent;
  56. }
  57. }
  58. }
  59. }
  60. /**
  61. * 返回平均分最高的学生对象
  62. * @return
  63. */
  64. public Student getTopStudent(){
  65. Student s=students[0];
  66. for (int i = 1; i < students.length; i++) {
  67. if (s.getAverage()<students[i].getAverage()){
  68. s=students[i];
  69. }
  70. }
  71. return s;
  72. }
  73. }