【编者按】:网学网JSP,NET,JAVA类别为您提供JSP自动排课系统的设计参考,解决您在JSP自动排课系统的设计学习中工作中的难题,参考学习。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
第四章 系统流程图设计与分析 4.1登陆系统流程图 设计说明:进入主界面后,等待操作用户输入用户名和密码,在输入之后按确定进入,验证用户名和密码,实现流程: (1) 检测数据库中有无管理员帐号,如果有,则等待用户输入用户名和密码,否则按程序本身自动执行插入命令,新建一个管理员用户,并等待用户输入. (2) 验证用户名和密码是否正确,错误次数不能超过三次,超过三次则退出系统登陆界面 (3) 当验证通过后,检测该登陆用户的管理权限,并设置变量传值给主窗体. 4.2 主界面中课表生成部分流程图 4.2.1 班级管理流程图 模块设计说明:班级的操作部分是排课程序正常执行的重要部分,班级的添加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。 4.2.2 班级课程处理流程图 模块设计说明:课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。 注:已生成课程表的返回:由于课程表排列好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到未生成状态,这样就会导致不可预知的错误发生。 4.2.3 课表生成部分流程图 模块设计说明:此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。 (1)排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现死循环。 (2)列出对应课程教师的未被占用的排课列表和班级的课程占用表。 (3)穷举法列出以上两者之间的共通点,可用点。 (4)最后通过循环随机选择来实现课程的定位与排列。 (5)课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格式来排列,例如两节连排,也就是说可以把该课程在同一天排在一起,可以实现两节课连上,这是大学课表里最常用的一个功能。 4.2.4 报表输出功能 模块设计说明:此处采用了两种输出方式,第一种是普通的报表方式输出,可以实现一般的打印预览等功能,第二种则是采用模板功能,用户可以自由修改模板,前提是不可以更改数据位,其它的部分无论如何修改都没有关系。 4.3其它模块设计说明(用户管理模块,时间段模块,课程管理模块) 此处几个模块是经过资源优化将其与班级管理整合在一起的,此处工作流程基本上与班级管理的流程相同。 4.4 调课功能实现及设计说明 由系统自动排课生成的并不一定能完全达到用户所想需要的效果,虽然在程序中解决了系统冲突的出现,但是因为某些原因而出现临时的原因都需要进行调课,因此排课系统中除了自动生成课表还必须有很灵活的调课功能才能让系统更完整,也便如使用. 此处调课是事先获取系统有用资源空间,并在图表中进行背景色变色显示,提示用户该门课程可以调动至变色显示的地方,主要是通过班级的课程占用与该教师的排课占用情况进行对比,寻找有利和适用的位置,并等待用户进行调课操作. 执行调课:在进行以上操作后,计算机自动等待用户选择系统列出的调课点,在选择某调课点后,系统自动清除数据库的中该课程的教师与当前班级该处资源占用情况,并同时清除图表中的资料,将其重新放置到新位置,并修改新地点的资源占用情况,最后将图表的可调位置背景色还原回正常状态. 第五章 设计进程 3月13日:获得毕业设计课题与论文规范 3月14日:构思后台数据库的内容,前台操作界面与实现大体的功能 3月16日:创建数据库后台,建立连接数据库的模块,创建主界面窗体,并初步使用数据处理 3月17日:构思资源优化,对排课必须的功能进行归纳并构思采用排课方式 3月21日:构思采用教师与班级之间的资源占用表来进行穷举法排列,并通过随机生成取得理想排课位置。 3月24日:完成生成课表部分代码,并进行反复测试,寻找系统错误部分,并加以修改。 3月26日:开始加入班级课程添加,删除,修改等代码,并加以调试 3月28日:为防止系统崩溃,加入系统还原代码,注销课程表代码 3月29日:开始编写班级管理与用户管理等部分的代码,并加以整合 4月1日:设计报表的输出功能,并采用了EXECL电子表格作为模板的输出功能 4月3日:加入防错代码,并进行大范围测试,减少程序出错机率 4月5日:后期进行美化效果处理 4月8日:引用论文规范的模板,着手论文的完成 4月14日:完成论文 第六章 结论和总结 确定了本系统的实用价值后,选用了目前最常用也最简便的sqlserver数据库做为后台,鉴于ADO在很多程序里的广泛应用,使用ADO来连接数据库将是最为适用的,并且在定义了ADO的连接模块后,对于将来的升级也会很方便,只要修改一下连接源,就可以轻松的更换后台,sqlserver适用于单机版,当想转换为网络版的SQL数据库时,就很容易做到 为了减少系统的数据资源,选用了目前最方便的将数据交给后台处理的方法,即使用SQL的语句将数据库交给SQLSERVER后台,由后台来处理,这样系统的执行会加快,也使用程序本身变得简单 1. 本程序使用了新型控件flexcell,此控件的双色表格与单元格的特殊赋值功能不但能带给用户最好的视觉感受,同时在操作时大大减少了手动输入操作,因此也为非计算机人员的可操作性带来很大的方便。 2. 采用独特的资料占用排除方法来生成所需要的课程表,使课程表生成速度加快。 3. 支持很方便的课程,用户等模块的添加,修改,删除等过程。 4. 使用定位查询,只要选择对应的班级,就可以找到对应的内容,班级就是一个整体,通过班级来寻找所想要的数据会实现的更为简便。 5. 特殊的课程表输出功能,大大减少了课程表输出时的格式局限性,只要修改EXECL中的模板,就可以打印出你想要的效果来。 程序的不足: (1)对排课来说,各个学校都有着不太相同的排列方法,有每天的课节数,允许课程连排数,时间段等等,而这些方法转换为计算机语言时,往往会因为这样那样的限制而造成死循环或者程序速度缓慢,因为排课系统要适应大部分学校使用,所以这里提供的一些要求是不能够满足大部分人的。 (2)由于排课实现功能复杂,程序中也许有不可预知的错误未测试出来,所以这也需要长时间的进行测试才能发现并修复问题。 (3)受开发条件和开发时间的限制,本系统只利用了本地数据库Sqlserver,它同应用程序处于同一系统中,能存储的数据量也有一定限制,并没有发挥出JSP其数据库方面的优势。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |