机房排课系统设计
目 录
1 绪论. 1
1.1 论文研究背景与意义... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 1 1.2 系统开发方法及目标. .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...1
2 系统分析. 1
2.1 技术分析... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 1 2.2需求分析. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...1
2.2.1 系统功能需求分析... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...1 2.2.2 系统方案设计思想... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4 2.3可行性分析. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 6
3 概要设计. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...6
3.1系统运行总体流程. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7 3.2系统体系结构设计. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...7
3.2.1 机房排课系统设计与实现软件结构设计... ... ... ... ... ... ... ... ... ... ... ... ...7 3.2.2 登陆权限模块设计... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8 3.2.3 信息管理模块设计... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8 3.3 系统E -R图 ................................................................................................. 6 3.4数据库设计. 9
3.4.1 数据库逻辑设计... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9 3.4.2 数据库详细结构... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...9
4 详细设计.. 12
4.1登录窗口设计. 12
4.1.1 登陆窗口功能描述4.2教师查课页面设计. 14
4.2.1 教师窗口功能描述4.3管理员管理页面设计. 17
4.3.1 管理员页面功能描述.. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 17
5 系统测试. 21
5.1概述. 21
5.1.1 概念和意义... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 21 5.1.2 特性... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 22 5.1.3 重要性... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 22 5.2本系统测试描述. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 22
致谢. . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ....23
1 绪论
1.1 论文研究背景与意义
高校机房排课是高校实验教学运行管理中非常重要的环节,它涉及面广、限制条件多。科学合理地编排课程表,对保持稳定的实验教学秩序、确保实验教学任务的完成以及提高实验教学质量具有重要作用。
在每学期中,各科教师在拿到教务部门下发的实验任务后,就必须到实验中心进行排课登记,排课人员要考虑各实验课程对机房条件的要求,各机房计算机的配置,学生人数,课程是否冲突等因素,一直以来排课人员都是使用一张手工排课表,查找到空余机房后再将该课程的排课信息填入其中,最后录入电脑进行打印后以供查询,这样不便于课程和机房的查询以及信息的分类汇总与统计、如何高效而迅速地安排机房成了最大的难题,为解决这一系列的问题,设计了机房排课系统。
1.2 系统开发方法及目标
以各高校的机房排课需求为应用背景,开发一个典型的机房排课系统。考虑实际情况,本系统将采用结构化生命周期法进行系统分析和设计,并采用原型法进行系统实施。这样能有效避免盲目开发问题,同时能充分的发挥原型法的优势,能顺利实现系统的实施。
排课系统的主要研究内容有:根据教学计划、各专业各年级学生人数、课程性质及课程对各种资源的需求信息安排实验班班数及相应机房;每门课的各实验班时间安排应该合适,要有利于提高学生的学习效率;能够合理利用教师资源,合理安排每一位任课教师的辅导实验时间;充分、合理地利用机房资源,按学生上机人数和课程性质选用机房;对各类实验资源和基础资料的查询;系统维护与管理功能。
排课系统各模块需完成的功能:(1)管理员登陆:教师信息、班级信息、机房信息、课程信息、管理员信息模块,实现对系统基本信息的设置(增、删、改、查);自动排课实现的是在约束条件下对上机地点的合理安排;手动排课实现对上机课程的手动编排或自动排课后的手动调整。(2)教师登陆:教授课程实现的是当前教师根据自己所授课程对课表的查询;教授班级实现的是当前教师根据自己所教班级对课表的查询;申请原因是对停课或调课的原因说明,管理员登陆后会根据查询到的信息,对该教师的课程表进行调整安排。 2 系统分析
2.1.1系统功能需求分析
由于各个高校的机房上机安排信息使用传统的人工方式,管理着机房上机安排的所有信息,使用这种管理方式存在着许多不尽人意缺点,如:工作量大,一个学校一个学期的机房上机信息数据是成千上万的,如果要审核需要花费大量的时间;耗费工作人员多,审核这么多数据不是单单一个人可以完成的,需要许多工作人员一起努力;效率低,顾名思义想要在短时间内完成上机信息的审核并批准上机是不可能的;机房排课系统具有检索迅速、查找方便、可靠性高、存储量大、成本低等优点。
本系统分为教师和管理员两个登陆权限,教师登陆后完成的是对应自己课程或班级的课表查询及调课申请的部分;管理员登陆分为信息管理和排课两个模块,信息管理模块实现的是对教师信息、班级信息、机房信息、课程信息、管理员信息的基本信息的管理,排课模块实现自动排课和手动排课两大功能。
2.1.2系统方案设计思想 系统设计中,坚持了以下原则:
(1) 技术起点高、见效快:应充分利用同类系统开发经验,优化系统结构,缩短开发周期,确保系统在规定时间内正常投入运行。
(2) 先进性: 系统采用PHP 、MySQL 等先进的技术手段,融合现代计算机信息系统设计理念,符合当今计算机科学的发展趋势,搭建高效、实用、安全可靠的网络、硬件、系统软件平台,可以保证该管理系统可以不断的更新并可顺利升级,从而确保系统不仅满足当前业务处理的基本需要,而且能在相当长的时间内适应未来业务拓展的需求和保持相当的先进性。
(3) 实用性:充分利用成熟的先进技术,采用性能/价格比较高的产品,不盲目追求最新技术,同时能满足业务处理能力需求,力求该管理系统开发以后能尽可能满足管理员及拥护的各种需求。
(4) 高可靠性:系统建设采用主流产品,以保证系统的高质量和稳定性,系统最大限度采用稳定且优秀的技术及组件,对硬件、操作系统、数据库系统设计完备的故障处理方案。
(5) 实时性:实现机房上机安排信息数据集中管理。
(6) 可操作性:应用系统提供良好的操作界面,系统数据维护方便,备份及数据恢复快速简单,系统软件配置体现自动化,提供良好的管理工具,方便操作者操作。
(1)技术可行性
从硬件、软件的性能要求考虑,在需求分析中提到的关于硬件、软件设备的要求,通过实际考察,现有设备能顺利运行系统。从技术能力上,本人对PHP 、MySQL 等技术具有一定的专业知识,能顺利完成系统开发与设计。
(2)经济可行性
系统投入运行后可以提供许多以前无法及时提供的信息,例如:上机时间安排、带课老师、机房配置等。在用户查询和使用信息上,不仅大大提高了使用的方便性,也提高了查询的速度,可以帮助管理人员系统地管理上机安排信息。从时间和效率上讲,系统的投入运行,可以为学校上机安排信息管理节省大量的财力、物力,具有较大的经济效益。
(3)运行可行性
系统运行后,提高了管理员的工作能力和效率,也方便了用户对信息的了解和查询。同时系统界面简单,操作方便,不会为管理员和用户在操作上造成困难。
3 概要设计
概要设计的任务是根据需求分析得到的物理模型确定一个合理的软件系统的体系结构,作为系统的详细设计的基础和准备。具体内容见以下几方面:
3.1系统运行总体流程
图1 机房排课系统设计与实现运行总体流程图
系统运行流程图描绘了物理系统的总体运行情况。浏览此图可对整个机房排课系统设计与实现的功能有一个快速、清晰的认识。上图为机房排课系统设计与实现的总体流程图。
3.2系统体系结构设计
3.2.1机房排课系统设计与实现软件结构设计
图2 机房排课系统设计与实现功能结构图
软件结构图是整个系统的关键所在,是排课系统的核心部分,信息管理包括了各项基本信息的增、删、改、查功能,排课包括了自动排课和手动排课两大功能,自动排课是根据约束条件查找出符合条件的机房以供选择,手动排课是对自动排课后课程的手动调整或未进行自动排课情况下手动进行排课。
3.2.2登陆权限模块结构设计
登陆权限模块图描绘出了登陆系统的两个角色,即教师和管理员。权限的判断:通过教师或管理员两个单选按钮决定从哪个数据库表中判断登陆人员的姓名和密码是否正确,正确输入的情况下才能进入相应的权限登陆页。
3.2.3信息管理模块结构设计
信息管理模块包括课程管理信息、教师信息管理、班级信息管理、机房信息管理、管理员信息管理,分别实现的是对各项信息的增、删、改、查操作。
3.4 系统E-R 图
在排课系统中,主要有四个实体,分别为课程信息、班级信息、教师信息和 教室信息,它们之间互相都有联系。
课程E-R 图如图3所示。
图3 课程信息E-R 图
教师E-R 图如图4所示。
图4 教师信息表
课程表E-R 图如图5所示。
图5 课程表E-R 图
教室E-R 图如图6所示。
图6 教室信息E-R 图
班级E-R 图如图7所示。
图7 班级信息E-R 图
该模块总体E-R 图如图8所示。
图8 总体E-R 图
3.4数据库设计 3.4.1数据库逻辑设计
(1) 管理员信息表:管理员编号、管理员姓名、密码;主键是管理员编号。 (2) 教师信息表:教师编号、姓名、密码、备注;主键是教师编号。 (3) 课程信息表:课程编号、班级编号、教师编号、课程名称、使用环境、开始周、结束周;主键是课程代号。
(4) 机房信息表:机房编号、机房名称、机位数;主键是机房编号。 (5) 班级信息表:班级编号、班级名称、人数,主键是班级编号。 (6) 软件信息表:软件编号、机房编号、软件名称,主键是软件编号。 (7) 机房排课表:排课编号,教学周,星期,节次,机房编号,班级编号,课程编号,教师编号;主键为排课编号。
(8) 教师任课表:任课表编号、教师编号、课程编号、班级编号;主键为任课表编号。
(9) 班级课表:班级课表编号、班级编号、教学周、星期、节次;主键是班级课表编号。
(10)教师课表:教师课表编号、教师编号、教学周、星期、节次;主键是教师课表编号。
3.4.2数据库详细结构
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。
机房排课系统的数据库中各个表的设计结果如表所示,每个表格对应数据库中的一张表。
表1为管理员信息表,存储系统中的管理员信息。 表1 管理员信息表(users )
表2为教师信息表,存储系统中的教师信息。
表2 教师信息表(teachers )
表3为课程信息表,存储系统中的各门课程信息。 表3 课程信息表(courses )
表4为机房信息表,存储系统中的各个机房的信息。
表4 机房信息表(computers )
表5为班级信息表,存储系统中的各个班级的信息。 表5 班级信息表(classes )
表6为软件信息表,存储机房中安装的环境。
表6 软件信息表(softs )
表7为机房课表,存储系统中的各机房课表信息。 表7 机房课表(kclass )
表8为教师任课表,存储系统中的每位教师的任课信息。 表8 教师任课表(tcourses )
表9为班级表,存储系统中的各班的课表信息。 表9 班级课表(classc )
表10为教师课表,存储系统中各教师的课表信息。 表10 教师课表(teacherc )
表11为机房排课结果表,是排课的中途介质。 表11 机房排课结果表(middle )
4详细设计
4.1登陆窗口设计 4.1.1登录窗口功能描述
登陆窗口,首先是身份的选择,分别是教师,管理员。对未在系统注册的使用人员进行限制,非法输入用户名及密码无法登录系统。对已在系统注册的人员,在正确输入用户名和密码后,便进入系统主窗口。如果正确,会进入相应的页面,进行管理或查询。
4.2教师查课页面设计 4.2.1教师窗口功能描述
教师登陆页面有两项功能:课表查询和调停课申请。
其中课表查询有两种方式,一种是按教师所授的某一门课程查询,别一种是按教授的某一个班级进行查询;教师调课申请是将登陆教师调课或停课的申请以文字的方式提交到库中,等待管理员查收并处理。
4.3管理员管理页面设计 4.3.1管理员页面功能描述
管理员登陆页面功能有:信息管理和排课两大模块。
其中信息管理模块包括教师信息管理、课程管理信息、班级信息管理、机房信息管理、管理员信息管理,分别可以对各项信息进行增、删、改、查的操作;排课模块包括自动排课和手动排课,实现了对课程的自动和手动编排的功能。
4.3.2管理员页面窗口设计 (1)管理员页面窗口
教师信息管理界面与课程、班级、机房、管理员信息管理界面相类似,都具有对数据库的写入,信息的增、删、改、查功能。
自动排课是根据约束条件查找出符合条件的机房,让用户进行选择,使得课程的编
排更加人性化。
手动排课,即根据需要,对课程手动进行调整,情况分为两种:第一种,在自动排课之前,班级课表显示的可编辑区为所有未安排课程的时间,管理员可手动进行自定义安排;在自动排课后,班级课表显示的可编辑区为所有未安排及已经上机的时间,管理员可手动进行调整、安排。 5 系统测试
测试是系统开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程, 所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是" 探测" ,在" 探测" 中发现软件的毛病。
5.1概述
5.1.1概念和意义
测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为:
目的:发现程序的错误;
任务:通过在计算机上执行程序,暴露程序中潜在的错误。
另一个预测是相关的术语叫纠错(Debugging)。它的目的与任务可以规定为: 目的:定位和纠正错误;
任务:消除软件故障,保证程序的可靠运行。测试与纠错的关系,可以用图6-1的数据流图来说明。图中表明,每一次测试都要准备好若干必要的测试数据,与被测试程序一道送入计算机执行。通常把一次程序执行需要的测试数据,称为一个“测试用例(Test Case) 。每一个测试用例产生一个相应的“测试结果”。如果它与“期望结果”不想符合,便说明程序中存在错误,需要用纠错来改正。
5.1.2 特性 (1)挑剔性
测试是为了证明程序有错,而不是证明程序无错。因此,对于被测程序就是要“纯毛求疵”,就是要“鸡蛋里挑骨头”。
(2)复杂性
测试仪程序则比较容易,这其实是一个误区。设计测试用力是一项需要细致和高度
技巧的高能工作,稍有不慎就会顾此失彼,发生不应用得数楼。
(3)不彻底性
实际测试都是不彻底的,当然不能够保证测试后的程序不存在遗漏的错误。 (4)经济性
通场这种测试称为“选择测试(Selective Testing)”。为了降低测试成本,选择测试用力是应注意遵守“经济性”的原则。
5.1.3 重要性
软件测试在软件生命周期中占据重要的地位,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
5.2 本系统测试描述
为了使本软件运行更加稳定,我对它进行了全面的测试,测试分为二部分来进行,一是:界面测试;二是功能测试。
首先是界面测试,为了使软件在不同的的操作系统平台上运行界面能保持原来的风格。我把完整程序拷贝到Windows XP Pro 环境下,程序运行界面正常,界面上的字体等设置都保持得相当好。没有出现类似字体变形的情况!
二是进行功能的测试。就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
本系统测试采用了单元测试, 集成测试, 完善性测试等多种方式进行测试。 经过测试,所有功能都能得以实现,没有任何变形。至此,在功能的测试上也已经比较圆满的完成了。 结论
通过这次设计对本系统的开发,使我对PHP+MySQL的开发有所了更深的了解,增加了许多的数据库知识及一些调试程序的技巧,弥补以往学习中的不足并为今后的学习打下了良好的基础。这里面每一个控件的绘制,每一段文本的输入,每一行语句的调试之中都凝结着我辛勤的汗水。将近三个月的设计时间虽然短暂,我却从中学到了很多的东西。同时,也使我认识到自己所学的知识还很肤浅,需要更加努力证明自己。
在设计期间,我通过对系统的分析按设计要求,查阅了大量资料,了解了人事信息管理系统的基本流程,并进行了系统分析、设计、编程、调试运行等。此次设计使我对数据库开发技术有了更深的理解,同时培养了自己独立分析问题、解决问题和实际操作的能力。同时我也了解到一个数据库系统的开发,即前台和后台的开发,他们的功能尤为重要相互辅助。
本次设计使我再度意识到开发一套机房排课系统,对于一个学校的发展占据了极为重要的地位。它合理方便的给学校提供了最大的方便。通过对系统的分析设计,使我把在书本上学到的理论与实践相结合,大大提高巩固了之前所学习的内容。但系统在设计过程中不可避免地遇到了各种各样的问题,因为本人水平有限,并没有完全地理解PHP 的强大功能,因此系统还存在着许多不足之处。受开发条件和开发时间的限制,由于精力有限,所以此程序只做出了程序的最基本功能,如果应用到实际生活中,要根据具体的学校情况,还要添加不同的模块。 致谢
在本文即将完成之际,无论我的设计是否能够真的投入使用,这里面每一个控件的绘制,每一段文本的输入,每一行语句的调试之中都凝结着我辛勤的汗水。我却从中学到了很多的东西。
特别感谢此次指导我设计的老师,他在我的设计过程中给予了我许多理论和实践上的指导。他对工作认真负责、治学严谨,尤其是当我遇到不懂的问题或调试不出程序时,他总能第一时间给予我帮助。他对我的悉心指导以及孜孜不倦、严谨细致的态度令我受益匪浅。
机房排课系统设计
目 录
1 绪论. 1
1.1 论文研究背景与意义... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 1 1.2 系统开发方法及目标. .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...1
2 系统分析. 1
2.1 技术分析... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 1 2.2需求分析. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...1
2.2.1 系统功能需求分析... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...1 2.2.2 系统方案设计思想... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4 2.3可行性分析. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 6
3 概要设计. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...6
3.1系统运行总体流程. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7 3.2系统体系结构设计. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...7
3.2.1 机房排课系统设计与实现软件结构设计... ... ... ... ... ... ... ... ... ... ... ... ...7 3.2.2 登陆权限模块设计... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8 3.2.3 信息管理模块设计... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8 3.3 系统E -R图 ................................................................................................. 6 3.4数据库设计. 9
3.4.1 数据库逻辑设计... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9 3.4.2 数据库详细结构... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...9
4 详细设计.. 12
4.1登录窗口设计. 12
4.1.1 登陆窗口功能描述4.2教师查课页面设计. 14
4.2.1 教师窗口功能描述4.3管理员管理页面设计. 17
4.3.1 管理员页面功能描述.. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 17
5 系统测试. 21
5.1概述. 21
5.1.1 概念和意义... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 21 5.1.2 特性... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 22 5.1.3 重要性... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 22 5.2本系统测试描述. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... 22
致谢. . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ....23
1 绪论
1.1 论文研究背景与意义
高校机房排课是高校实验教学运行管理中非常重要的环节,它涉及面广、限制条件多。科学合理地编排课程表,对保持稳定的实验教学秩序、确保实验教学任务的完成以及提高实验教学质量具有重要作用。
在每学期中,各科教师在拿到教务部门下发的实验任务后,就必须到实验中心进行排课登记,排课人员要考虑各实验课程对机房条件的要求,各机房计算机的配置,学生人数,课程是否冲突等因素,一直以来排课人员都是使用一张手工排课表,查找到空余机房后再将该课程的排课信息填入其中,最后录入电脑进行打印后以供查询,这样不便于课程和机房的查询以及信息的分类汇总与统计、如何高效而迅速地安排机房成了最大的难题,为解决这一系列的问题,设计了机房排课系统。
1.2 系统开发方法及目标
以各高校的机房排课需求为应用背景,开发一个典型的机房排课系统。考虑实际情况,本系统将采用结构化生命周期法进行系统分析和设计,并采用原型法进行系统实施。这样能有效避免盲目开发问题,同时能充分的发挥原型法的优势,能顺利实现系统的实施。
排课系统的主要研究内容有:根据教学计划、各专业各年级学生人数、课程性质及课程对各种资源的需求信息安排实验班班数及相应机房;每门课的各实验班时间安排应该合适,要有利于提高学生的学习效率;能够合理利用教师资源,合理安排每一位任课教师的辅导实验时间;充分、合理地利用机房资源,按学生上机人数和课程性质选用机房;对各类实验资源和基础资料的查询;系统维护与管理功能。
排课系统各模块需完成的功能:(1)管理员登陆:教师信息、班级信息、机房信息、课程信息、管理员信息模块,实现对系统基本信息的设置(增、删、改、查);自动排课实现的是在约束条件下对上机地点的合理安排;手动排课实现对上机课程的手动编排或自动排课后的手动调整。(2)教师登陆:教授课程实现的是当前教师根据自己所授课程对课表的查询;教授班级实现的是当前教师根据自己所教班级对课表的查询;申请原因是对停课或调课的原因说明,管理员登陆后会根据查询到的信息,对该教师的课程表进行调整安排。 2 系统分析
2.1.1系统功能需求分析
由于各个高校的机房上机安排信息使用传统的人工方式,管理着机房上机安排的所有信息,使用这种管理方式存在着许多不尽人意缺点,如:工作量大,一个学校一个学期的机房上机信息数据是成千上万的,如果要审核需要花费大量的时间;耗费工作人员多,审核这么多数据不是单单一个人可以完成的,需要许多工作人员一起努力;效率低,顾名思义想要在短时间内完成上机信息的审核并批准上机是不可能的;机房排课系统具有检索迅速、查找方便、可靠性高、存储量大、成本低等优点。
本系统分为教师和管理员两个登陆权限,教师登陆后完成的是对应自己课程或班级的课表查询及调课申请的部分;管理员登陆分为信息管理和排课两个模块,信息管理模块实现的是对教师信息、班级信息、机房信息、课程信息、管理员信息的基本信息的管理,排课模块实现自动排课和手动排课两大功能。
2.1.2系统方案设计思想 系统设计中,坚持了以下原则:
(1) 技术起点高、见效快:应充分利用同类系统开发经验,优化系统结构,缩短开发周期,确保系统在规定时间内正常投入运行。
(2) 先进性: 系统采用PHP 、MySQL 等先进的技术手段,融合现代计算机信息系统设计理念,符合当今计算机科学的发展趋势,搭建高效、实用、安全可靠的网络、硬件、系统软件平台,可以保证该管理系统可以不断的更新并可顺利升级,从而确保系统不仅满足当前业务处理的基本需要,而且能在相当长的时间内适应未来业务拓展的需求和保持相当的先进性。
(3) 实用性:充分利用成熟的先进技术,采用性能/价格比较高的产品,不盲目追求最新技术,同时能满足业务处理能力需求,力求该管理系统开发以后能尽可能满足管理员及拥护的各种需求。
(4) 高可靠性:系统建设采用主流产品,以保证系统的高质量和稳定性,系统最大限度采用稳定且优秀的技术及组件,对硬件、操作系统、数据库系统设计完备的故障处理方案。
(5) 实时性:实现机房上机安排信息数据集中管理。
(6) 可操作性:应用系统提供良好的操作界面,系统数据维护方便,备份及数据恢复快速简单,系统软件配置体现自动化,提供良好的管理工具,方便操作者操作。
(1)技术可行性
从硬件、软件的性能要求考虑,在需求分析中提到的关于硬件、软件设备的要求,通过实际考察,现有设备能顺利运行系统。从技术能力上,本人对PHP 、MySQL 等技术具有一定的专业知识,能顺利完成系统开发与设计。
(2)经济可行性
系统投入运行后可以提供许多以前无法及时提供的信息,例如:上机时间安排、带课老师、机房配置等。在用户查询和使用信息上,不仅大大提高了使用的方便性,也提高了查询的速度,可以帮助管理人员系统地管理上机安排信息。从时间和效率上讲,系统的投入运行,可以为学校上机安排信息管理节省大量的财力、物力,具有较大的经济效益。
(3)运行可行性
系统运行后,提高了管理员的工作能力和效率,也方便了用户对信息的了解和查询。同时系统界面简单,操作方便,不会为管理员和用户在操作上造成困难。
3 概要设计
概要设计的任务是根据需求分析得到的物理模型确定一个合理的软件系统的体系结构,作为系统的详细设计的基础和准备。具体内容见以下几方面:
3.1系统运行总体流程
图1 机房排课系统设计与实现运行总体流程图
系统运行流程图描绘了物理系统的总体运行情况。浏览此图可对整个机房排课系统设计与实现的功能有一个快速、清晰的认识。上图为机房排课系统设计与实现的总体流程图。
3.2系统体系结构设计
3.2.1机房排课系统设计与实现软件结构设计
图2 机房排课系统设计与实现功能结构图
软件结构图是整个系统的关键所在,是排课系统的核心部分,信息管理包括了各项基本信息的增、删、改、查功能,排课包括了自动排课和手动排课两大功能,自动排课是根据约束条件查找出符合条件的机房以供选择,手动排课是对自动排课后课程的手动调整或未进行自动排课情况下手动进行排课。
3.2.2登陆权限模块结构设计
登陆权限模块图描绘出了登陆系统的两个角色,即教师和管理员。权限的判断:通过教师或管理员两个单选按钮决定从哪个数据库表中判断登陆人员的姓名和密码是否正确,正确输入的情况下才能进入相应的权限登陆页。
3.2.3信息管理模块结构设计
信息管理模块包括课程管理信息、教师信息管理、班级信息管理、机房信息管理、管理员信息管理,分别实现的是对各项信息的增、删、改、查操作。
3.4 系统E-R 图
在排课系统中,主要有四个实体,分别为课程信息、班级信息、教师信息和 教室信息,它们之间互相都有联系。
课程E-R 图如图3所示。
图3 课程信息E-R 图
教师E-R 图如图4所示。
图4 教师信息表
课程表E-R 图如图5所示。
图5 课程表E-R 图
教室E-R 图如图6所示。
图6 教室信息E-R 图
班级E-R 图如图7所示。
图7 班级信息E-R 图
该模块总体E-R 图如图8所示。
图8 总体E-R 图
3.4数据库设计 3.4.1数据库逻辑设计
(1) 管理员信息表:管理员编号、管理员姓名、密码;主键是管理员编号。 (2) 教师信息表:教师编号、姓名、密码、备注;主键是教师编号。 (3) 课程信息表:课程编号、班级编号、教师编号、课程名称、使用环境、开始周、结束周;主键是课程代号。
(4) 机房信息表:机房编号、机房名称、机位数;主键是机房编号。 (5) 班级信息表:班级编号、班级名称、人数,主键是班级编号。 (6) 软件信息表:软件编号、机房编号、软件名称,主键是软件编号。 (7) 机房排课表:排课编号,教学周,星期,节次,机房编号,班级编号,课程编号,教师编号;主键为排课编号。
(8) 教师任课表:任课表编号、教师编号、课程编号、班级编号;主键为任课表编号。
(9) 班级课表:班级课表编号、班级编号、教学周、星期、节次;主键是班级课表编号。
(10)教师课表:教师课表编号、教师编号、教学周、星期、节次;主键是教师课表编号。
3.4.2数据库详细结构
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。
机房排课系统的数据库中各个表的设计结果如表所示,每个表格对应数据库中的一张表。
表1为管理员信息表,存储系统中的管理员信息。 表1 管理员信息表(users )
表2为教师信息表,存储系统中的教师信息。
表2 教师信息表(teachers )
表3为课程信息表,存储系统中的各门课程信息。 表3 课程信息表(courses )
表4为机房信息表,存储系统中的各个机房的信息。
表4 机房信息表(computers )
表5为班级信息表,存储系统中的各个班级的信息。 表5 班级信息表(classes )
表6为软件信息表,存储机房中安装的环境。
表6 软件信息表(softs )
表7为机房课表,存储系统中的各机房课表信息。 表7 机房课表(kclass )
表8为教师任课表,存储系统中的每位教师的任课信息。 表8 教师任课表(tcourses )
表9为班级表,存储系统中的各班的课表信息。 表9 班级课表(classc )
表10为教师课表,存储系统中各教师的课表信息。 表10 教师课表(teacherc )
表11为机房排课结果表,是排课的中途介质。 表11 机房排课结果表(middle )
4详细设计
4.1登陆窗口设计 4.1.1登录窗口功能描述
登陆窗口,首先是身份的选择,分别是教师,管理员。对未在系统注册的使用人员进行限制,非法输入用户名及密码无法登录系统。对已在系统注册的人员,在正确输入用户名和密码后,便进入系统主窗口。如果正确,会进入相应的页面,进行管理或查询。
4.2教师查课页面设计 4.2.1教师窗口功能描述
教师登陆页面有两项功能:课表查询和调停课申请。
其中课表查询有两种方式,一种是按教师所授的某一门课程查询,别一种是按教授的某一个班级进行查询;教师调课申请是将登陆教师调课或停课的申请以文字的方式提交到库中,等待管理员查收并处理。
4.3管理员管理页面设计 4.3.1管理员页面功能描述
管理员登陆页面功能有:信息管理和排课两大模块。
其中信息管理模块包括教师信息管理、课程管理信息、班级信息管理、机房信息管理、管理员信息管理,分别可以对各项信息进行增、删、改、查的操作;排课模块包括自动排课和手动排课,实现了对课程的自动和手动编排的功能。
4.3.2管理员页面窗口设计 (1)管理员页面窗口
教师信息管理界面与课程、班级、机房、管理员信息管理界面相类似,都具有对数据库的写入,信息的增、删、改、查功能。
自动排课是根据约束条件查找出符合条件的机房,让用户进行选择,使得课程的编
排更加人性化。
手动排课,即根据需要,对课程手动进行调整,情况分为两种:第一种,在自动排课之前,班级课表显示的可编辑区为所有未安排课程的时间,管理员可手动进行自定义安排;在自动排课后,班级课表显示的可编辑区为所有未安排及已经上机的时间,管理员可手动进行调整、安排。 5 系统测试
测试是系统开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程, 所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是" 探测" ,在" 探测" 中发现软件的毛病。
5.1概述
5.1.1概念和意义
测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为:
目的:发现程序的错误;
任务:通过在计算机上执行程序,暴露程序中潜在的错误。
另一个预测是相关的术语叫纠错(Debugging)。它的目的与任务可以规定为: 目的:定位和纠正错误;
任务:消除软件故障,保证程序的可靠运行。测试与纠错的关系,可以用图6-1的数据流图来说明。图中表明,每一次测试都要准备好若干必要的测试数据,与被测试程序一道送入计算机执行。通常把一次程序执行需要的测试数据,称为一个“测试用例(Test Case) 。每一个测试用例产生一个相应的“测试结果”。如果它与“期望结果”不想符合,便说明程序中存在错误,需要用纠错来改正。
5.1.2 特性 (1)挑剔性
测试是为了证明程序有错,而不是证明程序无错。因此,对于被测程序就是要“纯毛求疵”,就是要“鸡蛋里挑骨头”。
(2)复杂性
测试仪程序则比较容易,这其实是一个误区。设计测试用力是一项需要细致和高度
技巧的高能工作,稍有不慎就会顾此失彼,发生不应用得数楼。
(3)不彻底性
实际测试都是不彻底的,当然不能够保证测试后的程序不存在遗漏的错误。 (4)经济性
通场这种测试称为“选择测试(Selective Testing)”。为了降低测试成本,选择测试用力是应注意遵守“经济性”的原则。
5.1.3 重要性
软件测试在软件生命周期中占据重要的地位,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
5.2 本系统测试描述
为了使本软件运行更加稳定,我对它进行了全面的测试,测试分为二部分来进行,一是:界面测试;二是功能测试。
首先是界面测试,为了使软件在不同的的操作系统平台上运行界面能保持原来的风格。我把完整程序拷贝到Windows XP Pro 环境下,程序运行界面正常,界面上的字体等设置都保持得相当好。没有出现类似字体变形的情况!
二是进行功能的测试。就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
本系统测试采用了单元测试, 集成测试, 完善性测试等多种方式进行测试。 经过测试,所有功能都能得以实现,没有任何变形。至此,在功能的测试上也已经比较圆满的完成了。 结论
通过这次设计对本系统的开发,使我对PHP+MySQL的开发有所了更深的了解,增加了许多的数据库知识及一些调试程序的技巧,弥补以往学习中的不足并为今后的学习打下了良好的基础。这里面每一个控件的绘制,每一段文本的输入,每一行语句的调试之中都凝结着我辛勤的汗水。将近三个月的设计时间虽然短暂,我却从中学到了很多的东西。同时,也使我认识到自己所学的知识还很肤浅,需要更加努力证明自己。
在设计期间,我通过对系统的分析按设计要求,查阅了大量资料,了解了人事信息管理系统的基本流程,并进行了系统分析、设计、编程、调试运行等。此次设计使我对数据库开发技术有了更深的理解,同时培养了自己独立分析问题、解决问题和实际操作的能力。同时我也了解到一个数据库系统的开发,即前台和后台的开发,他们的功能尤为重要相互辅助。
本次设计使我再度意识到开发一套机房排课系统,对于一个学校的发展占据了极为重要的地位。它合理方便的给学校提供了最大的方便。通过对系统的分析设计,使我把在书本上学到的理论与实践相结合,大大提高巩固了之前所学习的内容。但系统在设计过程中不可避免地遇到了各种各样的问题,因为本人水平有限,并没有完全地理解PHP 的强大功能,因此系统还存在着许多不足之处。受开发条件和开发时间的限制,由于精力有限,所以此程序只做出了程序的最基本功能,如果应用到实际生活中,要根据具体的学校情况,还要添加不同的模块。 致谢
在本文即将完成之际,无论我的设计是否能够真的投入使用,这里面每一个控件的绘制,每一段文本的输入,每一行语句的调试之中都凝结着我辛勤的汗水。我却从中学到了很多的东西。
特别感谢此次指导我设计的老师,他在我的设计过程中给予了我许多理论和实践上的指导。他对工作认真负责、治学严谨,尤其是当我遇到不懂的问题或调试不出程序时,他总能第一时间给予我帮助。他对我的悉心指导以及孜孜不倦、严谨细致的态度令我受益匪浅。