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

功能

本系统模拟公选课选课系统,由学生或管理员使用该系统,管理员可以自定义增加或删除课程,学生可以进行选课和查看已选课程。

系统功能框架图

类的设计(UML类图)

类说明

AdministratorService:

说明:管理员对课程的操作

主要方法:addCourse 是向Courses.txt文件中增加课程;

deleteCourse是从Courses.txt文件中删除相应的课程

Course:

说明:课程类

主要属性:name(课程名称),teacher(任课教师),numberSelected(课程已选人数),numberOfStudents(课程限制人数),ArrayListstudents = new ArrayList<>() (学生名单,使用ArrayList存储,使用ArrayList可以很方便的增删查改学生名单)

主要方法:add 是向学生名单中添加学生;

delete是从学生名单中删除某位学生;

Student:

说明:学生类

主要属性:name(学生名字),private Listelective = new ArrayList<>()(该学生的课程信息,使用ArrayList存储,使用ArrayList可以很方便的增删查改某个或某些课程)

主要方法: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管理代码

基本完成了系统的初步原型

简单演示如下:

登录界面:

注册界面:

注册成功:

登录成功:

选择身份界面:

学生界面:

查看已选课程:

确定选课:

管理员操作界面:

网上选课系统java大作业_Java面向对象设计大作业——公选课选课系统相关推荐

  1. 面向对象设计大作业迭代任务

    第0次任务:面向对象入门 目标: 学会设计简单的类(找出类的属性与方法)任务: 请完成作业03-面向对象入门中的书面作业2.1以面向对象方式改造数据结构作业"有理数"(重点). 上 ...

  2. C++大作业(面向对象程序设计大作业)——销售公司员工管理

    面向对象程序设计大作业 目录 面向对象程序设计大作业 1.问题重述 2.编程思想 2.1数据结构 2.2功能确定 3.类的设计 3.1UML图标准 3.2本题类图 4.运行结果 1.输出所有信息 2. ...

  3. java校园爱心公益平台设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java校园爱心公益平台设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java校园爱心公益平台设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技 ...

  4. Springboot林业企业销售系统模块58udx计算机毕业设计-课程设计-期末作业-毕设程序代做

    Springboot林业企业销售系统模块58udx计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot林业企业销售系统模块58udx计算机毕业设计-课程设计-期末作业 ...

  5. HTML5期末大作业:管理系统网站设计——学生信息管理系统模板 (13页) HTML+CSS+JavaScript html网页设计期末大作业_网页设计平时作业

    HTML5期末大作业:管理系统网站设计--学生信息管理系统模板 (13页) HTML+CSS+JavaScript html网页设计期末大作业_网页设计平时作业 常见网页设计作业题材有 个人. 美食. ...

  6. java幼儿早教系统软件设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java幼儿早教系统软件设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java幼儿早教系统软件设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技 ...

  7. java计算机毕业设计宿迁学院学生设计作品交流网站源代码+数据库+系统+lw文档

    java计算机毕业设计宿迁学院学生设计作品交流网站源代码+数据库+系统+lw文档 java计算机毕业设计宿迁学院学生设计作品交流网站源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 ...

  8. java毕业设计校园招聘论坛设计mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计校园招聘论坛设计mybatis+源码+调试部署+系统+数据库+lw java毕业设计校园招聘论坛设计mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S ...

  9. DIV+CSS进行布局 HTML+CSS+JS大作业——汽车销售网站模板(7页) html网页设计期末大作业_网页设计平时作业模板下载

    HTML+CSS+JS大作业--汽车销售网站模板(7页) html网页设计期末大作业_网页设计平时作业模板下载 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. ...

最新文章

  1. 史上最强女游戏程序员
  2. 五态模型-引起进程状态转换的具体原因
  3. appium-java自动化框架设计学习
  4. centos 查看mysql 服务器配置_在CentOS上MySQL数据库服务器配置方法
  5. vb6中使text控件的光标随着增加的内容向下移动
  6. 一个网站服务器有多少个ip,一个服务器可以有多少个ip地址
  7. session的钝化和活化
  8. vue怎么通过if跳出方法_vue多种弹框的弹出形式
  9. 【英语学习】4000 Words 【V1】【U02】The Laboratory
  10. Android 系统(188)---In-Cell、On-Cell、OGS三种屏幕技术
  11. php骑手轨迹_用python模拟美团外卖骑手推送请求
  12. jmeter(十六)配置元件之计数器
  13. Java 多并发之原子访问(Atomic Access)
  14. php留言板验证验证码,留言板7 图形验证码
  15. 盘点一款手机Python编程神器——AidLearning
  16. 创维E900V22C、E900V22D_S905L3A-b芯片_安卓9_当贝桌面_线刷固件包
  17. DirectX SDK 2010 , DXSDK_Jun10.exe, 下载地址
  18. 3.4 方便快捷的魔棒工具 [Ps教程]
  19. Android蓝牙传给iPad,无需越狱通过蓝牙让 iPod touch/iPad 连接 Android 手机共享上网...
  20. 3.EVE-NG导入Dynamips和IOL

热门文章

  1. Debian 7.1.0 安装教程图解(——Debian系统轻量级快速安装法)
  2. [解决]Win7 操作系统不能安装VMware
  3. [MSSQL]ROW_NUMBER函数
  4. 理解Flex itemRenderer(3)--通信
  5. pandas中dataframe的索引使用和转换为array
  6. MVC-RedirectToAction跳转到其他Area
  7. jQuery调用WCF需要注意的一些问题
  8. python如何爬取网站所有目录_[python] 爬取网站所有的URL
  9. 腾讯地图api如何根据地址获取经纬度
  10. 支付宝公共服务窗开发总结