学生成绩管理系统是一个比较大的工程,需要设计和实现多个模块。以下是一个简单的基于Java的成绩管理系统的示例代码:
import java.util.Scanner;
public class GradeManagementSystem {
private static int NUM_STUDENTS = 5;
private static int NUM_SUBJECTS = 3;
private static String[] studentNames = new String[NUM_STUDENTS];
private static String[] subjectNames = {"Math", "English", "Science"};
private static int[][] grades = new int[NUM_STUDENTS][NUM_SUBJECTS];
/**
* 初始化学生和科目的名字
*/
private static void initNames() {
studentNames[0] = "Alice";
studentNames[1] = "Bob";
studentNames[2] = "Charlie";
studentNames[3] = "Dave";
studentNames[4] = "Eve";
}
/**
* 读取成绩
*/
private static void readGrades() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < NUM_STUDENTS; i++) {
System.out.println("Enter grades for student " + studentNames[i] + ":");
for (int j = 0; j < NUM_SUBJECTS; j++) {
System.out.println(subjectNames[j] + ":");
grades[i][j] = scanner.nextInt();
}
}
}
/**
* 计算平均成绩
*
* @return 平均成绩
*/
private static double[] calcAvgGrades() {
double[] result = new double[NUM_STUDENTS];
for (int i = 0; i < NUM_STUDENTS; i++) {
int sum = 0;
for (int j = 0; j < NUM_SUBJECTS; j++) {
sum += grades[i][j];
}
result[i] = (double) sum / NUM_SUBJECTS;
}
return result;
}
/**
* 输出学生成绩单
*/
private static void printGradeReport() {
System.out.println("-----Grade Report-----");
System.out.printf("%-10s%-10s%-10s%-10s\n","Name","Math","English","Science");
double[] avgGrades = calcAvgGrades();
for (int i = 0; i < NUM_STUDENTS; i++) {
System.out.printf("%-10s%-10d%-10d%-10d\n", studentNames[i],
grades[i][0], grades[i][1], grades[i][2]);
}
System.out.println("----------------------");
System.out.printf("%-10s%-10.2f%-10.2f%-10.2f\n","Average",
avgGrades[0], avgGrades[1], avgGrades[2]);
}
/**
* 主函数
*/
public static void main(String[] args) {
initNames();
readGrades();
printGradeReport();
}
}
这个程序包括以下主要功能:
- 初始化学生和科目的名称;
- 读取每个学生的成绩信息;
- 计算每个学生的平均成绩;
- 输出每个学生的成绩信息和平均成绩。
运行程序后,它会提示您输入每个学生的成绩,然后输出学生的成绩单,包括每个学生的平均成绩。