一、学生成绩录入与输出
此实例中,从键盘获取需要录入成绩的学生人数,然后继续输入每位学生的各科成绩。
输出学生各科成绩;输出学生所有科目的平均分与总分;输出每门课程的平均分。
1.代码如下:
package work3_20220914;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//获取学生人数
System.out.print("请输入需要录入学生人数:");
int num = input.nextInt();
//动态二维数组,存储录入的学生成绩
double[][] student = new double[num][3];
//静态数组,用来存储课程名字
String[] course = {"语文","数学","英语"};
//通过for循环录入每位同学成绩
//第一层循环为数组行数,表示同学人数
for (int i = 0; i < student.length; i++) {
System.out.println("第" + (i + 1) + "位同学成绩录入:");
//第二层循环为数组列数,表示每门课程成绩
for (int j = 0; j < student[0].length; j++) {
System.out.print(course[j] + ":");
student[i][j] = input.nextDouble();
}
}
double[] average = new double[course.length];//储存每门课程的平均成绩情况
for (int i = 0; i < course.length; i++) {
double scoreAll = 0;
for (int j = 0; j < num; j++) {
scoreAll += student[j][i];
}
average[i] = scoreAll / num;
}
double[][] avStudent = new double[num][2];//记录每位同学的总成绩和平均分情况
for (int i = 0; i < avStudent.length; i++) {
double sum = 0;
double ave = 0;
for (int j = 0; j < course.length; j++) {
sum += student[i][j];
}
avStudent[i][0] = sum;
avStudent[i][1] = sum / course.length;
}
//输出录入学生的成绩情况
System.out.println("----------输出录入学生的成绩情况------------");
System.out.println("录入的" + num + "位同学成绩如下:");
System.out.print("姓名 \t");
for (int i = 0; i < course.length; i++) {
System.out.print(course[i] + " \t");
}
System.out.println();
for (int i = 0; i < student.length; i++) {
System.out.print("学生"+ (i+1) +": \t" );
for (int j = 0; j < student[0].length; j++) {
System.out.print(student[i][j] + " \t");
}
System.out.println();
}
//输出每门课的平均成绩
System.out.println("-----------输出每门课的平均成绩-----------");
System.out.println("每门课的平均成绩如下:");
for (int i = 0; i < course.length; i++) {
System.out.print(course[i] + " \t");
}
System.out.println();
for (int i = 0; i < average.length; i++) {
System.out.print(String.format("%.1f \t", average[i]));//通过字符串的占位符保留一位小数
}
System.out.println();
//输出每位同学的总成绩和平均成绩
System.out.println("---------输出每位同学的总成绩和平均成绩----------");
System.out.println("姓名 \t总成绩 \t平均分 \t");
for (int i = 0; i < avStudent.length; i++) {
System.out.println(String.format("同学%d: \t%.1f \t%.1f \t", (i + 1),avStudent[i][0],avStudent[i][1]));
}
}
}
二、运行结果如下: