【毕业设计】JSP自动排课管理系统(源代码+论文+开题报告)


目录

在这里插入图片描述

一、系统设计

3.1实现功能

1 掌握学校所有的课程和教师的信息。包括每门课程的时间、班级以及任课老师的姓名等。

  2 针对不同的人员授予不同的权限。提供灵活的浏览、查询功能。可以查看某个系、某个班级所有课程的信息。

3 可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该班级课程表。

4 可以对课程进行变动管理。既可以手工排课,又可以实现自动排序功能。

5 帮助系统维护可以实现:操作日志、重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。

6 提供一种或多种课程表输出功能,并使用活动的模板输出功能,输出样式可以由用户自定义。

7 实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如:大学语文自动排列的分布方式可以是周一至周六,那么系统就会自动将其平均分布在周一至周六这些天里)

  8用户管理:设置两个级别用户:管理员和普通用户,管理员有权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户) 

3.2功能与模块的设计

3.2.1 设计思想

本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。

数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。
在这里插入图片描述
3.2.2 各模块设计与分析

 此处中各模块的设计与分析在以下各模块数据流图与程序中同步讲解。

3.2.3 系统ER图在这里插入图片描述
系统E -R图说明:

 本系统是一个排课管理系统,主要是根据班级为单位,利用班级与课程来进行排课。

班级与课程是一对多的关系,班级不能重复,但是课程可以随意出现任何班级。

班级与班级课程信息之间也是一对多的关系,一个班级,可以有很多不同的课程。

班级与临时生成课表是一对多的关系,一个班级,只能有一个课程表,而排列的方式都同样由班级获得。

其余的数据库建立都是在让系统方便使用的基础上建立的,还有一个无需用户手动添加数据的,做为内部参数来使用的表,这里就不用标出的了。

3.2.4 数据字典

数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实完善的。明确地需求收集和分析作为数据库设计的第一阶段是十分重要的。这一阶段收集到的基础数据(用数据字典来表达)和一组数据流程图(Data Flow Diagram,简称DFD)是下一步进行概念设计的基础。

以下是本系统的数据结构,因实现使用方便的特点,数据库中的各字段列表直接用中文来表示,所以数据字典在以下数据库设计中已经没有什么太大的必要。

二、系统实现

4.1登陆系统流程图

在这里插入图片描述
设计说明:进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程:

(1) 检测数据库中有无管理员帐号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入.

(2) 验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆界面

(3) 当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体.
在这里插入图片描述
模块设计说明:班级的操作部分是排课程序正常执行的重要部分,班级的添加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。
在这里插入图片描述
模块设计说明:课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。

注:已生成课程表的返回:由于课程表排列好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到未生成状态,这样就会导致不可预知的错误发生。
在这里插入图片描述
模块设计说明:此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。

(1)排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现死循环。

(2)列出对应课程教师的未被占用的排课列表和班级的课程占用表。

(3)穷举法列出以上两者之间的共通点,可用点。

(4)最后通过循环随机选择来实现课程的定位与排列。

(5)课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格式来排列,例如两节连排,也就是说可以把该课程在同一天排在一起,可以实现两节课连上,这是大学课表里最常用的一个功能。

源文件

在这里插入图片描述

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值