用java实现键盘输入5位同学的三门课成绩(Java,MySQL,Html) 要求: a. 显示出每名学生的名字和每门课程的成绩,及三门课的平均成绩,最高成绩,最低成绩 b. 按照平均成绩从高到低排序输出学生的名字和平均成绩
时间: 2024-01-02 13:01:51 浏览: 112
编制一个程序,要求输入5个学生的学号、2门课的成绩,然后输出每个学生的学号、2门课成绩、平均成绩。
3星 · 编辑精心推荐
可以使用Java代码实现上述要求:
```java
import java.util.*;
public class StudentScore {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] names = new String[5]; // 保存学生姓名
double[][] scores = new double[5][3]; // 保存学生成绩
double[] averages = new double[5]; // 保存学生平均成绩
// 输入学生姓名和成绩
for (int i = 0; i < 5; i++) {
System.out.print("请输入第" + (i+1) + "位学生的姓名:");
names[i] = scanner.next();
System.out.print("请输入" + names[i] + "的Java成绩:");
scores[i][0] = scanner.nextDouble();
System.out.print("请输入" + names[i] + "的MySQL成绩:");
scores[i][1] = scanner.nextDouble();
System.out.print("请输入" + names[i] + "的Html成绩:");
scores[i][2] = scanner.nextDouble();
// 计算平均成绩
averages[i] = (scores[i][0] + scores[i][1] + scores[i][2]) / 3;
}
// 输出每名学生的成绩和平均成绩
System.out.println("姓名 Java MySQL Html 平均成绩 最高成绩 最低成绩");
for (int i = 0; i < 5; i++) {
System.out.printf("%-7s%-8.2f%-8.2f%-8.2f%-9.2f%-9.2f%-9.2f\n",
names[i], scores[i][0], scores[i][1], scores[i][2], averages[i],
getMax(scores[i]), getMin(scores[i]));
}
// 按照平均成绩从高到低排序并输出
sort(names, averages);
System.out.println("按照平均成绩从高到低排序的结果:");
for (int i = 0; i < 5; i++) {
System.out.println(names[i] + ":" + averages[i]);
}
}
// 计算最高成绩
public static double getMax(double[] scores) {
double max = scores[0];
for (int i = 1; i < scores.length; i++) {
if (scores[i] > max) {
max = scores[i];
}
}
return max;
}
// 计算最低成绩
public static double getMin(double[] scores) {
double min = scores[0];
for (int i = 1; i < scores.length; i++) {
if (scores[i] < min) {
min = scores[i];
}
}
return min;
}
// 按照平均成绩从高到低排序
public static void sort(String[] names, double[] averages) {
for (int i = 0; i < 4; i++) {
for (int j = i+1; j < 5; j++) {
if (averages[i] < averages[j]) {
// 交换平均成绩
double temp = averages[i];
averages[i] = averages[j];
averages[j] = temp;
// 交换学生姓名
String tempName = names[i];
names[i] = names[j];
names[j] = tempName;
}
}
}
}
}
```
运行上述代码,依次输入每位学生的姓名和三门课成绩,程序会输出每名学生的成绩和平均成绩,并按照平均成绩从高到低排序并输出。
阅读全文