功能调查与系统功能框架图
功能
本系统模拟公选课选课系统,由学生或管理员使用该系统,管理员可以自定义增加或删除课程,学生可以进行选课和查看已选课程。
系统功能框架图
类的设计(UML类图)
类说明
AdministratorService:
说明:管理员对课程的操作
主要方法:addCourse
是向Courses.txt文件中增加课程;
deleteCourse
是从Courses.txt文件中删除相应的课程
Course:
说明:课程类
主要属性:name(课程名称),teacher(任课教师),numberSelected(课程已选人数),numberOfStudents(课程限制人数),ArrayList
主要方法:add
是向学生名单中添加学生;
delete
是从学生名单中删除某位学生;
Student:
说明:学生类
主要属性:name(学生名字),private List
主要方法:add
是向课程信息中添加某个课程;
delete
是从课程信息中删除某个课程;
StudentCourseOperation:
说明:学生对课程的操作
主要方法:readStuCourse
是从文件中读取该学生的课程信息;
writeStuCourse
是向文件中写入该学生的课程信息;
UserService:
说明:用户服务类,包括用户登录及注册
主要属性:FILE_PATH(用户文件的路径),currentUser(当前用户的用户名),file(File型变量,登录后,如果该用户没有相应的课程txt文件(即首次登录)则创建一个课程txt文件)
主要方法:login
是用户登录;
register
是用户注册;
系统的包(package)的规划设计
特色
DAO模式
使用了两个DAO接口,分别是CourseDAO和StudentDAO
好处:虽然现在只用ArrayList进行数据存储,但是如果以后要用数据库或其他数据类型存储数据的话,Course类和Student类不用更改,直接新写一个相应的数据库类实现DAO接口即可。
MVC模式
以管理员增加课程的操作举例:
实现数据持久化
使用txt文件存储用户名密码、每个学生用户的课程信息,以实现数据持久化
使用阿里巴巴代码规范扫描插件对项目代码进行扫描
首次扫描后发现大量错误:
修改代码规范后:
使用Git管理代码
基本完成了系统的初步原型
简单演示如下:
登录界面:
注册界面:
注册成功:
登录成功:
选择身份界面:
学生界面:
查看已选课程:
确定选课:
管理员操作界面: