还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
忻州师范学院计算机系本科毕业(设计)论文课题名称计算机实验室排课系统的设计与实现专业计算机科学与技术姓名杨岩学号201108112043指导教师郑志荣二零一三年六月目 录TOC\o1-3\h\z1引言12系统需求分析
32.1需求描述
32.2系统可行性分析
32.3系统功能分析33系统设计
63.1系统主要功能模块设计
63.2数据库设计104系统实现
134.1系统开发平台介绍
134.2系统具体实现135系统测试
165.1测试环境
165.2测试步骤
165.3测试结果166结束语18致谢19参考文献20计算机实验室排课系统的设计与实现摘要该系统的关键是实现了实验室自动排课的功能系统主要包括班级信息管理、课程信息管理、教室信息管理、实验室信息管理、自动排课管理等功能模块其中班级信息管理主要包括班级信息的添加、修改与删除功能;课程信息管理主要包括课程信息的添加、修改与删除功能;教室信息管理主要包括教室信息的添加、修改与删除功能;实验室信息管理主要是对实验室的维护;自动排课管理主要是实现自动安排实验课的功能系统主要用到VisualBasic
6.0VS2010和SQLserver2008等实现的关键字实验室自动排课信息管理SQLserver2008Abstract:ThekeypointofthesystemistherealizationofthelaboratoryautomaticCourseSchedulingfunctions.Thesystemmainlyincludes:classinformationmanagementcourseinformationmanagementclassroominformationmanagementlaboratoryinformationmanagement.Theclassinformationmanagementmainlyincludesthattheclassinformationtoaddmodifyanddeletefunction;curriculuminformationmanagementincludesthatthecourseinformationtoaddmodifyanddeletefunctions;classroominformationmanagementincludesthatclassroominformationtoaddmodifyanddeletefunctions;laboratoryinformationmanagementmainlyisthatprotectthelaboratory;automaticcourseschedulingmanagementisthatachieveautomaticarrangementexperimentfunction.ThesystemmainlyusesVisulBasic
6.0VS2010andSQLServer2008toachievethesystem.Keywords ExperimentAutoCourseSchedulingmanagerinformationSQLserver20081引言排课是高校教学管理中一项重要而复杂的工作,其实质就是为学校所设置的课程安排一组适当的教学时间和空间,从而使整个教学能够有计划有秩序的进行目前高校实验室仍然采用传统的人工编排课模式,话费了大量的人力和物力,排出的课表还不宜调整系统提出了用计算机代替手工排课的方法,设计了一个利用计算机实现实验室排课的系统通过对手工排课过程的调研与分析,设计出了实验室排课系统的功能结构,20世纪50年代末,国外就有人开始研究课表编排问题1962年,Cotlieb就曾提出一个课表问题的数学模型,并用匈牙利算法解决了三维线形运输问题进入20实际90年代以后,国外对课表问题的研究仍然十分活跃在国内,对课表问题的研究开始于20实际80年代初期,具有代表性的有南京工学院的UTSS(AUniversityTimetableSchedulingSystem)系统,清华大学的TISER(TimetableScheduler)系统等
[01]2系统需求分析
2.1需求描述通过对我校实验室排课的调查与研究,传统的排课系统已经不能适应学校的要求根据教务处给出的学期课表安排以及我校现有实验室的分析,如何将需要试验的课程和班级安排到有限的实验室中,并且不能产生冲突,所以开发实验室自动排课系统是解决我校实验室排课的关键
2.2系统可行性分析
2.
2.1技术可行性开发工具VisualBasic
6.0数据库环境SQLserver2008运行环境Windows2000以上版本,Visualstudio2010为了提高实验教学的效率,开发出一个实验室自动排课系统,利用现有的这些工具和方法,在技术上完全是可行的
2.
2.2操作可行性该实验室排课系统的设计目标是简单易用,方便快捷,功能强大的信息管理系统实验室自动排课系统使用简单明了的操作界面,简单易用意味着系统简易,美观的图形操作界面;功能强大意味着系统的实用性,功能的全面性,系统的安全性和可靠性只要知道基本的业务流程即可对各项管理进行操作,因而在操作上是可行的
[02]
2.3系统功能分析
2.
3.1系统功能需求该实验室自动排课系统主要提供一个实验课程的自动编排和查询平台,涉及到管理员,教师和学生三个部分的功能
1.管理员部分的功能1管理员登录功能,根据权限进入管理员相应的页面的功能2基本数据的输入在排课之前,需要输入大量的基本数据信息,其中包括班级信息,教师信息,实验室信息,课程信息,并且提供对这些信息的增、删、修改等功能基本数据的保存可以用数据库形式进行保存,有利于系统的集成3课表编排课表的编排分为自动编排和手工调节两部分课表的编排不是任意的,它是一个时间,教师,班级,实验室,课程的组合规划问题,为达到最好的实验教学效果应遵循一定的要求这些要求有以下几条1同一教师在同一时间不能进行两门实验课的教学;2同一实验室在同一时间不能安排两门实验课;3同一时间安排的实验课程总数不能大于实验室总数;4同一教师或同一班级最好选择几个相对固定的实验室;最后,管理人员可对计算机初排结果通过人工交互进行适当的调整4课表信息管理排课结束以后,可对排课结果进行多种条件的查询,并可以输出不同形式的课表,包括班级课表,教师课表,实验室课表,并且可以对这些课表进行打印
2.教师部分功能1教师登录功能,根据其权限进入教师相应的页面的功能2教师对自己课表的查询功能,教师可查询本学期自己所教实验课程的课表3教师对自己课表的打印功能,教师可打印本学期自己所教实验课程的课表4实验室课表的查询和打印功能
3.学生部分功能1学生登录功能,根据其权限进入学生相应的页面的功能2学生对自己所在班级课表的查询功能3学生对自己所在班级课表的打印功能4实验室课表的查询和打印功能
2.
3.2系统性能需求
1.一致性系统的数据要保证一致性、准确性当数据库中某一记录改变与之相关联的数据也随之变化
2.适用性能够广泛的用于不同院系的实验排课系统采用模块化设计,用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用
3.实用性为实验排课提供方便,有效地进行实验课表的查看和打印,尽量最大限度降低管理员日常管理工作量,提高实验教学质量和效率,优化资源,实现效益最大化
[03]
4.操作简单本系统应该适用于不同的使用者,包括管理员,教师和学生,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行3系统设计本章主要介绍该系统各个模块的设计以及数据库设计按照实验排课的业务流程,通过对系统内数据流的控制,使各模块按照其内在的联系组成一个有机的整体,模块统又具有录入,修改,删除,查询,打印等功能,各模块界限分明,任务明确,能实现动态管理,而且界面友好,操作简单,并且有很好的纠错能力
3.1系统主要功能模块设计
3.
1.1前台功能模块设计前台登录设计主要包括管理员登录、教师登录、学生登录、实验室登录其中管理员登录可以进入到系统的后台,主要对系统的后台进行管理,教师可以通过教师登录查阅实验课的安排,学生可以通过学生登录查阅实验课的安排前台登录设计图如图
3.1所示图
3.1系统前台模块图
3.
1.2系统后台管理模块设计系统后台管理主要实现对系统各个功能模块的添加、修改及删除等主要包括班级信息管理、课程信息管理、实验室信息管理、教师信息管理、自动排课、手工调节、班级课表查看与打印、教师课表查看与打印、实验室课表查看与打印等其中班级信息管理包括班级的修改、删除、新增等操作,课程信息管理包括课程的修改、删除、新增等操作,管理员可以通过后台管理实现对系统的维护系统后台功能管理图如图
3.2所示图
3.2实验室排课系统后台功能图
3.
1.3基本信息管理模块设计基本信息管理提供对排课基本信息的录入,修改,删除等功能,这些信息包括班级信息,课程信息,实验室信息,教师信息,该模块结构图如图
3.3所示图
3.3基本信息管理结构图第一步输入要进行排课的班级信息,实现班级信息的初始化第二步输入要编排的实验课程信息第三步输入教师信息教师可以教授N个班的N门课程第四步输入实验室信息,完成实验室信息的初始化至此,排课基本信息的输入已经完成
3.
1.4课表编排模块设计课表编排模块是本系统的核心部分,就排课问题而言,其本质是教室,教师,班级,课程和时间5个要素在各自具备一定限制条件的情况下,寻求一种教师,班级和课程在时间和空间上合理分布的复杂的资源分配问题该模块分为自动排课和手工调节两部分它根据输入的基本排课信息(包括班级信息,课程信息,教师信息,实验室信息),按照排课算法来实现对课表的自动编排,对于初排出来的实验课表,如有冲突,或排课人员根据自己的经验认为某门实验课程排在某个特定时间效果可能更好,都可以进行手工调节,以形成最后的无冲突又符合人的主观能动性的实验课表
[04]本系统的排课算法根据我校的实际情况而设计,在退火遗传算法的基础上,加以改进,在一定程度上解决了我校的实验课程编排模拟退火遗传算法思想是以遗传算法运算流程为主体流程,把模拟退火机制融入其中,用以进一步调整优化群体模拟退火遗传算法如下进化代数计数器初始化t←0;随机产生初始群体Pt;评价群体Pt的适应度;群体复制操作P1t←Selection[Pt];个体交叉操作P2t←Crossover[P1t];个体变异操作P3t←Mutation[P2t];个体模拟退火操作P4t←Simulated Annealing [P3t];评价群体P4 t的适应度;下一轮遗传过程Pt+1←Reproduction [Pt∪P4t];终止条件判断若不满足终止条件,则t←t+1,转到第四步继续遗传进化过程,否则,输出当前最优个体,算法结束本系统的排课算法流程图如图
3.4所示YN图
3.4实验室排课算法的流程图
3.
1.5课表管理模块的设计在完成了课表的编排之后,特意设计此模块来对课表进行统一的管理该模块主要功能是实现教师课表,班级课表和实验室课表的查询和打印该模块设计思路为在页面中设计三个相应的下拉框,从这三个下拉框中选定相应的项目后,便可以进入相应的课表页面,从而可查看和打印相应的课表
[05]在经过课表的自动排课和手工调节之后,已形成最终既无冲突又符合人为意愿的实验课表要实现班级课表的查询,只需调用最终实验课表中字段为班级名称的记录即可,同样要查询教师课表和实验室课表,只需调用最终课表中字段分别为教师编号和实验室名称的记录即可
[06]在对各课表查看了之后,还可对课表进行打印
3.2数据库设计
3.
2.1数据流图数据流图,简称DFD,用于表示系统逻辑模型的一种工具本系统的数据流图顶层图如图
3.5所示图
3.5系统顶层数据流图根据数据流图,设计实验室排课系统E-R图如图
3.6所示图
3.6实验室排课系统E-R图
3.
2.2逻辑结构设计根据概念模型,按照概念模型向逻辑结构转换的相关规则并结合规范化理论设计数据库逻辑结构如表
3.
1、表
3.
2、表
3.
3、表
3.
4、表
3.
5、表
3.
6、表
3.7所示根据系统的数据需求,本系统归纳出7个数据表格,分别为班级信息表,实验科目信息表,教师信息表,实验室信息表,学生信息表,课表,管理员信息表各表的组成,字段名及表格之间的关系表
3.1班级信息表字段名称数据类型长度主键允许空身份整型4是否班级名称字符型30是表
3.2课程科目信息表允许空字段名称数据类型长度主键否身份整型4是是课程名称字符型50是课时整型4是一周课时整型2表
3.3教师信息表字段名称数据类型长度主键允许空身份整型4是否班级身份整型4是科目身份整型4是教师编号字符型15是姓名字符型10是密码字符型15是表
3.4实验室信息表字段名称数据类型长度主键允许空身份整型4是否姓名字符型30是教师编号字符型15是表
3.5学生信息表字段名称数据类型长度主键允许空身份整型4是否班级号整型4是学号字符型15是姓名字符型10是密码字符型15是表
3.6课表字段名称数据类型长度主键允许空身份整型4是否日期整型4是学期整型4是教师编号字符型15是教室编号字符型15是班级编号字符型15是表
3.7管理员信息表字段名称数据类型长度主键允许空身份整型4是否用户名字符型16是用户密码字符型16是4系统实现
4.1系统开发平台介绍开发工具MicrosoftVisualBasic
6.0中文企业版,VS2010数据库管理系统DBMS SQLserver
20084.2系统具体实现
4.
2.1系统登录主界面的实现系统登录界面供三种权限的用户登录管理员,教师,学生,以及可实现对实验室课表的查询和打印管理员在输入自己的帐号和密码之后进入系统,可对整个排课业务进行操作,待排课都完成后,教师输入自己的名称和密码,可进去查询自己的课表,并可对该课表进行打印;学生根据自身的权限,可进入系统查询和打印自己班级的课表
[10]教师,学生还可以查询和打印某个实验室的课表该页面文件为Login.aspx,其界面如图
4.1所示图
4.1实验室排课系统登录主界面图管理员输入自己帐号和密码后点击“登录”按钮触发事件如下Sublogin_ClickByValsenderAsObjectByValAsEventArgsIfusername.Text=Orpassword.Text=Thenmsg.Text=帐号和密码不能为空ElseDimMyCommandAsNewSqlCommandInsertCmdmyConnectionDimdrAsSqlDataReaderMyCommand.Connection.Opendr=MyCommand.ExecuteReaderIfdr.ReadThenifTrimdrUserPass.ToString=password.TextThenDimcookieAsHttpCookiecookie=NewHttpCookiechkadminusername.TextResponse.AppendCookiecookieDimMyCookieAsNewHttpCookiechkadminMyCookie.Value=drUserName.ToStringMyCookie.Expires=DateTime.Now.AddHours1Response.Cookies.AddMyCookieResponse.RedirectMain.aspxElsemsg.Text=密码错误EndIfElsemsg.Text=帐号错误MyCommand.Connection.CloseEndIfEndSub
4.
2.2课表自动编排的实现该页面为实验课表自动编排页面,再经过对排课基本信息的录入,确保无误之后,排课算法可自动生成一个初排课表在该课表中,显示出了实验课程编排后包含的一些必须因素,如上课地点,上课班级,授课教师和上课时间包括星期和节次考虑到周末教师和学生需要时间来休息或者处理自己的一些事情,故周六和周日不安排实验课;同时考虑到学校第一大节课都是排一些公共课或是一些理论知识课,基本上不排实验课,故排课时先从第二大节到第五大节排起,若2—5大节已经排满,再排第一大节其界面如图
4.2所示图
4.2课表自动编排实现界面图实现如下先定义三个函数IsPkOver,IsPkOver1,IsPkOver2来判断课表中有无重复记录,再定义函数IntoPk来往课表中插入排课数据函数IntoPk代码如下FunctionIntoPkByValstrtblTeacherIDAsStringByValstrRoomNoAsStringByValClassNoAsIntegerAsBooleanExeSqldeletefromtblTimewhereTeacherNo=strtblTeacherIDandRoomNo=strRoomNoandClassNo=ClassNoDimstrSqlAsStringDimDsIfintDay=0ThenintDay=1IfintDay=6ThenintDay=1ForD=intDayTo5Fors=2To5IfIsPkOverDsstrRoomNoClassNo=FalseThenIfIsPkOver1DsClassNo=FalsethenIfIsPkOver2DsstrRoomNo=FalsethenIfssTempThenstrSql=InsertintotblTimeDateIDStepIDTeacherNoRoomNoClassNovaluesDsstrtblTeacherIDstrRoomNoClassNosTemp=sExeSqlstrSqlintDay=D+1GoTo1EndIfEndIfEndIfEndIfNextIfIsPkOverD1strRoomNoClassNo=FalseThenIfIsPkOver1D1ClassNo=FalsethenIfIsPkOver2DsstrRoomNo=FalsethenstrSql=InsertintotblTimeDateIDStepIDTeacherNoRoomNoClassNovaluesD1strtblTeacherIDstrRoomNoClassNoExeSqlstrSqlintDay=D+1GoTo1EndIfEndIfNextEndFunction5系统测试
5.1测试环境操作系统windows2000以上版本数据库管理系统SQLserver2008开发平台MicrosoftVisualBasic
6.0中文企业版和VS
20105.2测试步骤向数据库中输入一些模拟数据,然后运行系统,观察系统各个模块的运行情况,发现问题便于及时作出调整
5.3测试结果经过测试系统基本上满足了学校的需求,各个功能模块运行基本正常
1.班级信息录入功能如图
5.1所示图
5.1班级信息录入功能图
2.教师信息录入功能如图
5.2所示图
5.2教师信息录入功能图学生信息录入,实验室信息录入等功能模块经测试都符合要求,且系统各个模块经测试都运行正常,完全符合学校实验室的安排需求,该软件的测试成功预示着我校实验室将告别传统的人工排课,进入一个全新的实验室自动排课时期6结束语实验室自动排课系统是面对学校实验课程编排的数据库管理系统,它主要完成排课基本信息的管理,课表的自动编排和手动调节以及各种课表的查询和打印等功能本系统采用新一代网络编程语言VisualBasic
6.0来完成整个系统的设计,在数据库的设计上利用了SQLSever2008的安全、可靠和高效的数据管理特性实验室自动排课系统是集班级信息,课程信息,教师信息,实验室信息,课表信息于一体的管理系统本系统主要分为基本信息管理,课表编排,课表管理等几个模块,并且实现了这几个模块的功能在课表编排方面,待录入的基本排课信息无误之后,排课算法可自动生成课表;而排课人员根据自己的主观意愿,还可对自动生成的课表进行手动调节,以形成最后的既无冲突,又符合人的主观能动性的课表;在课表管理方面,可实现对教师课表,班级课表,实验室课表三类课表的查看和打印教师和学生根据自身不同的权限,在登录界面输入自己的名称和密码后,便可查询和打印各自的课表系统在设计过程中不可避免地遇到了各种各样的问题,有关许多细节问题都要靠自己去摸索,加之本人水平有限,没有完全充分利用VisualBasic
6.0的强大功能,在数据设计上还不够完善,系统也还存在着一些不足之处该系统离实际使用也还有相当的距离,需要进行不断地补充和完善通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,让我懂得只有在学校里把基础知识学扎实了,才能在实践的过程中灵活运用,得心应手,有些在设计过程中存在的问题已经解决,有些还有待今后慢慢学习只要不断学习,就会有更多的收获致谢毕业论文即将圆满结束,首先要感谢我的指导老师郑志荣老师,她严谨的工作态度和平易近人的学者风范都使我受益匪浅,在我的课题研究中遇到困难时,她总能无私的、孜孜不倦的耐心指导我从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,她都费尽心血没有郑志荣老师的辛勤栽培、孜孜教诲,就没有我论文的顺利完成再次向郑老师致以真诚的谢意还要感谢和我一起奋斗了几个月的同学,朋友们,是他们给我莫大的帮助和支持,使我在失去信心的时候帮我重新树立起信心我最后能完成任务,和他们的耐心努力是分不开的,特别是我们组的同学,跟他们一起做毕业设计的期间从他们身上学到很多东西,在此我要感谢他们!总之,感谢一切帮助我和关心我的领导们,老师们,亲人,朋友尤其是我的指导老师郑志荣老师通过设计和论文,我深刻领会到基础知识的重要性,毕业设计和论文不仅仅能帮助大学生检验大学四年的学习成果,更多的是可以帮助我们更加清楚的认识自我,磨练学生的意志与耐性,这将是我日后工作和生活的宝贵的财富!杨岩2013年6月参考文献
[01]张海藩.软件工程导论第四版[M].北京清华大学出版社,
2003.
[02]陈惠贞,陈俊荣.ASP.NET程序设计[M].北京中国地道出版社,
2006.
[03]马军.精通ASP.NET
2.0网络应用系统开发[M].北京人民邮电出版社,
2006.
[04]李万宝.ASP.NET技术详解与应用实例[M].北京机械工业出版社,
2005.
[05]杨云.ASP.NET典型系统开发[M].北京人民邮电出版社,
2006.
[06]王珊,陈红.数据库系统原理教程[M].北京清华大学出版社,
2001.
[07]周傲英.数据库原理、编程与性能[M].第2版.北京机械工业出版社,
2002.
[08]丁宝康等.数据库实用教程[M].北京:清华大学出版社,
2001.
[09]黄明,梁旭.VisualBasic
6.0信息系统设计与开发实例[M].北京机械工业出版社,
2005.
[10]EdmundBurke,KirkJackson.AutomatedUniversityTimetabling[D].Brelinetc:Springer
2004.
[11]苏睿先,米金刚.高校自动排课系统的设计与实现[D].天津天津师范大学城市与环境科学学院,
2005.
[12]兰若玉,马若飞.一个自动排课系统的设计和开发[D].北京中央民族大学计算机与科学系,
2002.
[13]黄仙姣,张琳.高等院校排课系统的研究[D].郑州河南财经学院电教计算中心,
2005.
[14]KiaerLYellenJ.Weightedgraphsanduniversitycoursetimetabling[J].ComputersandOperationsReseach,
2002.
[15]杨怡.高等院校自动排课系统的设计与实现[D].北京北京工商大学硕士论文,
2001.计算机实验室排课系统统计算机实验室排课系统统前台登录管理员登录教师登陆实验室登录学生登陆教师登录学生登录管理员登录教师登陆实验室排课系统后台管理基本信息管理课表编排课表管理教师信息管理实验室课表查看与打印教师课表查看与打印班级课表查看与打印手工调节自动排课课程信息管理实验室信息管理班级信息管理班级信息输入排课班级管理员登录实验课程信息输入实验课程教师信息输入排课教师完成实验室信息输入实验室查找实验课程记录开始记录是否为空NintDay=1intDay表示星期班级,教师,实验室在星期intDay内是否没有排课Y把星期intDay作为该课的上课时间S=1S表示上课节次S=S+1判断S是否小于6YNintDay=intDay+1Y判断intDay是否小于6N读取下条记录结束教师信息管理教师表实验室表输入各类基本信息实验室信系管理管理员实验室排课系统排课表自动排课ID实验室名称课程ID教师编号班级IDID教师地点联系1M实验室姓名M1地点联系教授NN课时上课NM实验课程班级班级名称ID周课时课程名称ID管理员登录教室登陆实验室登录学生登陆。