




已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于APM的教室管理系统的设计与实现毕业论文目 录摘要IAbstractII第1章 绪论11.1课题背景11.2 国内外研究现状21.3 课题目的及意义31.4 课题研究主要内容3第2章 相关技术与理论52.1 开发环境与工具52.1.1 APM平台52.1.2 HTML CSS和JavaScript62.1.3 Dreamweaver编辑器62.2 相关理论72.2.1 启发式搜索72.2.2 禁忌搜索72.2.3 回溯法82.3 本章小结8第3章 需求分析93.1 问题定义93.1.1 学生使用系统的功能要求93.1.2 教师使用系统的功能要求93.1.3 管理员使用系统的功能要求103.2 可行性分析103.3 需求分析113.3.1 系统功能需求113.3.2 安全性与完整性需求123.3.3 数据流程图与功能划分133.3.4 数据字典153.4 本章小结17第4章 数据库设计184.1 数据库设计184.2 数据库表194.3 本章小结24第5章 总体设计255.1 系统模块设计255.1.1 公共模块255.1.2 学生功能模块275.1.3 教师功能模块285.1.4 管理员功能模块295.2 本章小结30第6章 系统详细设计316.1 公共模块设计316.2 排课算法的详细设计326.3 本章小结36第7章 系统实现377.1 系统实现377.2 本章小结42结论43参考文献44致谢46附录1 开题报告47附录2 文献综述51附录3 中期报告54附录4 外文原文57附录5 外文译文68I第1章 绪论 第1章 绪论1.1课题背景随着信息化的高度发展,大学中远程在线课堂授课的教学方式已经出现,但这种非面对面交互的教育方式存在着很多的弊病1,因此目前在我国绝大部分大学还是以教室中面对面的授课方式为主。综合考虑大学授课中多方面的特殊性,大学授课对教室的安排与义务教育阶段大不相同,对某个班级的课程安排不再局限于某一个教室,并且可能会出现多个班级在一个教室中上课的情况。从使用角度上看,这样的教室安排制度增大了教室使用的自由度,尤其是在如今大学中教室少班级多课程多的现状下,这样的教室使用方案更能充分利用教室资源,使教室得到合理的分配。但从教室的管理角度来说,教室使用越自由,教室的管理的难度就越大。管理的难度主要体现在对教室排课问题上。众所周知,大学中每个专业需要修的课程都有很多,大部分课程都能在一个学期内学习完毕,这样就导致每个学期初都要进行一次教室分配。分配过程不仅要考虑教室本身是否会发生使用上的空间冲突(同一教室同一时间安排了两门或两门以上课程),而且还要考虑参与授课过程的教师学生是否会发生时间冲突(同一学生或教师同一时间不能出席两门或两门以上的课程)。而且就目前而言,我国高等教育己进入大众化发展阶段,各高校的招生数量急剧增加,给高等教育带来了深刻的变革。面对跨越式的发展速度和招生数量的大幅度增加,不少高校教室资源短缺的问题逐渐凸现出来。科学、高效、合理地管理和使用高校教室资源,保证学生正常的学习环境,成为目前高校教学资源管理研究的一项重要课题。共四座教学楼,共近200间大小不等类型不一的教室,要分配九个学院41个专业的课程,这些专业四个年级共有大约450余个班,有近11000余名学生。所有的班级总共要在东区安排近1200门课程,每门课程每周上课节数不等。如果手工安排所有课程的话大概需要花费一个月左右的时间,而且手工排课不能从全局考虑教室分配的平均性。综合以上论述来看,一个学校需要一个优秀的教室管理软件势在必行。一个教室管理系统不仅能方便工作人员对教室资源的管理和安排,大大减轻他们的工作量,还更能为学生和老师查询自身与教室的相关信息提供方便,并且还可以提供给教师部分教室占用权限,分担管理人员的一部分工作。1.2 国内外研究现状上个世纪中叶,西方学术界就有人开始研究大学排课问题。二十世纪六十年代,Gotlieb曾为排课问题创建了一个数学模型2,最终使用部图匹配解决了排课问题。在此之后,人们开始在Goflieb的数学模型基础之上对课表问题的算法、解的存在性等问题做了很多深入研究。人们尝试用各种方法求解排课问题,有些人尝试把排课问题归结为求一组O-1变量的解,但工作量十分庞大,而且这种技术只能适用于课程较少的情况;二十世纪八十年代Mihoe提出排课问题可以看作是一个优化问题;接下来Tripathy发表论文使用整数线性编程方法求解排课问题并提出了相应的数学模型;之后又有人提出可以使用图论中的方法解决排课问题,比如二部图匹配方法。直到遗传算法的提出,人们又开始研究使用遗传算法将排课问题看作是优化问题来解决。直到如今仍然有许多人在研究遗传算法,比较有代表性的有印度的Vastapur大学管理学院的Arabinda Tripathy、加拿大Montreal大学的Jean Aubin和Jacques Fe rland等。在课表安排中使用过的算法有:(1)关联规则FPgrowth算法。(2)基于时间位图迭加匹配的算法。(3)基于资源匹配的算法。(4)分组优化决策算法。(5)分支定界法。(6)有限回溯法。(7)拉格朗日松弛法。(8)二次分配型法等多种方法。由于排课问题面临时间空间各个方面的资源约束,完全用数学方法进行问题描述而忽略计算机硬件条件总结出来的解决排课问题的方法虽然理论上可以解决排课问题,但是当使用具体编程语言实现时又会面临各种障碍。外国的研究表明,解决大规模课表编排问题单纯靠数学方法是行不通的,而利用运筹学中分层规划的思想将问题分解,将是一个有望成功的办法。在我国对排课问题的研究始于八十年代时期,从今天来看具有代表性的有:南京工学院的UTSS(A University Timetable Scheduling System)系统3、清华大学的TISER系统、大连理工大学的智能教学组织管理与课程调度系统、西南交通大学提出的以课元相关运算和课元的候选时空片计算为核心的计算机排课算法,延边大学根据人手工排课的方法设计了计算机自动排课的数据结构与算法;沈阳电力高等专科学校研制了基于ClientServer的开放式智能排课系统等。1.3 课题目的及意义研究该课题的主要目的是设计出一个具有良好交互性的可供学生、教师以及教室管理人员使用的具有增、删、改、查功能的管理类网站,同时设计出一个具有实际意义且可以用PHP语言实现的排课算法。该算法对现有规模的排课问题应在可以接受的时间内执行完毕,算法能实现全部的硬性条件约束和部分软约束并且可以完成对绝大部分课程的安排。研究该课题的意义在于可以使教室管理信息化,便于与教务管理其他模块进行数据交换并且可以作为教务管理的一部分并入教务管理系统。就教室管理本身而言,设计这样的一个系统可以大大减轻教务人员对教师信息管理工作量,尤其是可以大大减少手工排课所花费的时间,并且从整体而言能获得比手工排课更加合理的教室分配方案。而就其他用户而言,该系统可以简化教师申请使用教室的流程,同时方便了学生对教室信息的查看。而且作为一个B/S模式的管理系统,可以为教师和教务人员发布与教室相关的信息提供方便。1.4 课题研究主要内容该课题主要研究主要内容有:(1)确定系统开发语言和平台,选取适当的开发工具。(2)对该课题进行需求分析 根据用户使用需求和现有业务流程对系统进行分析并对系统各个功能的实现方式进行构思和设计。接下来通过分析现有的手工排课流程设计系统数据流程图,对系统和人的应完成工作进行分工,明确系统功能。将将系统数据流程图中出现的实体抽象化规范化,然后对这些实体设计数据字典,明确每一对象的属性。(3)对数据库进行设计 考虑系统中所有会出现并且需要保存的数据,充分考虑数据之间的关系,本着尽量减少冗余的规则设计数据库表,并确定表之间的关联关系。(4)对系统进行整体设计 根据需求分析中对问题的定义将系统分为具体功能的模块,使模块之间高内聚低耦合。然后根据现有技术和开发语言的特性对每一个模块进行设计。(5)对系统进行详细设计 在整体设计结束的基础上对系统中反复出现的功能模块进行详细设计,然后分析排课过程中出现的各种问题并提出解决方案,叙述排课算法的流程。(6)系统实现 该部分主要以运行界面截图的方式讲述各个功能模块的实现方式以及系统如何操作。 75 第2章 相关技术与理论 第2章 相关技术与理论2.1 开发环境与工具 根据当前主流技术的发展应用趋势,本系统的开发选取了Apache + PHP + MySQL经典组合作为开发平台。其中Apache是系统运行的服务器,可以满足中小型网站的使用需求;PHP作为系统后台脚本开发语言,完成系统中控制和处理部分的功能;开发本系统采用MySQL数据库储存数据主要是考虑MySQL数据库与PHP语言的完美兼容性。系统的前台开发使用了HTML文本标记语言,页面设计使用了CSS层叠样式表,前台处理使用了JavaScript脚本语言。系统开发使用的主要工具为Macromedia公司的Dreamweaver可视化网页编辑器,下面分别对其进行简要介绍。2.1.1 APM平台 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。PHP是一个嵌套的缩写名称,它是英文超文本预处理语言(Hypertext Preprocessor)的缩写,只要用途是处理动态页面。PHP是一种HTML内嵌式的语言,语言风格类似于C语言,语法混合了C、Java、Perl以及部分自创语法,可以比CGI或者Perl更快速的执行动态网页。PHP属于解释执行语言,嵌入在HTML文档中执行,具有较高的效率。其与ASP和JSP最大的不同点就是源代码是开源的,而且具有良好的跨平台性。MySQL是一个小型关系型数据库管理系统,由于其体积小速度快的因素被广泛用于Internet的中小型网站中。MySQL具有运行速度快、支持多种平台和支持多种开发语言的特点。与其他数据库相比,MySQL是一个开源的软件,因此用户可以免费使用MySQL数据库。选取Apache + PHP + MySQL的组合有两个原因:(1)Apache和MySQL对PHP有很好的兼容性,能很好的支持PHP的一些扩展功能。(2)三个软件全部是开源软件,使用它们能在不侵犯版权的情况下降低开发成本。2.1.2 HTML CSS和JavaScriptHTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。CSS(Cascading Style Sheet,可译为“层叠样式表”或“级联样式表”)是一组格式设置规则,用于控制Web页面的外观。通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。页面内容存放在HTML文档中,而用于定义表现形式的CSS规则存放在另一个文件中或HTML文档的某一部分,通常为文件头部分。将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间。JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司设计,是一种动态、弱类型、基于原型的语言,内置支持类。使用JavaScript可以在客户端进行一些动态处理并且可以提供一些对浏览器的操作,减少客户端与服务器端的交互,使系统得到优化。2.1.3 Dreamweaver编辑器Dreamweaver是在网页设计与制作领域中用户最多、应用最广、功能最强大的软件。它集网页设计、网站开发和站点管理功能于一身,具有可视化、支持多平台和跨浏览器的特性,是目前网站设计、开发、制作的首选工具。Dreamweaver具有灵活编写网页的特点,不但将“设计”和“代码”编辑器合二为一,而且在设计窗口中还精化了源代码,能帮助用户按工作需要定制自己的用户界面4。选用Dreamweaver作为开发工具的主要原因是:(1)该软件属于所见以所得的可视化开发工具,能减轻系统前台开发的工作量。(2)软件支持Frame框架、JavaScript脚本、CSS样式表以及DIV模块的可视化开发,可以系统开发的功能满足需求。(3)PHP语言属于解释执行语言,不需要编译即可执行,Dreamweaver软件可以完成PHP脚本的编写。2.2 相关理论 设计排课算法时,为了使教师以及学生在同一时间最多只能出席一门课程,使用了图论中的无向图来体现课程之间的冲突关系;在为课程寻找合适的教室时,开始使用了启发式理论逐门安排课程,使每门课程都能满足硬约束,当课程安排失败时对课程的调整又使用了回溯理论以及禁忌搜索理论,其具体使用过程见第5章详细设计,现在对以上理论进行简要介绍。 2.2.1 启发式搜索启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。启发式算法则试图一次提供一个或全部目标。它常能发现很不错的解,因此将启发式搜索方法用于课程的初次安排中,这样可以降低初次安排课程的时间。2.2.2 禁忌搜索禁忌搜索是局部邻域搜索算法的推广,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解,TS搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向,这就是所谓的禁忌表。当课程安排失败时,使用禁忌搜索法在冲突图中寻找与该课程可能发生冲突的课程,对其进行回溯排课。2.2.3 回溯法回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。因为回溯之前进行了禁忌搜索,为防止回溯时间过长,为回溯设置回溯长度以及回溯半径,用以限制回溯过程规模。2.3 本章小结本章主要介绍研究该课题过程中使用到的一些技术及其理论。计算机的软件的开发离不开计算机编程语言以及相关软件的支持,所以首先确定了开发过程中使用的开发平台环境,然后对其特性和优点进行简要的介绍,说明选择Apache + PHP + MySQL作为开发平台的理由是其良好的兼容性以及代码开源性。本章第二节罗列出研究过程中使用到的一些理论,简要介绍了什么是启发式搜索、禁忌搜索和回溯法,并且简单的说明在课题研究中的那些部分需要使用该理论。第3章 需求分析 第3章 需求分析3.1 问题定义 本系统是一个基于B/S模式的多用户系统,最终面向的是所有在校的教师、学生和系统管理人员,下面分别从这三个角度对系统进行定义。3.1.1 学生使用系统的功能要求(1)每个在校学生都可以访问该系统,学生毕业之后不可以在使用该系统。(2)在校学生可以通过该系统查看并可以打印本学期的个人课表。(3)学生可以对本学期每一天公共教室的使用情况进行查询,方便上自习教室的查找。(4)学生可以对自己感兴趣的课程或感兴趣的教师开设的课程的上课教室进行查找,对课程的查找应该支持模糊查询。(5)学生可以对本学期自己所修课程的考试信息进行查看,前提是本门课程已经安排了考试。(6)学生可以更改自己的系统登录密码。(7)学生可以查看由教务人员发布的关于教室占用、教学楼开放或关闭等信息和教师发布的关于课程补课教室或课程更改上课教室的信息。3.1.2 教师使用系统的功能要求(1)每个在职教师都可以访问该系统,教师离职之后不可以再使用该系统。(2)在职教师可以通过该系统查看和打印本学期的个人任课课表。(3)教师可以根据教室类型大小和使用的时间对符合条件的教室进行查找,对查找结果可以申请占用,占用时间最多为四个课时,教室的申请应该在对教室使用时间的前一天或前几天进行。(4)教师可以对自己占用教室的历史进行查看,对于尚未发生的占用,教师可以取消该次占用。(5)教师可以对本学期自己任课的课程进行考试安排,可以查看已经安排过的考试的信息。(6)教师可以发布关于课程补课或课程更改上课教室的信息。(7)教师可以更改自己的系统登录密码。3.1.3 管理员使用系统的功能要求(1)该系统应该存在至少一个管理人员,对教室及其相关信息进行管理。(2)管理员可以对教室的基本信息进行管理,包括教学楼的查找添加和删除、教学楼中教室的查找添加修改删除。管理员可以对本学期每间教室的课程表进行查看与打印。(4)管理员可以对本学期考试安排教室的信息进行查看和取消。(5)管理员可以申请教室的占用,并且可以对本学期所有教室占用的信息进行查看,对尚未发生的占用管理员有权删除占用信息。(6)管理员可以在学期初对本学期起止时间等相关信息进行设置。(7)管理员学期初可以清除毕业离校学生以及离职教师的登录权限并且可以删除上学期与课程安排有关的信息。(8)管理员可以对本学期课程安排等相关数据进行导入。(9)管理员可以发布与教室有关的占用信息。(10)管理员在学期初可以通过系统对所有课程的上课时间和地点进行安排。(11)管理员可以备份以及恢复数据库内容。(12)管理员可以对所有用户进行注册和密码修改。3.2 可行性分析为了研究设计该系统的方案是否可行,接下来从技术可行性、操作可行性、经济可行性和法律可行性四个角度对开发该系统进行可行性分析5。(1)技术可行性分析 根据问题定义阶段对问题的描述以及当今理论技术的发展现状来看,该系统可以通过已选定的开发环境进行开发。经过对排课算法的初步学习和调研,使用PHP语言可以在有限时间开发出一个具有实际意义可以满足用户要求的对课程进行自动安排的算法。(2)操作可行性分析 该系统性质上属于信息管理系统,因此开发过程中可以参照其他成功的基于B/S模式的管理系统对该系统进行操作界面的设计,由于开发语言与所选数据库具有很好的兼容性,所以对数据库的操作基本也可以全都在系统功能界面实现。综合以上考虑,对互联网有基本的了解曾经使用或访问过类似网站的人都有能力对系统进行操作,管理员对系统的操作可以在软件开发结束之后通过与开发者的沟通进行进一步的了解。(3)经济可行性分析 由于软件开发所使用的环境基本都属于开源软件,都可以通过正当途径免费获得其使用权限,因此从经济角度上说开发该系统是可行的。(4)法律可行性分析 本软件为自主创新的智力活动,所使用工具都是通过合法途径获得,系统中不存在侵犯他人所有权的内容存在,软件的调研背景为本学校,所有数据来源都属于自己调查和统计,产品的目标为进行课题研究不属于任何商业活动,软件所涉及内容也与法律无任何冲突,因此从法律角度讲开发该软件是可行的。3.3 需求分析3.3.1 系统功能需求对系统的大部分功能需求在问题定义阶段已经描述清楚,这里主要对排课功能进行详细的分析。课程安排过程需要满足两种需求6,硬性需求和软需求,其中硬性需求如下:(1)所有课程都必须被安排。(2)所选课程的出席人数不能超过该教室的容量。(3)同一个教师的不同课程不可以发生在同一个时间。(4)同一个班级的不同课程不可以安排在同一个时间。(5)一个教室的同一个时间不可以安排两门或两门以上的课程。(6)上课的教室类型符合课程的需求。软性条件如下:(1)课程应该均匀的安排在整个学期。(2)一门课的多个课节最好安排在一个教室。(3)一门课一天不可以出现两次或两次以上。(4)对每个教室的排课量应该大体保持一致。(5)对每个班级和教师而言,课程安排最好均匀分布在一周中。硬性要求是排课过程中必须遵循的要求,每门课程安排过程中都必须遵循以上要求,如果不能满足应该做相应的调整。软性要求是在对课程的安排满足所有硬性条件的前提下最好可以满足的需求,当条件不允许时软性要求可以适当的放宽。3.3.2 安全性与完整性需求由于该系统的开发基于B/S模式,就B/S模式的管理系统的工作模式而言,对软件进行安全性和完整性进行考虑是系统中必不可少的一步,这直接关系到软件使用是否可靠和安全,关系到系统使用过程中是否会出现重大问题而造成其他重大损失7。就管理系统而言还不得不考虑信息数据的完整性需求,因此接下来将从访问权限的安全性系统的容错能力以及系统数据的完整性进行分析,确定系统安全性和完整性的需求。(1)访问权限的设置由于B/S模式的管理系统的访问一般是通过浏览器发送URL地址对相应页面进行访问,因此系统必须具有一个访问权限核实的模块,在每个页面加载前进行调用,防止有其他动机的不良用户通过URL访问其无权访问的页面进而对系统数据进行修改对系统造成损失,其中权限核实的内容应包括两个部分:无任何权限的用户试图跳过登录步骤直接访问功能界面和具有某种权限的用户登陆后试图通过服务器中以保存的身份信息访问其他无权访问的页面。每个用户登录后其访问权限应有时间限制,如果用户长时间(其时间暂定为10分钟)对系统操作无任何操作,再次访问系统时,系统给出相应的提示后自动跳转到登陆页面要求用户再次登录。(2)系统的容错能力由于该系统许多模块的功能都与时间有关,因此容错主要从时间冲突角度考虑。由于系统用户都属于学校成员,因此系统中关于时间的设定都是基于学周的,当用户对教室资源进行占用或取消占用时,要对用户所选时间与当前时间进行比对,用户占用教室时选择的占用时间应该在当前时间之后,用户取消教室相关使用信息时,取消动作发生的时间应该在使用动作落实之前。对于可以由用户输入内容的模块,要对用户输入内容进行核实,以免因为用户操作失误或者好奇输入非法内容而使系统产生不可预知的错误。 (3)数据完整性管理系统离不开对数据的操作,因此对数据的完整性关系到系统运转是否正确,因此要求数据相互联系正确,数据记录完整数据项,相同的数据在不同的表格中应该一致。其具体内容见下一章数据库设计部分。3.3.3 数据流程图与功能划分由于学生以及教师使用该系统的操作相对简单且功能划分也相对明确,因此对于学生和教师功能模块在此章暂不赘述,具体内容将在下两章讲述。而管理员模块的功能相对来说较为复杂,无论是数据管理还是排课过程都涉及到与外界的数据交换,因此对该模块建立数据流程图,如图3-1。下面将通过数据流程图对管理员模块尤其是排课过程进行功能划分,确定由系统完成的功能以及需要人进行的操作。由于排课过程涉及课程、班级、教师和教室等多方面的信息,因此排课过程不可能由软件独立完成,现在对排课流程进行描述,在描述过程中确定系统边界,明确系统功能。(1)由于排课之前学校要对本学期所有应该安排的课程进行选定,因此系统应生成最新教室资源的统计表,教务工作者在课程安排时要注意课程安排的总学时应该不超过本学期教室时间资源总数的80%,以免课程过多最终导致部分课程无法调度安排失败。(2)排课之前教务人员需要手工做的工作有:确定本学期所有需要安排的课程;确定每门课程需要出席的班级;确定每门课程的任课教师;确定每门课程上课所需教室的类型;确定每门课程开课的学周;确定每门课程的总学时数。以上数据处理完成后将其与本学期教师变动信息、本学期所有入学班级信息、本学期所有入学学生信息输入至预先设定好格式的Excel表格中,之后将表格提交至系统管理员。图3-1 教室管理系统管理员模块数据流程图 (3)管理员使用系统将上步中提交的Excel文件导入数据库。在导入数据之前,管理员应将上学期已失效的数据删除并设置本学期的起始截止时间,该功能由系统实现,系统导入结束显示导入失败的信息,由管理员和教务人员配合对导入失败的信息进行核对(核对过程属于人工操作),核对完成后再次将正确的数据导入数据库。(4)当确定所有数据已经成功导入后,管理员可以开始使用系统进行排课,排课程序执行结束后,系统生成安排失败课程的报表,管理员将此表交至教务人员,然后教务人员根据失败课程的任课教师以及所有出席班级的现有课程通过手工方式安排课程的上课时间,若时间仍无法调度成功可以考虑更换任课教师或将课程安排至非正常授课时间(如周末或者晚上)。(5)教务人员将安排信息提交至系统管理员,有管理员使用系统的手工排课功能对课程进行空间安排,若不成功则返回步骤(4)直至全部课程安排成功。3.3.4 数据字典在上一节中通过数据流图对系统进行了边界划分,本节将以数据字典的形式具体说明数据流图中的主要数据对象的信息,以便开发过程中的程序设计及数据库设计。名字:教学楼基本信息描述:本校所有教学楼的信息定义:教学楼基本信息=教学楼ID+教学楼所在校区+教学楼名称位置:保存至数据库名字:教室基本信息描述:本校全部教室的基本信息定义:教室基本信息=教室ID+所属教学楼ID+教室类型+教室座位数位置:保存至数据库名字:统计的教室数据别名:教室统计一览表描述:对本校全部教室按校区类型和大小进行分类统计定义:教室统计一览表=教室所在校区+教室类型+教室大小+该类教室总数位置:输出至打印机名字:课程及用户信息别名:教务处学期数据报表定义:教务处学期数据报表=教师表+课程信息表+班级信息表+学生表位置:Excel文档名字:课程信息描述:本学期所有学要安排的课程信息定义:课程信息=课程ID+课程名+课程起始学周+课程结束学周+课程全部课时+开课学院+任课教师ID+所需教室类型+出席课程班级位置:保存至数据库 教务处学期数据表名称:课程安排信息描述:系统对课程上课地点的安排结果定义:课程安排信息=安排编号+上课教室编号+上课星期+上课课节+任课教师ID位置:保存至数据库名称:课程时间安排信息别名:手工课程安排时间表描述:教务人员提供的用于课程手动安排的课程时间信息定义:课程时间安排信息=课程ID+教室校区+教室类型+上课人数+课程起始学周+课程结束学周+上课星期+上课课节位置:保存至数据库名称:用户信息描述:系统所有用户的信息定义:用户信息=教师信息+学生信息+管理员信息位置:保存至数据库 教务处学期数据报表名称:教师信息描述:本学期所有进行授课的教师的基本信息定义:教师信息=教师ID+教师名称+教师所属学院+个人密码位置:保存至数据库 教务处学期数据表名称:学生信息描述:所有在校学生的基本信息定义:学生信息=学生ID+学生姓名+学生所在班级ID+学生密码位置:保存至数据库 教务处学期数据表名称:班级信息描述:本校全部班级的信息定义:班级信息=班级ID+班级入学年份+班级所属学院+班级所属专业+班级编号+班级学生人数位置:保存至数据库 教务处学期数据表3.4 本章小结本章的需求分析主要介绍了系统开发前进行的准备工作,系统需求分析做的好坏直接关系到系统开发过程的难易程度,因此本章从多个角度对系统进行描述,第一节问题定义的内容是开发者在和用户进行沟通后从用户的角度确定系统开发主要该解决的问题;第二节可行性分析是综合考虑各方面的客观因素确定本系统是否可以去研究开发;第三节数据流程图及功能划分的内容是在了解用户的需求后,综合考虑当今技术背景,通过对整个系统数据的流动对系统的边界进行明确的划分,确定了那些工作应由系统实现,那些内容需要人配合系统实现;最后一节是对第三节的补充,以数据字典的形式解释数据流程图中出现的主要的数据对象的内容。第4章 数据库设计 第4章 数据库设计4.1 数据库设计数据库设计是系统设计中必不可少的一个阶段,教室管理系统属于一个信息管理系统,而信息管理系统的本质就是一个对数据进行管理的工具,因此数据库设计的好坏直接关系着管理的复杂程度。对数据库的设计步骤如下:图 4-1 教室管理系统数据库总体结构图(1)确定使用中小型数据库管理系统MySQL作为系统数据库,并使用PHP语言编写的phpMyAdmin作为数据库可视化操作的工具。(2)根据系统的需求首先对数据库进行了概念设计,通过对系统中涉及到的数据进行分类聚合和概括,最终对教室、教师、学生、班级和课程等主体建立了抽象的数据模型。(3)然后根据系统所需实现的功能分析各个主体应该具有的属性,并确定主体之间的联系以及联系的属性。(4)本着保证数据完整性、尽量减少数据冗余的基本原则确定数据库中表的数量以及表中的数据项的划分。(5)在每个表中定义主键,定义过程参照数据库第三范式的要求。(6)对数据库中的部分表做调整,进一步减少数据的冗余。(7)使用可视化操作工具phpMyAdmin创建数据库以及数据库表,声明表中的主键和外键,并在表之间添加联系,完成数据库的创建。最终确定数据库的结构如图4-1所示。4.2 数据库表接下来对数据库中的每个表进行介绍,字段之前标注星号的是表的主键。表4-1为学院数据表,用于保存本校全部的学院信息。表4-1 学院信息表字段类型长度备注名称*academy_idint8学院编号academy_namevarchar20学院名academy_areavarchar5学院所在校区表4-2为教学楼表,用于保存全校所有教学楼的信息。表4-2 教学楼信息表字段类型长度备注名称*b_idint8教学楼编号b_areavarchar5教学楼所在校区b_namevarchar20教学楼名称表4-3为班级表,用于保存当前在校的全部班级的信息。表4-3 班级信息表字段类型长度备注名称*c_idint16班级编号c_academyint8班级所在学院c_departmentint8班级所在专业c_classint8班级c_yearint8入学年份c_students_numint8学生总数表4-4、4-5分别为学生信息表和教师信息表,保存当前在校学生和教师的信息。表4-4 学生信息表字段类型长度备注名称*s_idvarchar12学生号s_namevarchar10学生姓名s_classint8所在班级编号s_passwordvarchar16个人密码表4-5 教师信息表字段类型长度备注名称*t_idvarchar12教师工号t_namevarchar10教师姓名t_academyint8教师所在学院t_passwordint16个人密码表4-6为课程表,用于保存本学期所需开设的全部课程的信息。其中,subject_sweek以及subject_eweek的含义分别为课程安排成功之后课程的开课以及结束学周;subject_axeam用于标记该门课程是否已经安排开考试;subject_room_type以及subject_area两条属性在课程导入时已经定义,分别表示希望课程被安排教室的类型和校区,属于排课条件,排课结束之后两条数据再无意义;suject_arr也属于课程安排辅助信息,用于表示课程是否已经被安排教室。表4-6 课程信息表字段类型长度备注名称*subject_idint16课程编号subject_namevarchar20课程名称subject_sweekint8课程起始学周subject_academyint8开课学院subject_eweekint8课程结束学周subject_teacher_idvarchar12任课教师工号subject_axeamint8课程是否安排考试subject_time_numint8课程学时总数subject_room_typeint8课程所学教室类型subject_areavarchar5课程上课校区subject_arrint16课程是否被安排表4-7为课程安排信息表,用于保存安排成功的课程的安排信息。表4-7 课程安排信息表字段类型长度备注名称*course_idint16课程安排编号course_room_idint16上课教室编号course_weekint16上课星期course_timeint16上课课节course_subject_idint16所安排课程的编号表4-8为课程出席表,该表属于课程与参与该课程授课班级之间联系的表,为减少数据的冗余,将其作为一个独立的表保存在数据库中。表中每一条信息代表编号为a_class_id的班级需要出席编号为a_subject_id的课程。表4-8 课程班级关系表字段类型长度备注名称*a_subject_idint16课程编号*a_class_idint16上课班级编号表4-9为教室信息表,用于保存本校全部的教室信息。其中r_available所表达的信息为该教室是否完好可以使用。表4-9 课程安排信息表字段类型长度备注名称*r_idint16课程安排编号r_building_idint16上课教室编号r_numberint16上课星期r_typevarchar16上课课节r_seatnumint16所安排课程的编号r_availableset(Y/N)-标记教室是否可用表4-10为通知信息表,用于保存本学期已发布的通知信息。其中n_vip表示通知的优先级。该优先级由于比较发布日期相同的通知显示的先后顺序。综合考虑通知面向对象的广度和通知的重要性,确定优先级为教师发布通知的优先级低于管理员发布的优先级。教师之间的优先级相同,这样可以确保管理员发布的通知置顶。表4-10 通知信息表字段类型长度备注名称*n_idint16通知编号n_titlevarchar50通知标题n_massagetext-通知内容n_authorvarchar20发布者n_vipint8通知优先级n_datedate-发布日期表4-11为教室占用信息表,用于保存本学期教室占用的全部信息。表4-11 教室占用信息表字段类型长度备注名称*o_idint16占用编号o_room_idint16占用教室编号o_weeknumint16占用学周o_weekint16占用星期o_timeint16占用课节o_reasiontext-占用理由o_teacher_idvarchar12占用教师工号表4-12为专业信息表,用于存储本校全部专业的信息。表4-12 专业信息表字段类型长度备注名称*department_idint16专业编号department_namevarchar20专业名d_academy_idint16专业所属学院编号表4-13为考试占用教室信息表,用于存储本学期全部考试的信息。表4-13 考试占用信息表字段类型长度备注名称*e_idint16考试占用编号e_room_idint16考试教室编号e_weeknumint16考试学周e_weekint16考试星期e_timeint16考试课节e_subjectint16考试科目编号e_calssint16考试班级编号表4-14为学期信息表,用于存储每个学期的开始时间结束时间以及学期类型。表4-14 学期信息表字段类型长度备注名称date_idint16学期编号date_startdate-学期起始日期date_enddate-学期结束日期date_typevarchar5学期类型4.3 本章小结本章主要介绍数据库的设计。首先介绍了数据库的设计过程,设计数据表时主要考虑尽量减少不同表之间的数据冗余,并且尽量使所有数据表满足数据库设计的第三范式,最终确定根据系统对所需存储的数据设计14个数据库表。然后详细介绍了14个数据表的具体内容以及表中的数据项与各项数据的格式,对部分不容易理解的数据表的数据项进行详细的说明。第5章 总体设计 第5章 总体设计根据上一章的需求分析的结果,从本章开始正式从程序设计角度来考虑系统的实现,接下来分别对程序模块和数据库进行设计。5.1 系统模块设计由于系统存在三种不同身份的用户,每一种身份的用户登录后都可以实现不同的功能,因此在使用编程语言实现系统之前需要先对系统进行初步的模块划分。划分模块之后不仅可以明确模块之间的相互关系,而且在划分模块之后,可以对系统的局部进行更加详细的考虑和设计,模块划分就是一个逐步求精的过程8,本节的主要工作是从整体角度考虑系统该如何划分模块以及应该划分为哪些模块,划分过程中的主要考虑的标准为模块间低耦合,每个模块内部高内聚。划分结果如图5-1系统功能模块图所示,接下来将对各个模块进行简要的功能分析。5.1.1 公共模块公共模块是系统中所有用户都可能用到的模块,除图5-1中涉及到的模块之外还有一些可以复用的代码模块,以及一些设计系统界面风格的前台脚本模块,接下来将对其进行一一介绍。 登录模块 登录模块是用户访问系统之前必须使用的一个模块,该模块与各类用户登陆成功之后跳转的页面之间存在数据耦合,该数据用于记录用户名、密码及用户类别以便对所访问页面进行身份验证时使用。用户通过登录模块输入用户名及密码并选择身份,经系统调用数据库数据对用户身份进行验证,验证成功后跳转到相应的登录主页面。 通知显示模块 该模块为系统主页面主要显示内容,同时也是各种身份用户登陆成功页面显示的主要内容,该模块与其他模块无数据耦合,属于独立模块,模块显示为系统通知的标题、发布者和发布日期,通知按发布者优先级和发布时间排序,其排序优先级为管理员高于普通教师,同一优先级之间按信息按发布日期由近至远排列。用户通过点击通知标题链接至通知内容显示页面,若数据出错则跳转至错误页面。图5-1 教室管理系统功能模块图 身份验证模块 该模块属于系统中的一个公共模块,任何页面都可以调用该方法,因此与其他页面之间存在数据耦合。但因为该模块的主体就是一个验证方法,所以数据耦合不会对该模块造成影响。系统除主页面之外的任何页面加载之前都要调用该模块进行身份验证,以确保非法用户通过不正当途径进入系统。5.1.2 学生功能模块学生登录系统后,系统会记录用户名、用户身份和用户密码,以便供其他功能模块使用,数据保存在服务器的Session数组中,因此学生登录的所有模块之间存在一定的数据耦合,接下来逐个模块进行分析。 个人课表查看 该模块用于查看登录用户本学期的个人课表,查询结果以课程表的形式显示,课表以周为单位,课表内部按行分为星期一至星期日七天和课节,将列分为一二节、三四节、五六节、七八和九十节五个大课节。课表每一单元格的内容为本学期每学周中由该单元格所表示的时间片的课程信息,其中包括课程名、课程起止学周、任课教师以及上课地点。模块提供课表打印功能。 自习教室查找 该模块用于向用户提供查找可用自习教室的功能。由用户选择上自习的校区、学周、星期和课节,所选择的时间应该在用户访问系统的当前时间之后,也就是不能对查找已过去时间进行查找。然后系统以列表的形式提供在该时间段内没有因任何原因被占用的普通教室的信息,若查询结果过多,可以分页显示。 个人考试信息查看 用户调用该模块后,可以查看用户本学期所修的课程的考试信息(前提是该课程已经安排考试)。查询结果包括考试科目、考试地点和考试时间,若结果较多,可以分页显示。 课程旁听 用户可以根据课程名或者任课教师的姓名在本校本学期所开设的全部课程中查找自己感兴趣的课程的上课信息。查询条件支持模糊查询,查询结果以表格形式逐条显示,其内容为课程编号、课程名称、开课学院、任课教师、开课学周、上课星期及课节和上课地点。查询结果可以分页显示。 密码修改 由于该系统属于学校内部系统,因此不提供用户个人注册功能,对用户的注册和删除由管理员统一实现。所有用户初始密码均为123456,用户使用该模块可以修改自己的密码。密码修改时会要求用户输入两次密码并对密码进行格式检测,若密
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文秘专业视频题库及答案
- 2025内蒙古呼伦贝尔农垦莫拐农牧场有限公司招聘16人笔试模拟及答案详解(易错题)
- 动态肌电特征提取-洞察及研究
- 渔业废弃物资源化利用教育基地创新创业项目商业计划书
- 动物专用口腔喷雾创新创业项目商业计划书
- 农副产品品牌农产品跨境电商创新创业项目商业计划书
- 智能手机摄像头多倍光学变焦创新创业项目商业计划书
- 石油数字孪生油气储运创新创业项目商业计划书
- 2025年色母料项目建议书
- 移动茶叶与茶具专卖店创新创业项目商业计划书
- 2025年北京市中考物理真题(含答案)
- 外科手术抗生素使用原则
- 2025年环卫清扫职称考试题及答案
- 《酒店营销与数字化实务》课件5模块五课件
- 2025年秋期新课标人教版六年级上册数学全册教案(核心素养教案)
- 《“忆峥嵘岁月传红色抗战精神”党课教育主题活动》课件
- 福州市晋安区社区工作者招聘笔试真题2024
- 2025外科招聘面试题及答案
- 廉政档案管理办法医院
- 工会的考试试题及答案
- 医院麻醉科诊疗规范
评论
0/150
提交评论