1.功能调查与系统功能框架图

功能调查图

选课系统系统架构 选课系统功能模块图_用户登录

通过功能调查可以初步确定,系统需要如:学期、课程名称、课程类别、任课老师、学分、学时、上课时间地点等属性,选择的多个课程可用列表存储,左上方标识用户登录状态。

系统功能框架图

选课系统系统架构 选课系统功能模块图_用户登录_02

系统包含用户登录、查看所有课程信息、添加课程、删除课程和查看用户公选课信息5个功能,用于教师统计学生的选修课选课情况。

2.类的设计

UML类图

选课系统系统架构 选课系统功能模块图_txt文件_03

3.类说明

Course类

Course类用来设定公选课相关的属性信息,以便后续生成课程列表。
属性为课程的相关信息,方法用以获取课程的相关信息、设置班级人数和转成字符串输出。

选课系统系统架构 选课系统功能模块图_选课系统系统架构_04


选课系统系统架构 选课系统功能模块图_用户名_05

Student类

Student类用来规定学生选课操作,存储学生选课信息。
属性为List myCourse列表,用列表存储学生选课信息方便添加、删除和展示已选课程信息;
方法规定了学生可进行的操作,添加课程、删除课程和查看已选课程。

选课系统系统架构 选课系统功能模块图_用户名_06


选课系统系统架构 选课系统功能模块图_用户登录_07

FileOperation类

FileOperation类用来从courses.txt文件中读取所有课程信息并写入allCourse列表中;
如果当前登录的用户已选过课,再读取当前路径下students文件夹中"用户名.txt"文件中的信息并写入myCourse列表中。
当退出系统时,将班级人数更新后的allCourse列表写入courses.txt文件中;
将选课信息变动后的myCourse列表写入当前路径下students文件夹中"用户名.txt"文件中,新用户将自动创建文件。

选课系统系统架构 选课系统功能模块图_用户名_08


选课系统系统架构 选课系统功能模块图_txt文件_09

Login类

属性为用户名和密码,由用户输入得到。
方法通过遍历login.txt文件中的用户名和密码,如果存在与用户输入的用户名和密码匹配的条目则登录成功,否则登录失败。可进一步设计修改密码的功能。

选课系统系统架构 选课系统功能模块图_txt文件_10

4.系统的包(package)的规划设计

包结构如下

选课系统系统架构 选课系统功能模块图_用户名_11

login包存放登录模块,file包存放持久化存储模块,courses包存放系统主要功能模块。

5.数据持久化

采用文件进行持久化存储,将所有的课程信息存储在courses.txt文件中,将学生的用户名密码存储在login.txt文件中,将每一个学生的公选课信息以"用户名.txt"的命名方式存储在当前路径下的students文件夹中。

选课系统系统架构 选课系统功能模块图_txt文件_12


选课系统系统架构 选课系统功能模块图_用户登录_13

通过数据持久化,可实现动态更新所有课程的人数信息,记录每位学生的选课信息,用户所进行的选课信息会被保存,在其下次登录选课时将从上次的公选课信息状态下延续。

6.阿里巴巴代码规范扫描插件

通过阿里巴巴代码规范扫描插件的扫描后,发现要在每一个类注释上创建者信息。

选课系统系统架构 选课系统功能模块图_txt文件_14

7.功能演示

用户登录后的界面

选课系统系统架构 选课系统功能模块图_txt文件_15

查看所有课程和查看我的公选课信息

选课系统系统架构 选课系统功能模块图_txt文件_16

添加两门课后,班级人数增加、我的公选课信息条目增加

选课系统系统架构 选课系统功能模块图_用户登录_17

删除一门课后,班级人数减少、我的公选课信息条目减少

选课系统系统架构 选课系统功能模块图_用户名_18

对已选的课程添加或未选的课程删除

选课系统系统架构 选课系统功能模块图_txt文件_19

退出后,将课程信息更改写入相应文件中

选课系统系统架构 选课系统功能模块图_用户登录_20