使用java编写:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,并按从大到小的顺序进行排序,排序后数据以表格形式输出。
时间: 2023-09-10 08:05:13 浏览: 255
好的,以下是使用Java编写的程序:
```java
import java.util.Scanner;
public class StudentGrades {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] names = new String[5];
int[][] grades = new int[5][3];
double[] averages = new double[5];
// 从键盘输入学生信息和成绩
for (int i = 0; i < 5; i++) {
System.out.print("请输入第" + (i+1) + "个学生的姓名:");
names[i] = input.next();
for (int j = 0; j < 3; j++) {
System.out.print("请输入第" + (i+1) + "个学生的第" + (j+1) + "门课成绩:");
grades[i][j] = input.nextInt();
}
averages[i] = (grades[i][0] + grades[i][1] + grades[i][2]) / 3.0;
}
// 对平均成绩进行排序(冒泡排序)
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4-i; j++) {
if (averages[j] < averages[j+1]) {
// 交换平均成绩
double tempAverage = averages[j];
averages[j] = averages[j+1];
averages[j+1] = tempAverage;
// 交换学生姓名
String tempName = names[j];
names[j] = names[j+1];
names[j+1] = tempName;
// 交换成绩
int[] tempGrades = grades[j];
grades[j] = grades[j+1];
grades[j+1] = tempGrades;
}
}
}
// 输出排序后的表格
System.out.println("学生姓名\t课程1\t课程2\t课程3\t平均成绩");
for (int i = 0; i < 5; i++) {
System.out.print(names[i] + "\t\t");
for (int j = 0; j < 3; j++) {
System.out.print(grades[i][j] + "\t");
}
System.out.println(averages[i]);
}
}
}
```
程序中使用了一个二维数组来存储每个学生的三门课成绩,一个一维数组来存储每个学生的平均成绩,以及一个一维数组来存储每个学生的姓名。首先,程序从键盘输入每个学生的姓名和成绩,并计算出每个学生的平均成绩。然后,程序使用冒泡排序算法对平均成绩进行排序,同时对学生姓名和成绩也进行相应的交换。最后,程序输出排序后的表格,按照学生的平均成绩从大到小的顺序进行排列。
阅读全文