设计一个简单的学生成绩管理系统,要求能够录入并存储学生信息、课程信息以及每个学生每门课程的成绩。
学生信息包括姓名、学号。性别和把班级。
课程信息包括课程号、课程名和学分。
系统的功能包括:计算每个学生的总成绩、平均成绩和总学分,计算每个班级的平均成绩,按照学生平均成绩由高到低的顺序进行排序,统计所有学生每门课程的平均成绩。
下面给出题目要求的UML类图
具体代码如下,代码主要是针对这个问题所设计的类图及之间的关系。
Main类,程序入口,含各类菜单调用
package Main;
import java.util.Scanner;
import student.Student;
import course.Course;
import file.File;
import grade.Grade;
import team.Team;
public class Main {
static Scanner in = new Scanner(System.in);
static Student student = new Student();
static Course course = new Course();
public static void main(String[] args) {
Main.mainPage();
}
public static void mainPage()
{
System.out.println("***********************");
System.out.println("\t 1.学生信息");
System.out.println("\t 2.课程信息");
System.out.println("\t 3.班级信息");
System.out.println("\t 4.成绩信息");
// System.out.println("\t 5.文件操作");
System.out.println("***********************");
System.out.println("请输入选项,或者按0退出");
do {
String choice = in.next();
String regex = "[0-4]"; //正则表达式
if(choice.matches(regex))
{
int info = Integer.parseInt(choice);
switch(info)
{
case 0:
System.out.println("-----------------");
System.out.println("您已经退出了系统!");
System.exit(1); //退出程序,返回值随便设置
break;
case 1:
StudentmainPage();
break;
case 2:
CoursemainPage();
break;
case 3:
TeammainPage();
break;
case 4:
GrademainPage();
break;
case 5:
FilemainPage();
default:
break;
}
}
System.out.println("重新选择或者按0退出");
}while(true);
}
public static void StudentmainPage()
{
System.out.println("***********************");
System.out.println("\t 1.录入学生信息");
System.out.println("\t 2.输出学生信息");
System.out.println("\t 3.每个学生各门课程总成绩");
System.out.println("\t 4.每个学生各门课程平均成绩");
System.out.println("\t 5.每个学生课程的总学分");
System.out.println("\t 6.课程平均分按从高到低的顺序排序");
System.out.println("\t 7.返回上一级");
System.out.println("***********************");
System.out.println("请输入选项,或者按0退出");
do {
String choice = in.next();
String regex = "[0-7]"; //正则表达式
if(choice.matches(regex))
{
int info = Integer.parseInt(choice);
switch(info)
{
case 0:
System.out.println("-----------------");
System.out.println("您已经退出了系统!");
System.exit(1); //退出程序,返回值随便设置
break;
case 1:
student = Student.studentinput();
break;
case 2:
Student.studentoutput(Student.studentlist);
break;
case 3:
Student.studentsumOfGrades(Grade.gradeList,Student.studentlist);
break;
case 4:
Student.studentavgOfGrades(Course.courselist,Grade.gradeList,Student.studentlist);
break;
case 5:
Student.studentsumOfCredits(Course.courselist);
break;
case 6:
Student.studentgradeRank();
break;
case 7:
Main.mainPage();
break;
default:
break;
}
}
System.out.println("重新选择或者按0退出");
}while(true);
}
public static void CoursemainPage()
{
System.out.println("***********************");
System.out.println("\t 1.录入课程信息");
System.out.println("\t 2.输出课程信息");
System.out.println("\t 3.每门课程平均分信息");
System.out.println("\t 4.返回上一级");
System.out.println("***********************");
System.out.println("请输入选项,或者按0退出");
do {
String choice = in.next();
String regex = "[0-4]"; //正则表达式
if(choice.matches(regex))
{
int info = Integer.parseInt(choice);
switch(info)
{
case 0:
System.out.println("-----------------");
System.out.println("您已经退出了系统!");
System.exit(1); //退出程序,返回值随便设置
break;
case 1:
course = Course.courseinput();
break;
case 2:
Course.courseoutput(Course.courselist);
break;
case 3:
Course.courseavgOfGrades();
break;
case 4:
Main.mainPage();
break;
default:
break;
}
}
System.out.println("重新选择或者按0退出");
}while(true);
}
public static void TeammainPage()
{
System.out.println("***********************");
System.out.println("\t 1.录入班级信息");
System.out.println("\t 2.输出班级信息");
System.out.println("\t 3.每个班级的班级总分平均分");
System.out.println("\t 4.返回上一级");
System.out.println("***********************");
System.out.println("请输入选项,或者按0退出");
do {
String choice = in.next();
String regex = "[0-4]"; //正则表达式
if(choice.matches(regex))
{
int info = Integer.parseInt(choice);
switch(info)
{
case 0:
System.out.println("-----------------");
System.out.println("您已经退出了系统!");
System.exit(1); //退出程序,返回值随便设置
break;
case 1:
Team.teaminput(student);
break;
case 2:
Team.teamoutput(Team.teamlist);
break;
case 3:
Team.teamavgOfGrades();
break;
case 4:
Main.mainPage();
break;
default:
break;
}
}
System.out.println("重新选择或者按0退出");
}while(true);