• 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接口来实现操作,可以实现不相关类的相同行为,也可以更加灵活地调用定义函数,使得程序结构清晰,并且相同的方法有不同的实现,在选择适合的存储方式和方法时,对代码的改动也较小,灵活性较高,增强了程序的稳定性。
  • 相关阅读:
    范内瓦·布什发表《诚如所思》,被信息界公认为是信息科学经典之作
    1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子
    最后一台小型机下线 阿里巴巴如何“去IOE”
    阿里云确认向12306提供了技术协助,负责承接12306网站75%的余票查询流量
    Weka Experimenter(实验者界面) 简解
    数理统计中 极大似然 的含义简介(举例说明)
    Weka Knowledge Flow(知识流界面) 详解
    Weka Explorer(探索者界面) 详解(4)logistic回归和回归算法
    Weka Explorer(探索者界面) 详解(3)决策树算法,分类器评价标准说明
    Weka Explorer(探索者界面) 详解(2)
  • 原文地址:https://www.cnblogs.com/xyx129221/p/14044495.html
Copyright © 2020-2023  润新知