怎么录入n个学生的名字,学号,m(m<6)科成绩。1.同时计算出每门学科和每位同学的平均成绩,2.分别按照总成绩和学号由大到小排列 注:1.用java编写 2.只学到了继承,希望用之前的知识点写3.能不能多写点注释,我主要想了解思路4.能否用最简单的方法,特别是录入数据的方法思路,怎样才能让后面的操作简单点
3条回答 默认 最新
- CSDN专家-sinJack 2023-03-31 09:33关注
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入学生人数:"); int n = scanner.nextInt(); System.out.println("请输入科目数:"); int m = scanner.nextInt(); // 记录每个学生的名字、学号和各科成绩 String[] names = new String[n]; String[] numbers = new String[n]; double[][] scores = new double[n][m]; // 录入学生信息和成绩 for (int i = 0; i < n; i++) { System.out.println("请输入第" + (i+1) + "个学生的名字:"); names[i] = scanner.next(); System.out.println("请输入第" + (i+1) + "个学生的学号:"); numbers[i] = scanner.next(); for (int j = 0; j < m; j++) { System.out.println("请输入第" + (i+1) + "个学生的第" + (j+1) + "门成绩:"); scores[i][j] = scanner.nextDouble(); } } // 计算每门学科的平均成绩 double[] subjectAverages = new double[m]; for (int i = 0; i < m; i++) { double sum = 0; for (int j = 0; j < n; j++) { sum += scores[j][i]; } subjectAverages[i] = sum / n; System.out.println("第" + (i+1) + "门学科的平均成绩为:" + subjectAverages[i]); } // 计算每位同学的平均成绩和总成绩 Student[] students = new Student[n]; for (int i = 0; i < n; i++) { double sum = 0; for (int j = 0; j < m; j++) { sum += scores[i][j]; } double average = sum / m; students[i] = new Student(names[i], numbers[i], scores[i], average, sum); System.out.println(students[i]); } // 按照总成绩由大到小排序 Arrays.sort(students, new Comparator<Student>() { public int compare(Student s1, Student s2) { if (s1.getTotalScore() > s2.getTotalScore()) { return -1; } else if (s1.getTotalScore() < s2.getTotalScore()) { return 1; } else { return 0; } } }); System.out.println("按照总成绩由大到小排列的结果如下:"); for (Student student : students) { System.out.println(student); } // 按照学号由大到小排序 Arrays.sort(students, new Comparator<Student>() { public int compare(Student s1, Student s2) { return s2.getNumber().compareTo(s1.getNumber()); } }); System.out.println("按照学号由大到小排列的结果如下:"); for (Student student : students) { System.out.println(student); } } } class Student { private String name; // 姓名 private String number; // 学号 private double[] scores; // 成绩 private double averageScore; // 平均成绩 private double totalScore; // 总成绩 public Student(String name, String number, double[] scores, double averageScore, double totalScore) { this.name = name; this.number = number; this.scores = scores; this.averageScore = averageScore; this.totalScore = totalScore; } public String getName() { return name; } public String getNumber() { return number; } public double[] getScores() { return scores; } public double getAverageScore() { return averageScore; } public double getTotalScore() { return totalScore; } public String toString() { return "姓名:" + name + " 学号:" + number + " 平均成绩:" + averageScore + " 总成绩:" + totalScore; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用