需求分析
- 学生信息录入,信息包括学号、姓名、专业、四门课成绩、总分、名次;
- 系统可对学生信息浏览、增加、删除和修改;
- 按学生成绩确定名次及信息输出,双向冒泡排序、希尔排序、快速排序、堆排序。
- 要求可对学生信息查询,根据学号或姓名进行查找;
- 信息修改仅可修改四门课成绩;
- 文件存取学生信息。
系统设计
根据DAO分层设计的思路,将系统设计分为以下几个类:
- Student类:学生的基本数据类型,包含学生的所有信息。
- StudentInfo类:存放学生信息的List(学生信息表用ArrayList存取,能够方便增删的同时能够随机存取),并与文本文件进行交互,将信息的修改保存到文件中;
- StudentDAO类:包装对数据的基本操作——增删改查,系统所有的操作都基于该类的方法,同时在初始化时进行一次计算与更新。
- StudentSystem类:用于和用户进行交互,并进行各个类的方法的调度。
- Main:系统的启动
主函数设计
public class StudentSystem {
private Scanner scanner = new Scanner(System.in);
private StudentDAO studentDAO;
public StudentSystem(StudentInfo studentinfo) {
}
public void start(){
System.out.println("******************功能菜单****************");
System.out.println("1. 新增学生信息");
System.out.println("2. 浏览学生信息");
System.out.println("3. 删除学生信息");
System.out.println("4. 查找学生信息");
System.out.println("5. 修改学生信息");
System.out.println("6. 退出系统");
String choice = scanner.next();
switch (choice){
case "1":
addStudent();
start();
break;
case "2":
showAllStudentInfo();
start();
break;
case "3":
deleStudent();
start();
break;
case "4":
searchStudent();
start();
break;
case "5":
updateStudent();
start();
break;
case "6":
System.out.println("退出了系统!");
break;
default