计算机实验室排课系统的设计与实现毕业论文.doc_第1页
计算机实验室排课系统的设计与实现毕业论文.doc_第2页
计算机实验室排课系统的设计与实现毕业论文.doc_第3页
计算机实验室排课系统的设计与实现毕业论文.doc_第4页
计算机实验室排课系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

忻忻 州州 师师 范范 学学 院院 计算机系本科毕业(设计)论文计算机系本科毕业(设计)论文 课题名称计 算 机 实 验 室 排 课 系 统 的 设 计 与 实 现 专 业计 算 机 科 学 与 技 术 姓 名杨 岩 学 号 2 0 1 1 0 8 1 1 2 0 4 3 指导教师郑 志 荣 二零一三年六月 计算机实验室排课系统的设计与实现 目 录 1 引引 言言1 2 系统需求分析系统需求分析3 2.1 需求描述 .3 2.2 系统可行性分析 .3 2.3 系统功能分析 .3 3 系统设计系统设计6 3.1 系统主要功能模块设计 .6 3.2 数据库设计 .10 4 系统实现系统实现13 4.1 系统开发平台介绍 .13 4.2 系统具体实现 .13 5 5 系统测试系统测试16 5.1 测试环境 .16 5.2 测试步骤 .16 5.3 测试结果 .16 6 结束语结束语18 致致 谢谢19 参考文献参考文献20 计算机实验室排课系统的设计与实现 计算机实验室排课系统的设计与实现计算机实验室排课系统的设计与实现 摘摘 要要: 该系统的关键是实现了实验室自动排课的功能。系统主要包括:班级信息管理、 课程信息管理、教室信息管理、实验室信息管理、自动排课管理等功能模块。其中班级信 息管理主要包括班级信息的添加、修改与删除功能;课程信息管理主要包括课程信息的添 加、修改与删除功能;教室信息管理主要包括教室信息的添加、修改与删除功能;实验室 信息管理主要是对实验室的维护;自动排课管理主要是实现自动安排实验课的功能。系统 主要用到 visual basic 6.0, vs2010 和 sql server2008 等实现的。 关键字关键字:实验室自动排课 信息管理 sql server2008 abstract: the key point of the system is the realization of the laboratory automatic course scheduling functions. the system mainly includes: class information management, course information management, classroom information management, , laboratory information management.the class information management mainly includes that the class information to add, modify and delete function; curriculum information management includes that the course information to add, modify and delete functions; classroom information management includes that classroom information to add, modify and delete functions; laboratory information management mainly is that protect the laboratory; automatic course scheduling management is that achieve automatic arrangement experiment function. the system mainly uses visul basic6.0, vs2010 and sql server2008 to achieve the system. key words: experiment auto course scheduling manager information sql server2008 1 引引 言言 排课是高校教学管理中一项重要而复杂的工作,其实质就是为学校所设置 的课程安排一组适当的教学时间和空间,从而使整个教学能够有计划有秩序的 进行。目前高校实验室仍然采用传统的人工编排课模式,话费了大量的人力和 物力,排出的课表还不宜调整。系统提出了用计算机代替手工排课的方法,设 计了一个利用计算机实现实验室排课的系统。通过对手工排课过程的调研与分 析,设计出了实验室排课系统的功能结构,20 世纪 50 年代末,国外就有人开 始研究课表编排问题。1962 年,cotlieb 就曾提出一个课表问题的数学模型,并 忻州师院计算机系本科学士学位论文 用匈牙利算法解决了三维线形运输问题。进入 20 实际 90 年代以后,国外对课 表问题的研究仍然十分活跃。在国内,对课表问题的研究开始于 20 实际 80 年 代初期,具有代表性的有:南京工学院的 utss(a university timetable scheduling system)系统,清华大学的 tiser(timetable scheduler)系统等01。 计算机实验室排课系统的设计与实现 2 系统需求分析系统需求分析 2.1 需求描述需求描述 通过对我校实验室排课的调查与研究,传统的排课系统已经不能适应学校 的要求。根据教务处给出的学期课表安排以及我校现有实验室的分析,如何将 需要试验的课程和班级安排到有限的实验室中,并且不能产生冲突,所以开发 实验室自动排课系统是解决我校实验室排课的关键。 2.2 系统可行性分析系统可行性分析 2.2.1 技术可行性 开发工具:visual basic 6.0 数据库环境:sql server 2008 运行环境:windows2000 以上版本,visual studio 2010 为了提高实验教学的效率,开发出一个实验室自动排课系统,利用现有的 这些工具和方法,在技术上完全是可行的。 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。 本系统的排课算法根据我校的实际情况而设计,在退火遗传算法的基础上, 加以改进,在一定程度上解决了我校的实验课程编排。模拟退火遗传算法思想 是: 以遗传算法运算流程为主体流程,把模拟退火机制融入其中,用以进一步调整 优化群体。模拟退火遗传算法如下:进化代数计数器初始化:t0;随机产生 初始群体 p(t);评价群体 p(t)的适应度;群体复制操作:p1(t)selectionp(t); 个体交叉操作:p2(t)crossoverp1(t);个体变异操作:p3(t)mutationp2(t); 个体模拟退火操作:p4(t)simulated annealing p3(t);评价群体 p4 (t)的适应 度;下一轮遗传过程:p(t+1)reproduction p(t)p4(t);终止条件判断。若不 满足终止条件,则 tt+1,转到第四步继续遗传进化过程,否则,输出当前最 优个体,算法结束。本系统的排课算法流程图如图 3.4 所示。 实验室信息完成 输入实验室 计算机实验室排课系统的设计与实现 y n n n n 开始 记录是否为空 查找实验课程记录 intday=1,intday 表示星期 班级,教师,实验室在星期 intday 内是否没有排课 把星期 intday 作为该课的上课时间 s=1,s 表示上课节次 s=s+1 判断 s 是否小于 6 intday=intday+1 判断 intday 是否小于 6 读取下条记录 结束 y y y 忻州师院计算机系本科学士学位论文 图 3.4 实验室排课算法的流程图 3.1.5 课表管理模块的设计 在完成了课表的编排之后,特意设计此模块来对课表进行统一的管理。该 模块主要功能是实现教师课表,班级课表和实验室课表的查询和打印。该模块 设计思路为:在页面中设计三个相应的下拉框,从这三个下拉框中选定相应的 项目后,便可以进入相应的课表页面,从而可查看和打印相应的课表05。在经 过课表的自动排课和手工调节之后,已形成最终既无冲突又符合人为意愿的实 验课表。要实现班级课表的查询,只需调用最终实验课表中字段为班级名称的 记录即可,同样要查询教师课表和实验室课表,只需调用最终课表中字段分别 为教师编号和实验室名称的记录即可06。在对各课表查看了之后,还可对课表 进行打印。 3.2 数据库设计数据库设计 3.2.1 数据流图 数据流图,简称 dfd,用于表示系统逻辑模型的一种工具。本系统的数据 流图顶层图如图 3.5 所示。 图 3.5 系统顶层数据流图 根据数据流图,设计实验室排课系统 e-r 图如图 3.6 所示。 地点联系 实验室名称 id id 姓 名 班级 id 课程 id教师编号 教师 实验室 m 1 1m 管理员实验室排课系统 教师信息管 理 自动排课 实验室信系管理 输入各类基本信息 教师表 排课表 实验室表 计算机实验室排课系统的设计与实现 图 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是 地点联系 教授 上课 课程名称 课 时 周课时 id id 班级 实验课程 班级名称 m n nn 忻州师院计算机系本科学士学位论文 科目身份整型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 系统开发平台介绍系统开发平台介绍 开发工具:microsoft visual basic 6.0 中文企业版,vs2010 数据库管理系统(dbms): sql server2008 4.2 系统具体实现系统具体实现 4.2.1 系统登录主界面的实现 系统登录界面供三种权限的用户登录:管理员,教师,学生,以及可实现 对实验室课表的查询和打印。管理员在输入自己的帐号和密码之后进入系统, 可对整个排课业务进行操作,待排课都完成后,教师输入自己的名称和密码, 可进去查询自己的课表,并可对该课表进行打印;学生根据自身的权限,可进 入系统查询和打印自己班级的课表10。教师,学生还可以查询和打印某个实验 室的课表。 该页面文件为 login.aspx,其界面如图 4.1 所示。 管理员登录 教 室 登 陆 实验室登录 学 生 登 陆 忻州师院计算机系本科学士学位论文 图 4.1 实验室排课系统登录主界面图 管理员输入自己帐号和密码后点击“登录”按钮触发事件如下: sub login_click(byval sender as object, byval as eventargs) if username.text = “ or password.text = “ then msg.text = “帐号和密码不能为空“ else dim mycommand as new sqlcommand(insertcmd, myconnection) dim dr as sqldatareader mycommand.connection.open() dr = mycommand.executereader() if dr.read() then if trim(dr(“userpass“).tostring() = password.text then dim cookie as httpcookie cookie = new httpcookie(“chkadmin“, username.text) response.appendcookie(cookie) dim mycookie as new httpcookie(“chkadmin“) mycookie.value = dr(“username“).tostring() mycookie.expires = datetime.now.addhours(1) response.cookies.add(mycookie) response.redirect(“main.aspx“) else msg.text = “密码错误“ end if else msg.text = “帐号错误“ mycommand.connection.close() end if end sub 计算机实验室排课系统的设计与实现 4.2.2 课表自动编排的实现 该页面为实验课表自动编排页面,再经过对排课基本信息的录入,确保无 误之后,排课算法可自动生成一个初排课表。在该课表中,显示出了实验课程 编排后包含的一些必须因素,如上课地点,上课班级,授课教师和上课时间(包 括星期和节次)。考虑到周末教师和学生需要时间来休息或者处理自己的一些事 情,故周六和周日不安排实验课;同时考虑到学校第一大节课都是排一些公共 课或是一些理论知识课,基本上不排实验课,故排课时先从第二大节到第五大 节排起,若 25 大节已经排满,再排第一大节。其界面如图 4.2 所示。 图 4.2 课表自动编排实现界面图 实现如下:先定义三个函数 ispkover,ispkover1,ispkover2 来判断课表 中有无重复记录,再定义函数 intopk 来往课表中插入排课数据。函数 intopk 代 码如下: function intopk(byval strtblteacherid as string, byval strroomno as string, byval classno as integer) as boolean exesql(“delete from tbltime where teacherno = “ & strtblteacherid & “ and roomno=“ & strroomno & “ and classno=“ & classno) dim strsql as string dim d, s if intday = 0 then intday = 1 if intday = 6 then intday = 1 for d = intday to 5 for s = 2 to 5 if ispkover(d, s, strroomno, classno) = false then if ispkover1(d, s, classno)=false then if ispkover2(d, s, strroomno)=false then if s stemp then 忻州师院计算机系本科学士学位论文 strsql=“insertinto tbltime(dateid,stepid,teacherno,roomno,classno) values ( “ & d & “,“ & s & “,“ & strtblteacherid & “,“ & strroomno & “,“ & classno & “)“ stemp = s exesql(strsql) intday =d + 1 goto 1 end if end if end if end if next if ispkover(d, 1, strroomno, classno) = false then if ispkover1(d, 1, classno)=false then if ispkover2(d, s, strroomno)=false then strsql = “insert into tbltime(dateid,stepid,teacherno,roomno,classno) values ( “ & d & “,“ & 1 & “,“ & strtblteacherid & “,“ & strroomno & “,“ & classno & “)“ exesql(strsql) intday =d+1 goto 1 end if end if next end function 5 5 系统测试系统测试 5.1 测试环境测试环境 操作系统 windows 2000 以上版本 数据库管理系统 sql server2008 开发平台 microsoft visual basic 6.0 中文企业版和 vs2010 5.2 测试步骤测试步骤 向数据库中输入一些模拟数据,然后运行系统,观察系统各个模块的运行 情况,发现问题便于及时作出调整。 , 5.3 测试结果测试结果 经过测试系统基本上满足了学校的需求,各个功能模块运行基本正常。 1. 班级信息录入功能如图 5.1 所示。 计算机实验室排课系统的设计与实现 图 5.1 班级信息录入功能图 2. 教师信息录入功能如图 5.2 所示。 图 5.2 教师信息录入功能图 学生信息录入,实验室信息录入等功能模块经测试都符合要求,且系统各个模 块经测试都运行正常,完全符合学校实验室的安排需求,该软件的测试成功预 示着我校实验室将告别传统的人工排课,进入一个全新的实验室自动排课时期。 忻州师院计算机系本科学士学位论文 6 结束语结束语 实验室自动排课系统是面对学校实验课程编排的数据库管理系统,它主要 完成排课基本信息的管理,课表的自动编排和手动调节以及各种课表的查询和 打印等功能。本系统采用新一代网络编程语言 visual basic6.0 来完成整个系统 计算机实验室排课系统的设计与实现 的设计,在数据库的设计上利用了 sql sever 2008 的安全、可靠和高效的数据 管理特性。 实验室自动排课系统是集班级信息,课程信息,教师信息,实验室信息, 课表信息于一体的管理系统。本系统主要分为基本信息管理,课表编排,课表 管理等几个模块,并且实现了这几个模块的功能。在课表编排方面,待录入的 基本排课信息无误之后,排课算法可自动生成课表;而排课人员根据自己的主 观意愿,还可对自动生成的课表进行手动调节,以形成最后的既无冲突,又符 合人的主观能动性的课表;在课表管理方面,可实现对教师课表,班级课表, 实验室课表三类课表的查看和打印。教师和学生根据自身不同的权限,在登录 界面输入自己的名称和密码后,便可查询和打印各自的课表。 系统在设计过程中不可避免地遇到了各种各样的问题,有关许多细节问题 都要靠自己去摸索,加之本人水平有限,没有完全充分利用 visual basic6.0 的 强大功能,在数据设计上还不够完善,系统也还存在着一些不足之处。该系统 离实际使用也还有相当的距离,需要进行不断地补充和完善。通过本次毕业设 计我学到了不少新的东西,也发现了大量的问题,让我懂得只有在学校里把基 础知识学扎实了,才能在实践的过程中灵活运用,得心应手,有些在设计过程 中存在的问题已经解决,有些还有待今后慢慢学习。只要不断学习,就会有更 多的收获。 致致 谢谢 毕业论文即将圆满结束,首先要感谢我的指导老师郑志荣老师,她严谨的 忻州师院计算机系本科学士学位论文 工作态度和平易近人的学者风范都使我受益匪浅,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论