Java02-面向对象分析与设计大作业(选课系统)

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接口来实现操作,可以实现不相关类的相同行为,也可以更加灵活地调用定义函数,使得程序结构清晰,并且相同的方法有不同的实现,在选择适合的存储方式和方法时,对代码的改动也较小,灵活性较高,增强了程序的稳定性。
原文地址:https://www.cnblogs.com/xyx129221/p/14044495.html