精品毕业论文--基于web的排课系统的设计与实现.doc_第1页
精品毕业论文--基于web的排课系统的设计与实现.doc_第2页
精品毕业论文--基于web的排课系统的设计与实现.doc_第3页
精品毕业论文--基于web的排课系统的设计与实现.doc_第4页
精品毕业论文--基于web的排课系统的设计与实现.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

目 录摘 要IAbstractII1 综述11.1 课题背景及意义11.2 课题研究现状11.3 发展趋势22 需求分析22.1 可行性分析22.2 系统开发目的32.3 系统功能及性能要求32.3.1 对功能的规定32.3.2 对性能的规定42.4 组织结构图52.5 管理业务流程52.6 系统数据结构图63 系统设计73.1 需求规定73.2 运行环境73.3 开发语言介绍83.3.1 系统开发环境介绍83.3.2 开发语言简介83.4 基本设计概念和处理流程93.5 结构123.5.1 系统的物理结构图123.5.2 系统模块图123.6 数据库设计133.6.1 建立数据库的基本工具133.6.2设计原则143.6.3 系统数据库设计143.6.4 E-R图数据库设计173.6.5 关系数据库的逻辑设计183.6.6 数据结构和程序(模块)关系193.7 算法设计203.7.1 排课细节及需求203.7.2 算法说明203.8 接口设计223.8.1 用户接口223.8.2 内部接口233.9 运行设计243.9.1 运行模块组合243.9.2 网页与模块关系253.9.3 运行控制293.9.4 运行时间344 系统功能说明344.1 功能分析344.2 系统功能特点354.3 系统功能介绍355 系统出错设计处理355.1 出错信息355.2 补救措施355.3 系统维护设计366 结论与展望37参考文献38致 谢39 基于WEB排课系统的设计与实现摘 要:一所学校为了保证其高水平的教学质量,必须制定一套严密、规范的教学计划,并严格执行。而课表管理是其中最为关键的一环。没有一个合理、准确规范的课程表,整个学校的教学秩序将混乱不堪,这是不难想象的。由此可见课程安排在学校教学计划中的核心地位与重要性。因此,很有必要对排课表问题进行深入研究。使用手工或传统的方法来排课,不仅工作量巨大,耗时、耗资,且准确率低。本文主要研究解决各种教学资源如教室、教师的合理有效利用问题,避免教师、班级在上课时间、地点上的冲突,使排课时间分配均匀。在算法设计中为排课操作设置了不同的优先级,逐级排课,有效地降低了排课时间冲突的几率,提高了排课的成功率。另外,系统为教师和教室分别设计了排课级别,从而能够避免教学资源过于集中地使用,实现均衡化利用。小型自动排课系统只是一种尝试,还有很多不完善的地方,需待日后改进。关键词:自动排课 算法 冲突检测 Abstract: In order to guarantee its advanced teaching and studying quality, a university must draw up a tight and standard teaching and studying plan. The arrangement of curriculum schedule is one of the key questions. Not having a rational, accurate and normal curriculum schedule, the whole university will not has a well teaching and studying order. This shows the courses arrange is the core of teaching and studying plan. Accordingly, deeply studying the question of curriculum schedule is very necessary. Arranging the courses by hand and traditional ways, we have great work load, cost much time, use up many resources, but the accuracy of curriculum schedule is Low. The main of this paper is solve the proper and defective usage of various teaching resources, such as classrooms, teachers and so on. To avoid the confliction the time or the place of the schedule, and to make the time produced on the average. In the design of the algorithm, different priorities areassigned to the operation of the arranging schedule, making it complished priority by priority, and thus bring down the probability of the confliction of the time arranging effectively, increase the probability of the successive arranging. Moreover, in order to make sure the teaching resources wont be used to realize the average usage, the system designs the arranging levels of the teacher and the classroom. The proposal of the algorithm is just an attempt, so there are lost of defects, which are to be improved in future.Key words: auto arranging course; algorithm; conflict inspect II 1 综述随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。因此,在计算机技术越来越普及的今天,市场上也出现了不同版本的排课系统,而这些排课系统又大部分是用传统的Visual basic、Visual Foxpro等语言来开发设计,此类系统有一个共性就是运行的界面单一而且不能发布到网上。所以在经过各个方面的综合分析后,本人决定用ASP这一目前较为流行的开放式的Web服务器应用程序开发技术。使用它可以将HTML语言,脚本语言和ActiveX控件组合一起,产生动态、交互、具有数据库访问功能,且高效率的基于Web的应用程序。1.1 课题背景及意义在高等院校中,培养学生的主要途径是教学。在教学活动中,有一系列管理工作。其中,教学计划的实施是一个重要环节。每学期管理人员都要整理教学计划,根据教学计划下达教学任务书,然后根据教学任务书编排课程表。在这些教学调度工作中,既有大量繁琐的数据整理工作,更有严谨思维的脑力劳动。此外,还要填写大量的表格,因此工作非常繁重。加之教学的改革,招生人数的增加及教室设备的不足,不但增加了工作的难度,而且要求管理工作更加快速、准确。为此,人们自然希望用先进的管理手段完成这些工作。随着计算机技术的普及,办公室自动化的先进管理手段被引进到教学调度工作中。计算机排课与人工排课有一定区别。人的思维可以是收敛的,也可以是发散的。因而排课表时非常灵活,随机性很强,没有严格的工作步骤,随情况而变,觉得怎么合理怎么做。但计算机就不同,它并不具备人的大脑那样的发散思维能力。它的“大脑”里的一切信息都是由“数据”组成。每步工作是由人把人的思维抽象成计算机的语言,通过程序进行控制。所以用计算机进行排课最大的要领就是要掌握系统软件的设计思想,各种数据间的关系及工作先后顺序等,就是要掌握各种课程的要求如何通过数据传输给计算机,让它领会人的意图,达到预期的目的。也就是说,计算机排课的关键是数据。1.2 课题研究现状传统的人工进行排课,最令人担心的问题就是出现教室资源冲突或教师资源冲突的情况,而且工作繁琐,工作量巨大,尤其是在给大学校园进行排课时出现的问题更多。市场流行的排课系统很多,这些排课软件在解决排课问题时大多数采用的算法都是回溯算法,排课的效果也都很好。利用回溯算法解决问题的思路是先选择某一可能的线索进行试探,每一步试探都有多种方式,将每一方式都一一试探,如有问题就返回纠正,反复进行这种试探再返回纠正,直到得出全部符合条件的答案或是问题无解为止。这种解决问题的方法就是回溯算法。回溯算法对空间的消耗较少,当其与分枝定界法一起使用时,对于所求解在解答树中层次较深的问题有较好的效果。但应避免在后继节点可能与前继节点相同的问题中使用,以免产生循环。 回溯算法是所有搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头”思想作为其控制结构,其相当于采用了先根遍历的方法来构造解答树,可用于找解或所有解以及最优解(据了解清华大学制作的一种排课软件主要采用时间模式和并行回溯算法,和此算法基本相同,只是在排课前就已经建立的时间库)。1.3 发展趋势计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机的优势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减负”。教师设置好学校基本情况及排课要求,让计算机排出课程表,适度调课后的课表就能满意地应用于新的学期。随着计算机软件技术的不断发展,排课效率高、出错概率低的排课算法也必将会逐渐趋向成熟,功能更加完善的排课系统也将应运而生。2 需求分析2.1 可行性分析系统可行性研究是系统发展过程中的一项重要的工作,其目的就是订出一套选择标准和一套选择程序及组成一个有效能的决策组织,如此,使用者便能依正确的顺序解决相关的问题。下面将从操作可行性、技术可行性、经济可行性三个方面对排课系统进行分析。(1) 操作可行性对于新系统的实施运作,由于组织人员都相当配合,没有任何抗拒心理,所以运作方面没有太大的困难。而由于作业流程和程序设计都很详细规划,所以方案的运作都能按照作业程序来进行。而软硬件方面,由于现有的PC和打印机,再加上ASP和IIS极为普遍,所以没有太大的问题。(2) 技术可行性方案所需的硬件设备,组织内可以提供;软件技术方面,系统发展人员的能力足以胜任;而且在软件技术方面,我们采用Access作为后台数据库,使用ASP开发基于WEB的排课系统,因为这种技术已实用化,设计的页面精美,功能强大。(3) 经济可行性经济可行性是对将要开发的系统的成本效益进行的量度,可以说是可行性分析中最重要的一个,以低成本追求高效率是我们的目标。排课系统是通过计算机来自动地解决各种教学资源如教室、教师的合理有效利用问题,避免教师、班级在上课时间、地点上的冲突,使排课时间分配均匀,这就大大的节省了时间,提高了工作效率,避免了人力,物力,财力的浪费,因此本系统可行。2.2 系统开发目的排课管理的主要任务是把各系或各授课部门的课程申请进行汇总,然后根据教学计划或教学环节制订全校各班级的课表。一方面,由于高校班级数、课程门数较多,每门课又涉及很多信息,如果用手工进行排课,不可避免地出现教室资源冲突或教师资源冲突的情况。另一方面,由于教学管理工作存在人流量大、事务繁琐的特点,教务管理人员付出大量的工作时间来从事各种事务性工作,但工作的效率很低。为提高工作效率,减轻校方人员的工作负担,决定针对教学管理中各项事务性工作开发排课管理系统软件,以供教学人员及操作者进行教学管理。同时也为开发人员提高软件开发的能力,从中学习知识吸取经验,进一步深入理解校园信息化管理的精髓,在技术和软件思想上得到锻炼和提高提供了机会,从而使总体管理水平上升到一个新的高度。2.3 系统功能及性能要求2.3.1 对功能的规定作为一个完整的数据库系统,其各种功能也要求比较完善,本系统的主要功能有:(1) 系统登入功能:在系统授权范围内,用户选择各自的用户名,输入密码后登入系统; (2) 基本信息管理:教师、教室、班级、课程、课程申请等数据的增、删、改、查; (3) 数据处理:自动排课、教师、教室、班级、课程、课程申请等数据的输入、编辑、修改、删除等功能;(4) 数据输出:查询教师、班级课程表,打印教师、班级课程表,查询教师、班级、教室课程以及课程申请的基本信息;(5) 系统设置:对用户权限的设置和密码的更改。管理员在此可修改各个用户的密码。在本系统中,普通用户即教师和学生只能浏览、查询和打印基本信息以及查询课表和打印课表,不能添加、删除、修改基本信息并且无权排课、调课和更改密码。2.3.2 对性能的规定 (1) 教师和学生都不能发生课时冲突,即没有教师要同时给两个(或两个以上的)班上课,也没有一个班要同时上两门(或两门以上)不同的课程;(2) 教师和学生合理的不排课时间要求一定要满足;(3) 要求排连堂的课一定要连堂;(4) 主课(大学英语、高等数学、大学物理等)课程排上午,副课(思想道德修养、文献检索等)课程排下午,其它课程在上、下午随机分布;(5) 满足教师教案的周期性,教师备一次课后应在他授课的所有班上都讲授一遍之后才进入到下一阶段的备课和授课;(6) 尽量避免断点,即不出现一天内前、后节次有课,中间无课的现象;(7) 文、理课(如高等数学和大学英语)相间,以使学生智力得到调整,提高学习效率;(8) 同一门课一周内在节次上要均匀分布;(9) 排课前考虑老师的时间问题。张教师一周5天共上20节,则尽可能安排每天4节课且4节课不连续安排在如1234或5678节等;(10) 排课时还要充分考虑到课程的均匀性问题。即课程安排尽可能均匀,英语一周3节,若一周上天的课,尽量每隔一天安排一次课程;(11) 对于数量巨大的信息,系统仍具有较快的响应速度和较小的系统开支。2.4 组织结构图组织结构,指的是一个组织(部门,企业,车间,科室等)的组成以及这些组成部分之间的隶属关系或管理与被管理的关系。如图2-1所示:学籍科教学管理组教学运行组质量管理组项目工作组项目督察组学生个人信息学生成绩管理选课管理教学课表人才交流组人事科劳动工资科人事档案组 学 校 教 务 处 教学评估 教学管理 人 事 处图2-1 组织结构图2.5 管理业务流程业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向。下图是排课系统的业务流程图。管理员在进行教师、班级、教室、课程、课程申请的信息登记汇总后提交到教务处,教务处的工作人员根据这些信息,利用计算机自动排出课表,之后再对有冲突的课程进行调整,使课程安排均匀最后生成正式的课表,再将课表分发到各个班级,如图2-2所示:管理员教师信息登记班级信息登记教室信息登记课程信息登记课程申请登记教师表班级表教室表课表课程表教务处排 课调 课库存课表班 级图2-2 业务流程图2.6 系统数据结构图(1) 顶级数据流动图输入各类基本信息 教务处排课系统打印课程表班级和老师图2-3 基本信息管理数据流动图(2) 第二级数据流动图课程管理员接收事物设置信息基本库信息库清空排课自动排课手动调节课表使用者课表库事物事物信息数据流动图:清空信息排课信息课表图2-4 排课数据流动图3 系统设计3.1 需求规定随着Internet技术的日益发展,Web应用的逐渐普及,本校校园网建设的逐步扩展,对本校的教务管理提出了新的要求,要求实现教务的网络化管理,并且要求教务人员能从繁杂的传统的手动排课中解脱出来,利用计算机自动的安排合理而又实用的课程表,考虑年级、班级、教师、课程、教室等方方面面的因素,合理地利用教室、教师等资源,解决好班级间的时间冲突,给每个班排课时,避免时间、场地冲突等,能够充分考虑到课程的均匀性问题。3.2 运行环境(1) 硬件环境内存128M,显示器17寸;分辨率1024768、大字体(大尺寸)显示,或分辨率800600、小字体(正常尺寸)的显示。(2) 支持软件适合的环境:Windows 2000、Windows XP、Windows 2000 Sever等的运行环境并且要安装WEB服务器即IIS信息服务器,其中Windows 2000 Sever不需要安装IIS。3.3 开发语言介绍3.3.1 系统开发环境介绍B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript等)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。目前大多数应用软件系统都是Client/Server形式的两层结构,现在的软件应用系统正在向分布式的Web应用发展;内部的和外部的用户都可以访问新的和现有的应用系统,Web和Client/Server 应用都可以进行同样的业务处理;不同的应用模块共享逻辑组件;通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。3.3.2 开发语言简介 Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。使用ASP可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序。ASP应用程序很容易开发和修改。使用 ASP进行计算的Web可转化为有形的利益,它使Web供应商能够提供交互的商业应用而不仅仅是发布内容。用ASP访问WEB 数据库时,必须使用ADO组件,ASP与ADO是一种完全的WEB数据库访问解决方案。首先浏览器向Web服务器发出请求,服务器会自己解释ASP文件(若不是ASP文件,则会直接下载)中的Script段,而把其余的部分交给用户执行。若是执行中使用了ADO对象设置的参数来启动对应的ODBC驱动程序,在启动ODBC驱动程序之后,程序可以直接利用ADO对象来访问数据库,或通过ADO对象来发送SQL指令,进而达到存取数据库的目的。3.4 基本设计概念和处理流程系统用况如图3-1所示: 主界面教师设置班级设置教室设置课程设置课程申请自动排课高级查询系统权限 用户(教务处) 主界面高级查询查询 用户(教师和学生) 浏览信息图3-1 系统用况图活动者1:用户(教务处),作为系统的最大使用者,可操作系统的全部功能,即使用系统对全校的班级进行排课,可进行基本的信息设置(教师信息设置,班级信息设置,教室信息设置,课程设置,课程申请),根据基本信息进行自动排课和手动调课,并对教师的课表和班级的课表进行查询,还可对系统的权限进行设置。活动者2:用户(教师和学生),作为系统的一般使用者,他们能进行查询和浏览,并能看到教师、班级、教室、课程、课程申请的基本信息。学生可以查询自己班级的课表和自己关注的老师的课表;老师可以查询自己的课表,也可查询自己所教的班级的课表。 用况说明:(1) 用况名称:主界面参与者:用户(教务处、教师、学生)主要事件流: 用户在这里根据自己的需要选择需要的操作,其中以教务处身份登入的就可选择此界面上的所有功能操作,而以老师和学生身份登入的就只能浏览各个模块的基本信息并可选择高级查询这个模块。(2) 用况名称:教师设置参与者:用户(教务处、教师、学生)主要事件流:教务处的管理人员对教师的基本情况如姓名、职称、学位、住所等进行编辑、添加、删除、查询等操作;教师和学生能够浏览和查询基本信息。 (3) 用况名称:班级设置参与者:用户(教务处、教师、学生)主要事件流:教务处的管理人员对班级的基本情况如班级名称、班级人数、专业、年级等进行编辑、添加、删除、查询等操作;教师和学生能够浏览和查询基本信息。(4) 用况名称:教室设置参与者:用户(教务处、教师、学生)主要事件流:教务处的管理人员对教室的基本情况如教室名称、教室容量、教室性质等进行编辑、添加、删除、查询等操作;教师和学生能够浏览和查询基本信息。(5) 用况名称:课程设置参与者:用户(教务处、教师、学生)主要事件流:教务处的管理人员对课程的基本情况如课程名称、课程类别、考核方式、课程性质等进行编辑、添加、删除、查询等操作;教师和学生能够浏览和查询基本信息。(6) 用况名称:课程申请设置参与者:用户(教务处、教师、学生)主要事件流:教务处的管理人员对课程的基本情况如课程名称、教师姓名、班级名称、周课数、学分、开始周、周数等进行编辑、添加、删除、查询等操作;教师和学生能够浏览和查询基本信息。(7) 用况名称:自动排课参与者:用户(教务处)主要事件流:教务处的管理人员在输入教师信息、班级信息和教室信息、课程信息后系统就可根据算法和代码自动的安排各班和各老师的课程表,在自动排课后,教务处的管理人员可调整课表的一些冲突问题如场地冲突、时间冲突等进行改正,或是对某些老师由于特殊情况要课程调动的课表进行重新安排。(8) 用况名称:高级查询参与者:用户(教务处、教师、学生)主要事件流:系统的所有默认用户都可使用这个模块查询他们各自关注的课表信息并且打印课表。用户输入查询的关键字(查询班级课表的可以输入班级名称,查询老师课表的可以输入老师姓名),系统搜索所需的课表,显示课表信息,用户可对课表进行打印。(9) 用况名称:系统权限参与者:用户(教务处)主要事件流:系统管理员可对系统的权限进行设置,用户可对原有的密码进行修改。教务处在登入系统后可输入旧密码,再二次输入新密码进行密码的修改。3.5 结构3.5.1 系统的物理结构图图3-2 系统物理结构图3.5.2 系统模块图以下对系统模块进行大致的介绍:(1) 用户接口模块;(2) 数据库管理模块;(3) 核心功能模块; 基本信息管理子模块。该模块包含:教师设置,教室设置,班级设置,课程设置,课程申请设置。 系统管理子模块。该模块包括:用户界面与系统权限。 排课管理子模块。该模块包括:手动课程管理、自动排课管理、手动调节管理、排课异常管理以及班级、教师课表管理5个部分。如图3-3所示:图3-3 系统模块图3.6 数据库设计3.6.1 建立数据库的基本工具建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。在本系统中,作为高校排课系统是一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要使用像SQL Server和Oracle这样的大型数据库。我首先想到的是Microsoft Office中的Access数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中我选择了Access数据库。Access作为一个数据库管理系统,它被集成在Microsoft Office中。Access数据库处理的基本结构,采取关系型数据库模式。与其他的数据库系统相比,Access更加简单易学,一个普通的计算机用户可以很快地掌握它。Access 2000的功能十分强大,利用它可以方便地实现对信息保存、维护、查询、统计、打印、交流、发布,而且它可以十分方便地与Office其他组件交流数据,这些功能对一个一般用户而言已经足够了。3.6.2 设计原则要设计出一个好的管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:(1) 基本表的个数越少越好。(2) 主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。(3) 字段的个数越少越好。(4) 所有基本表的设计均应尽量符合第三范式。在数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。3.6.3 系统数据库设计在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。我深入分析后,确定在本系统中将使用以下几个数据表,同时为了便于使用数据,在各个数据表中增加代码属性作为其主码。(1) 课程信息数据库:记录课程的基本信息属性:(课程名称,课程代码,课程类型,考核方式,课程性质)其中课程代码唯一标识一门课程,课程类型用来确定课程优先级,而课程性质是课程所需教室条件的信息,如:是否需要多媒体。如表3-1所示:表3-1 课程信息表字段名称数据类型字段大小可否为空索引课程名称文本10否有(无重复)课程类别文本10否无考核方式文本10否无课程性质文本10否无(2) 教师信息数据库:记录院系教师的基本信息属性:(教师姓名,教师代码,职称,学位,住所)其中教师代码唯一标识一位教师,教师职称和学位确定教师优先级,住所判断老师是否在校外居住,排课时给予一定的优先级。如表3-2所示:表3-2 教师表字段名称数据类型字段大小可否为空索引教师代码数字10否有(无重复)教师姓名文本10否有(无重复)职称文本10否无学位文本10否无住所文本10否无(3) 教室信息数据库:记录教室的基本信息属性:(教室名称,教师代码,教室容量,教室性质)其中教室代码唯一标识一个教室,教室容量和性质分别判断是否与班级和课程性质的相匹配。如表3-3所示:表3-3 教室表字段名称数据类型字段大小可否为空索引教室代码数字10否有(无重复)教室名称文本10否有(无重复)教室容量数字10否无教室性质文本10否无(4) 班级信息数据库:记录班级的基本信息属性:(班级号,班级代码,班级人数,所在专业,所属年级)其中班级代码唯一标识一个班级,所属年级用来确定该班级有哪些课程。如表3-4所示:表3-4 班级表字段名称数据类型字段大小可否为空索引班级名称文本10否有(无重复)班级人数数字10否无所在专业文本10否无所在年级文本10否无(5) 课程申请库:记录课程申请的基本信息属性:(申请代码,班级名称,课程名称,开始周,周学时,教师姓名,学分,开始周,周数)其中申请代码唯一标识一个申请记录。如表3-5所示:表3-5 课程表字段名称数据类型字段大小可否为空索引申请代码数字10否有(无重复)课程名称文本10否有(无重复)教师姓名文本10否有(无重复)班级名称文本10否有(无重复)周课数数字10否无学分数字10否无开始周数字10否无周数数字10否无(6) 班级和教室课表库:记录班级和教室的课表信息,按班级和教室生成相应的课表(7) 密码表库:记录用户信息和用户相对应的密码,根据用户的身份设置系统的权限,如表3-6所示:表3-6 密码表字段名称数据类型字段大小可否为空索引用户名文本10否有(无重复)密码文本10否无3.6.4 E-R图数据库设计 利用ER图方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。(1) 设计局部ER模式实体和属性的定义:班级(班级号#,学院名,专业名,班级人数)课程(课程代码#,课程名称,学时,学分,所属专业,任课教师编号)教师(教师编号#,姓名,职称,所属系别)时间(上课时间#,教学日,教学周,学期)教室(地点#,容纳人数,是否为多媒体教室 )班级班级代号人 数专 业学 院课 程课程号课程名称学时学分教 室地 点多媒体人 数图3-4 各个局部ER图设计班级上课课程MN教员讲授课程N1图3-5 联系定义E-R模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。解释如下:一个学生可以选择多门课程学习,而一门课程有多个学生学习;一个教员可以教授多门课程,而一门课程只有一个教师选择教授;(2) 设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。3.6.5 关系数据库的逻辑设计由于概念设计的结果是E-R图,DBMS一般采用关系型,因此数据库的逻辑设计过程就是把E-R图转化为关系模式的过程。由于关系模型固有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。(1) 导出初始关系模式表3-7 关系模式集班级(班级号#,学院名,专业名,班级人数)学习(班级号#,课程代号#)课程(课程代码#,课程名称,学时,学分,所属专业,任课教师编号)教师(教师编号#,姓名,职称,住所)教室(上课地点#,容纳人数,是否为多媒体教室)排列(课程代码#,上课地点#)(2) 产生子模式子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。如表3-8所示:表3-8 部分子模式学习子模式(班级号#,课程代号#,课程名)课程子模式(课程代号#,课程名,学时,学分,所属专业,任课教师编号#,任课教师姓名)3.6.6 数据结构和程序(模块)关系本系统中,各个模块使用到相应的数据库中的表的关系,如表3-9所示:表3-9 表和模块关系图模块 表系统登入模 块主界面模块教师设置模 块班级设置模 块教室设置模 块课程设置模 块课程申请模 块自动排课模 块高级查询模 块系统权限模 块教师表班级表教室表课程计划表课程申请表密码表其中表示该数据表和相对应的模块间的对应关系。3.7 算法设计3.7.1 排课细节及需求排课细节需求大体上就是系统开发者需要进一步和用户进行协商,甚至要进入用户的单位深入了解情况,使得开发出来的系统在任何一个环节都能满足用户的要求,甚至比用户想象的更加完美。由于排课算法以及冲突检测在细节上有很多限制,在设计之前我们做了详细的讨论和分析,得到排课系统有以下细节需求:(1) “公共基础课和公选课优先固定”,由于这两种课一般由教务处制订课程计划,因此应该在自动排课之前将它们优先固定。(2) “一师多课”冲突情况,即一位教师在同一时间内排了一门以上的课。(3) “一室多课”冲突情况,即一个教室在同一时间内排了一门以上的课。(4) “一班多课”冲突情况,即一个班级在同一时间内排了一门以上的课。(5) “教室容量匹配”情况,即上课班级人数应该与所在教室的人数匹配。(6) “合班和分班课程”情况,即在排课时要考虑像英语这样的分班课和政治这样的合班课如何排课。(7) “课程单双周”情况,即某些总课时较少的课程,可以考虑在单周或双周排课。(8) “同一课程间隔”情况,尽量让同一课程在一周内课时内的排课分布均匀。(9) “课程优先级”情况,尽量让学分值高的和重要的课程排在黄金时间,课程优先级低的排在其他时间。(10) “课程扩充”情况,如果正常情况下无法满足课程的需要,就要在晚上或者周六日进行课时的扩充。(11) “课程与教室匹配”情况,课程要求的条件必须与教室设备条件相匹配,是否需要多媒体授课等。3.7.2 算法说明(1) 变量定义及初始化获取申请课程数量(appNum)及教室数量(roomNum),定义排课数组arrweekdaytimeroomNum1,其中排课数组中的各维数含义表示如下:Weekday:表示一周的天数,取值为05;Time:每天的上课时间,取值为04,分别为(1和2,3和4,5和6,7和8,9和10);roomNum:教室的编号;最后一维表示课程的码值,码值是课程的唯一标识,排课数组的这一维记录了某天某个时候某个教室所上的课程,是冲突检测的唯一根据;定义申请课程数组app(appNum),数组的下标表示申请码,数组值表示申请课程的内容,包括教师姓名,班级名称,周课数,课程名称。遍历申请数组,计算总的周课数totalCourseNum。(2) 排课算法 判断周课数totalCourseNum是否为0,为0则排课结束,否则进行; 循环遍历申请数组app,如果appi.courseNum=0,即当前课程的周课数totalCourseNum为0,则跳出循环,否则安排当前课程; 安排课程:检测排课数组arrweekdaytimeroomNum0是否为0(为0表示还未排课)并且教室合适而且没有冲突则排课成功,将当前申请数组appi.courseNum-1,总的周课数totalCourseNum -1,否则进行相应的调整。调整过程如下:首先对roomNum进行查找,看是否有合适的教室;其次看是否是非周末,并且是上下午第一节课,如果是则推迟到下一节继续查找;接着看是否是周1至周4并且为上下午最后一节,如果是则推迟到第二天并且提前到前一节课继续查找;然后看是否是周五并且是上下午最后一节,如果是则推迟到周一并且推迟到下一节课继续查找;再看是否是周一至周四并且时间是晚上,如果是则推迟到第二天的上午第一节课继续查找再看是否是周五并且时间是晚上,如果是则推迟到周六是上午第一节;最后看是否是周六并且时间是白天,如果是则推迟到下一节如果都不成功则本次不对其进行排课; 第二次排课,对第一次排课不成功的课程进行再一次的排课; 最后将排课结果写入数据库中。3.8 接口设计3.8.1 用户接口(1) 用户:用户输入需要登入系统的用户名和密码;系统:识别密码,根据用户的选择进行相应的操作。(2) 用户:用户在主界面这个模块中,可以选择单击“教师设置”、“班级设置”、“教室设置”、“课程设置”等进行相关操作。系统:根据用户的选择进行超链接。(3) 用户:在教师设置、班级设置、教室设置、课程设置、课程申请设置中都会分别设置编辑、删除、修改、查询的超链接,在按钮下面会有以表格形式出现的教师、班级、教室、课程和课程的总体情况的一览表,用户可以分别浏览所有的教师、班级、教室、课程的信息,同时用户还可通过链接对信息进行编辑、修改、删除、查询。 单击“编辑”后,系统会自动跳到编辑页面,用户可在页面显示的表单中输入要编辑的信息,输入后按“确认”,在一览表中将会看到此信息; 在单击“修改”按钮后,系统会自动跳到修改页面,页面会显示要修改的记录的所有信息,用户可在表单中选择要修改的信息,输入后按“确认”,在一览表中将会看到修改后的信息; 在单击“删除”按钮后,系统会自动跳到删除页面,页面会显示要删除的记录的所有信息,用户可直接按“确认”,在一览表中将会看不到此信息; 在下拉框中选择以何种查询的关键字进行查询,在查询的文本框中输入要查询的信息,并按“确认”,比如,要查询02信管2班的基本信息,可在“班级设置”中选择班级,在文本框中输入“02信管2班”,“确认”后,在一览表中就可出现该班级的所有信息。系统:根据用户选择的按钮进行页面的超链接和后台数据库的导入。(5) 用户:在自动排课这个模块中,用户可点击“自动排课”按钮,系统在导入数据后会自动进行排课。在自动排课过程中由于排课设置的等因素,有些课未排,或是某些老师要求上课要调整的,用户就可在这个模块中进行课程的二次编排,即用户可点击“手动调课”按钮,在原有的课表上可根据需要调课。调好课后,还可点击“检测冲突”按钮,检测调好的课程是否有冲突,如果提示有冲突,则继续调课,直到没有冲突为止。对排好的课表,如果有必要还可以点击“保存”按钮,将课表保存在数据库中。系统:自动导入后台数据库,根据算法和代码,生成课表。(6) 用户:在高级查询这个模块中,在出现的界面的上边有写着“请输入关键字”,在“字段”中选择“班级名称”或“教师姓名”,点“提交”,在页面的下边就会出现该班或老师的课表。同时在这个模块中,用户在查询到需要的课表后,可对此课表进行打印,只要点击“打印”按钮。系统:自动导

温馨提示

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

评论

0/150

提交评论