0.背景论述
- 选课系统
- 选课系统的产生,主要是因为学生的数量比较多,如果通过传统的纸上选课方式选课,既浪费大量人力物力,又浪费时间,同时在人为的统计过程中会不可避免的出现错误。因此,如果通过借助网络系统,学生只要在电脑中输入自己的个人选课信息就可以方便地进行统计,老师和学校也可以在网上进行更高效地管理,非常有用(^-^)V。
1.功能调查
-
使用对象
- 管理员:管理员负责维护系统,可以进行添加、删减教师信息及学生信息等功能;
- 教师:老师拥有添加删减课程、修改个人信息、管理选课学生等权限;
- 学生:学生可以进行查看个人信息、浏览课程信息、进行选课等功能。
-
功能设计
- 登陆功能:管理员、教师、学生选择自己的身份进行登录,登录后可以看到不同的功能页面;
- 教师信息:教师基本信息包括:教师姓名、教师工号、教师性别、教师所在学院、职称(教授、副教授、讲师、助教);
- 学生信息:学生基本信息包括:学生姓名、学生学号、学生性别、所在学院、所属专业、所在班级;
- 课程信息:教师登录系统后,可以添加自己所教的课程的基本信息,课程基本信息包括:课程开设学期、班级编号、课程名称、课程类别、选课人数、课程学分、课程学识、上课时间地点;
- 修改个人信息:教师或学生登录系统后可以修改个人信息,且教师或学生只能修改自己的信息,无法看到或修改其他教师或学生的基本信息;
- 选择课程:学生进入选课界面,课程信息呈列表显示,点击“选课”按钮,可以实现选课;
- 管理选课学生:教师进入管理选课界面,可以看到已选自己课程的学生的信息,并且添加删除学生;
2.系统功能框架图
3.类的设计
4.类的说明
-
User类
- 记录使用者的账号和密码。
- username存储账号;
- password存储密码。
-
Manager类
- 记录管理员的账号和密码。
- m_name存储账号;
- m_password存储密码。
-
Course类
- 记录课程信息。
- c_id存储课程编号;
- c_name存储课程名称;
- c_teacher存储任课教师。
-
UserDaoImpl类
- 学生使用系统的可用功能。
- changePass(User):更改用户设置的密码函数调用;
- chooseCourse(String, String):选择课程;
- deleteCourse(String, String):删除选课;
- getAvaCourse(String):查询可选课程;
- getStuCourse(String):查询已选课程;
- login(User):学生登录。
-
ManagerDaoImpl类
- 管理者使用系统的可用功能。
- addCourse(Course):添加课程;
- addUser(User):添加学生;
- deleteCourse(String):删除课程;
- deleteUser(String):删除学生;
- login(Manager):管理者登录;
- selectAllCourse():查看全部课程;
- selectAllUser():查看全部学生;
- selectOneCourse(String):查看某一课程;
- selectOneUser(String):查看某一学生;
- updateCourse(Course):修改课程信息;
- updateUser(User):修改学生信息。
-
UserService类
- 学生使用系统调用功能函数。
- userAvaCourse(String):学生可选课程函数调用;
- userChangePassWord(String):学生修改密码函数调用;
- userChooserCourse(String):学生选择课程函数调用;
- userDeleteCourse(String):学生删除课程函数调用;
- userStuCourse(String):学生查看已选课程函数调用;
- userLogin(String, String):学生登录系统函数调用。
-
ManagerService类
- 管理员使用系统调用功能函数。
- manAddCourse():管理员添加课程函数调用;
- manAddUser():管理员添加学生函数调用;
- manAllCourse():管理员查看所有课程函数调用;
- manAllUser():管理员查看所有学生函数调用;
- manDeleteCourse():管理员删除课程函数调用;
- manDeleteUser():管理员删除学生函数调用;
- manOneCourse():管理员查看某一课程函数调用;
- manOneUser():管理员查看某一学生函数调用;
- manUpdateCourse():管理员修改课程信息函数调用;
- manUpdateUser():管理员修改学生信息函数调用;
- manLogin(String, String):管理员登录系统函数调用。
-
DataBase类
- 调用数据库的数据。
- course存储课程数据;
- password存储密码;
- user存储用户名称。
- getCon():打开需要的数据;
- close(Connection, PreparedStatement, ResultSet):关闭所有数据。
-
Test类
- main(String[]):主菜单目录。
-
ManMenu类
- ShowMenu():管理员功能菜单目录。
-
StuMenu类
- ShowMenu():学生功能菜单目录。
-
CourseControlMenu类
- ShowMenu():管理员对课程进行增删改的菜单目录。
-
CourseLookMenu类
- ShowMenu():管理员对课程进行查看的菜单目录。
-
UserControlMenu类
- ShowMenu():管理员对学生进行增删改的菜单目录。
-
UserLookMenu类
- ShowMenu():管理员对学生进行查看的菜单目录。
5.系统的包(package)的规划设计
- utils包:存放关于目录和调用函数的类;
- model包:存放关于学生、管理员、课程的属性的类;
- service包:存放使用系统时调用功能函数的类;
- Dao包:存放使用的Dao接口的类;
- Impl包:存放实现了Dao接口的类。
6.特色
- DAO模式的使用
- 使用DAO接口来实现操作,可以实现不相关类的相同行为,也可以更加灵活地调用定义函数,使得程序结构清晰,并且相同的方法有不同的实现,在选择适合的存储方式和方法时,对代码的改动也较小,灵活性较高,增强了程序的稳定性。