《智能排课系统2.docx》由会员分享,可在线阅读,更多相关《智能排课系统2.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、综合实验报告题 目: 智能排课系统 学生姓名: 专 业: 信息管理与信息系统 班 级: 信管1002 学 号: 1002100230 一、概 述(一) 开发背景随着信息技术的飞速发展,各个行业的信息化势在必行。正所谓“科学技术是第一生产力”,科技的进步大大地提高了生产率。然而,在高校这个知识密集的地方,如何才能提高办学效率,更好地完成教学任务,跟上社会发展步伐,这是一个摆在教学工作者面前的一个迫切的问题。应用信息化来改造传统的教学管理模式是一个重要途径。近几年来,随着各高校办公自动化工作的推进,教务管理自动化也被摆上了日程。在教务工作中占有很大比重的一项就是每学期的课程排定工作。由于教工、教室
2、和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得不面对的问题。而人工进行排课不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的课表非常困难。并且随着高校规模的扩大手工排课的难度和工作量呈几何级数增长。排课系统正是为了减轻教务人员的工作量,实现教务工作自动化,解决排课这一老大难问题的教务办公软件。尤其针对高校的排课一直都没有很好的解决方法,但是此问题又是每个学校在每个学期都会碰到的必要行政作业。本文在相关理论的指导下,在分析以往一些排课软件的基础上,提出一个高校通用排课系统的设计方法,并对一些具体的问题给出相应解决方案。但是,由于技术、经验的有限和数据
3、量过大,目前我们很难做出一个满足所有需要的排课系统。因为它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题;另外由于高校的教学特点,还要处理合班课、分班课、体育课与选修课等特殊课程。针对这些问题,在此专门对数据库设计作了一些探索,并于架构的选择和模块的划分上经过精心调整,在菜单的设计上也体现了人性化的操作。该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。(二)项目的任务及意义当今学校内部没有完善的高校排课系统,管理水平差,学校课程不能得到合理分配。迫切需要提高现代化管理水平、管理质量和管理高校课程。高校排课系统的初步现代化的开发和使
4、用,能够大大提高学校管理者的工作效率,节省成本提高经济效益。它把从事教务管理的人员从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它重要的活动中去,从而达到节省人力、物力,财力的目标;它能使决策、计划和其它管理活动更加科学、精确、灵活。本软件主要是适用于高等学校教务部门的办公软件,运用此软件,可以免去工作人员繁忙而枯燥的手工排课过程,直接通过计算机进行排课。业务范围涉及到课程、上课班级/实验班级/上机班级、任课指导老师/周次/节次、教学场地(教室,实验室,机房等)等相关因素。二、 系统规划(一)需求分析 智能排课排系统需要满足来自三方面的需求,这三个方面分别是学生、教师和管理员。
5、学生的需求是查询院系的课程情况及学生信息的修改;教师对选课系统自动排课情况进行操作,同时形成自动排课查看确认;选课管理员的功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护并生成选课报表。学生可以直接查看选课情况,学生可以根据本人学号和密码登录系统,还可以进行本人信息的查询和维护部分。一般情况下,学生只应该查询和维护本人的个人信息,若查询和维护其他学生的选课信息,就要知道其他学生的学号和密码。这些是很难得到的,特别是密码,所以不但满足了学生的要求,还保护了学生的个人隐私。学校管理人员有修改自动课程编排系统的权限,所以需对管理人员登陆本模块进行更多的考虑。在此系统中,学校
6、管理人员可以记录学生登陆日志,并打印生成相应的报表给用户查看和确认院系管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对排课信息、教师信息、总体情况信息的查询和统计、管理人员信息查看及维护。设计不同用户的操作权限和登陆方法,对所有用户开放的课程查询和个人部分信息维护,查看个人情况信息,维护个人密码。根据排课情况对数据库进行操作,并生成报表根据选课情况,维护管理员信息,维护教师信息,维护学生信息处理信息的完整性。本系统主要实现教师信息管理、学生信息管理、课程信息管理和系信息管理,其中教师信息管理有教师姓名、教师工号、教师职称、教师所属系;学生信息管理有学生姓名、学生学号和学生所在系
7、;课程信息管理有课程名称、学分、上课地点、已选人数、课程性质、开课系、课程人数;系信息管理有ID和Password。(1)学生信息模块完成学生的登陆,然后根据各位同学所在的系不同,调出相应的课程模块。其中学生登录模块的功能是验证登录人员确实是本院的学生,学生启动本系统后,系统提示输入学生学号码和密码,验证后进入主控操作界面。(2)教师信息模块完成教师的登陆,然后根据各位教师所在的系不同,教师所教的课程不同,调出要排课的课程。其中教师登陆模块的功能是验证登录人员确实是本院的教师,教师启动本系统后,系统提示输入教师工号和密码,验证后进入主控操作界面。(3)课程信息管理包括必修课程和选修课程,学生必
8、需先登陆才能进行对课程查询。(二)可行性分析1 技术可行性该系统对软、硬件系统要求较低,所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备。软件上,操作系统采用Windows系列操作系统、Microsoft Visual Studio 2005作为前台开发工具,它具有的“编辑后继续运行(edit and continue)”的特性,超越了旧的编辑编译测试模式。它还引入了面向对象的程序设计思想和“控件”概念,使得大量已经编好的Visual Basic程序可以直接拿来使用。同时,Visual Basic又是最容易学习与应用的程序语言之一。它的功能非常强大,已成为一种专业化的开发语言和环境。
9、采用SQL Server 2005作为后台数据库平台的管理系统,它在电子商务、数据仓库和数据库解决方案等应用中起着核心作用,可为企业的数据管理提供强大的支持,对数据库中的数据提供有效的管理,并采用有效的措施实现数据的完整性、数据的安全性以及数据的可靠易用性等等。这些软件在高校排课系统开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。2 经济可行性当今学校内部没有完善的高校排课系统,管理水平差,学校课程不能得到合理分配。迫切需要提高现代化管理水平、管理质量和管理高校课程。高校排课系统的初步现代化的开发和使用,能够大大提高学校管理者的工作效率,节省成本提高经济效益。它把从事教务管理的人员
10、从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它重要的活动中去,从而达到节省人力、物力,财力的目标;它能使决策、计划和其它管理活动更加科 学、精确、灵活。因此,开发一个专门针对高校排课系统,在经济上也是可行的。3社会可行性 当今高校课程较多,管理较难,进行手动调课比较费时费力,高校需要一个系统来代替人工,在领导方面也十分重视。因此,在客观上是可以实现的。3 操作可行性本系统灵活方便,快捷迅速,适应处理多项数据。采用友好、直观的视窗界面,鼠标、键盘两种操作方式任意选择,方便快捷。界面统一规范,提示信息功能完整,稍一接触就可以上手进行所有操作。三、系统分析 (一)业务流程分析及业务
11、流程图图例说明: 表示外部实体 表示处理过程的说明 表示生成文档 表示库 表示信息的传输过程,线段上的文字是对传递信息的说明根据需求分析,我们分析出智能排课系统的业务流程图如下:图3-1总系统业务流程图图3-2排课管理子系统业务流程图(二)数据流程图图例说明: 表示外部实体 表示处理过程 表示存储信息或文件 带有名称的有向线段表示数据流 图3-3总系统数据流程图 图3-4排课管理子系统数据流程图(三)数据字典1数据项定义 表 3-1 表3-2数据项名称:管理员别名: UserName 长度: 16描述:管理员登陆的用户名数据项名称:密码别名:password长度:10描述: 所有用户的密码 表
12、 3-3 表3-4数据项名称:用户别名:UserName 长度:16描述:一般用户登陆的用户名数据项名称:用户权限别名:Purview 长度:10描述: 用户的使用权限2.数据流定义表3-5 表3-6数据流名称:班级信息表 简述:每个班的班级信息数据来源:班级信息表数据流向:数据库内存储的班级信息表(即基本信息表)数据流名称:课程信息表简述:每个班的所安排的课程信息数据来源:班级信息表数据流向:数据库内存储的课程信息表(即基本信息表) 表3-7 表3-8数据流名称:教师信息表简述:每个教师的个人信息数据来源:教师信息表数据流向:数据库内存储的教师信息表(即基本信息表)数据流名称:教室信息表简述
13、:每个教室的信息数据来源:教室信息表数据流向:数据库内存储的教室信息表 (基本信息表)数据流名称:任课表简述:每个教师所带班级以及所带课程的信息数据来源:任课表数据流向:数据库内存储的任课信息表(即教师计划表) 表3-93.处理过程描述表3-10处理名称:基本信息管理输入数据:班级信息,教师信息,教室信息,课程信息,时间信息,任课信息输出数据:是否入库成功处理逻辑:1.各类基本信息是否包含非法字符。 2.各类基本信息是否重复冗余。表3-11处理名称:数据管理输入数据:教师计划信息,班级计划信息,课程计划信息输出数据:是否入库成功处理逻辑:1.各类计划信息是否包含非法字符。2.各类计划信息是否重
14、复冗余。表3-12处理名称:排课管理输入数据:班级信息,教师信息,教室信息,课程信息,时间信息,任课信息, 教师计划信息,班级计划信息,课程计划信息输出数据:是否排课成功处理逻辑:1. 各类信息是否包含非法字符。 2.各类信息是否能按算法依次排好课表。4.数据存储数据存储名称: 用户表描述:存储用户基本信息组成: 用户名+密码+用户权限相关处理:添加,删除,修改,查询 表3-13表3-14数据存储名称:班级信息表描述:存储班级基本信息组成:班级编号+班级名称+学生人数+所属系关键字:班级编号相关处理:查询,修改,添加,删除表3-15数据存储名称:教师信息表描述:存储教师基本信息 组成:教师编号
15、+教师姓名+所带课程关键字:教师编号相关处理:查询,修改,添加,删除表3-16数据存储名称:教室信息表描述:存储教室基本信息组成:教室编号+教室名称+教室容量关键字:教室编号相关处理:查询,修改,添加,删除表3-17数据存储名称:课程信息表描述:存储课程基本信息组成:课程名称+课程课时+任课教师相关处理:查询,修改,添加,删除表3-18数据存储名称:任课表描述:存储教师任课基本信息组成:课程名称+教师编号+教师姓名+班级编号+每周节数相关处理:查询,修改,添加,删除 四 、系统设计(一)系统总体设计1.系统总体规划1、用户管理子系统功能:用户密码的设置和修改,用户权限的设置,用户重新登陆; 2
16、、数据管理子系统功能:包括对教室、教师、班级、教学计划和课表数据的保存、查询、更新、删除; 3、教学计划管理子系统功能:某一确定的学期的教学工作计划,对于班级而言,每门课程的学时、开始周、结束周以及每门课程的任课教师,该子系统对教学计划进行管理和完善; 4、排课管理子系统功能:包括自动排课,手动排课两个部分; 5、课表查询子系统功能:对于具体的班级、教师、教室进行课表查询6、课表的生成与打印:在对各项数据进行处理后,生成课表,并打印出来(二)系统详细设计1代码设计代码是以适当的符号来表达客观实体的属性及特征。又标识、统计检索、对象描述的作用,一般根据唯一性原则、规范性原则、可扩充性原则和简明性
17、原则来进行设计。本系统中该系统采用层次代码设计方法。本系统中:1.班级编号,采用6位编码: 自由码 专业号 院号2.教师编号,采用8位编码: 自由码 专业号 院号3.教室编号,采用5位编码: 自由码 教室号2、E-R图 实体属性班级:班级号, 班级名, 专业编号 ,专业名称 ,学员编号,学院名称 老师:职工号,姓名,性别,所在学院编号,所授课程编号 课程:课程编号,课程名称,课程优先级 教室:教室编号,教室名称,容量,所在教学楼编号实体联系部分情况:1、一个班级可以是在一个学期内学习每M门课程,一门课程也可以同时在我们学校的N个班级内开课;2、一个老师可以叫M门课程的情况,同时一门课程有N个老
18、师在教授课程;3、一个班级有M个老师授课学习,一个老师也可能在N个班级中讲课;4、一个班上课只能在1个教室,同时一个教室在一时刻只能在同一个班上课(大课及公选课没有考虑进去);5、一个老师上课在1个教室,一个教室只能1个老师在上课;6、一个时间点有M个班级在上课,一个班级只能在1个时间点上课。3数据库设计以下是要创建的表表1 用户表中文含义字段名称数据类型长度是否为空备注用户名UserNamevarchar16Not Null密码PassWord varchar10Not Null用户权限Purview varchar10Not Null表2 学院信息表中文含义字段名称数据类型长度是否为空备注
19、学院编号CollegeIDchar2Not Null学院名称CollegeNamevarchar16Not Null表3 系信息表中文含义字段名称数据类型长度是否为空备注系编号SystemIDchar4Not Null主键系名称Systemnamevarchar16Not Null所属学院CollegeIDchar2Not Null外键表4 班级信息表中文含义字段名称数据类型长度是否为空备注班级编号ClassIDrchar6Not Null主键班级名称ClassNamevarchar 16Not Null学生人数StudentNumberInt4Not Null所属系SystemIDchar4
20、Not Null表5 教师信息表中文含义字段名称数据类型长度是否为空备注教师编号TeacherIDchar8Not Null主键教师姓名TeacherName varchar 16Not Null所带课程CourseName varchar 16Not Null外键表6 教室信息表中文含义字段名称数据类型长度是否为空备注教室编号ClassroomIDchar5Not Null主键教室姓名ClassroomNamevarchar 16Not Null教室容量TotalNumberInt4Not Null表7 时间表中文含义字段名称数据类型长度是否为空备注上课时间ClassTimevarchar3
21、0Not Null表8 课程信息表中文含义字段名称数据类型长度是否为空备注课程名称CourseName varchar 16Not Null主键课程课时CourseTime varchar2Not Null任课教师TeacherName varchar 16Not Null表9 任课表中文含义字段名称数据类型长度是否为空备注课程名称CourseName varchar 16Not Null教师编号TeacherIDchar8Not Null教师姓名TeacherName varchar 16Not Null班级编号ClassIDchar6Not Null每周节数WeekNumberInt4No
22、t Null表10 排课表中文含义字段名称数据类型长度是否为空备注课程名称CourseName varchar 16Not Null教师姓名TeacherName varchar 16Not Null上课教室ClassroomNamevarchar16Not Null班级编号ClassIDchar6Not Null上课时间ClassTimevarchar303输入输出设计 (1)输入设计输入设计的原则:最小量原则,输入量越小,出错机会越少,花费时间越少,数据一致行越好;简单性原则,输入的准备、输入过程应尽量容易以减少错误的发生。早检验原则,对输入数据的检验尽量接近原数据发生点,使错误能即使得到
23、改正。少转换原则,输入数据尽量用去处理所需形式记录,以免数据转换介质时发生错误。本系统的输入界面的图例如下:图4-1 课程表的输入设计图4-2 班级表的输入设计图4-3 任课表的输入设计图4-4 教师表的输入设计输入界面的设计我们不仅考虑到数据输入窗口的屏幕格式,而且考虑到如何使输入数据的错误率尽可能的减小,为此,在程序中加入了对输入数据的校验和判断等功能,如输入数据的范围,数据间的关联等。同时, 尽可能多的使用菜单方式、会话方式、一次输入多次使用的方式来简化用户的输入操作.(2)输出设计输出设计主要包括以下几方面的内容:确定输出内容;选择输出设备与介质;确定输出格式。在输出界面的设计上,可以
24、通过多种方式来实现,我们主要将数据以日常通用的格式呈现在屏幕上,方便用户的查阅,以及管理员进行修改.本系统的输出界面图例如下:图4-5 班级课表的输出设计图4-7 教师课表的输出设计图4-5 教室课表的输出设计五、系统实施 系统实施是网站开发过程中最烦琐、重要也是对系统质量有着直接的影响的阶段,这个阶段的任务是实现系统设计阶段的物理模型,按实施方案完成一个可以实际运行的系统。以下是各模块的实现过程:(一)系统开发环境与工具1.vb简介本系统采用的主要技术是ASP,以下对此技术做一简介。ASP即Active Server Pages,是一套微软开发的服务器端脚本环境,内含于IIS3.0和4.0之
25、中。通过ASP,我们可以结合HTML网页、ASP指令、和ActiveX空间建立动态、交互且高效的web服务器应用程序。与一般的程序不同, .asp 程序无须编译。 ASP 程序的控制部份,是使用 VBScript 、 JScript 等脚本语言来设计的,当执行 ASP 程序时,脚本程序将一整套命令发送给脚本解释器 ( 即脚本引擎 ) ,由脚本解释器进行翻译并将其转换成服务器所能执行的命令。当然,同其他编程语言一样, ASP 程序的编写也遵循一定的规则,如果你想使用你所喜爱的脚本语言编写 ASP 程序,那么你的服务器上必须要有能解释这种脚本语言的脚本解释器。当你安装 ASP 时,系统提供了两种脚
26、本语言: VBsrcipt 和 JScript ,而 VBscript 则被作为系统默认的脚本语言。你也可以根据自己的喜好改变系统默认的脚本语言。2. 系统运行的硬件环境本系统是采用单片机形式进行系统设计的(即服务器与客户端是同一台计算机),它的主要硬件环境如下:操作系统:Windows7/windows xp数据库:SQL server 2008开发工具:vb (二)程序流程图 图5-1 排课程序流程图(三)实施结果图5-2 自动排课结果图5-3 手动调课结果1图5-3 手动调课结果2(四)系统测试在所有管理信息系统的开发和实施过程中,系统测试是保证系统得以顺利运行的关键性一步,它是提高软件
27、质量和可靠性的有效手段。1.测试方法系统测试用例设计方法分为白盒法和黑盒法。白盒法测试也称逻辑驱动测试或称逻辑覆盖测试。使用白盒法需阅读程序内部的逻辑,并以此为基础设计测试用例。黑盒法也称数据驱动或输入/输出驱动法。测试者把程序看成一个黑盒,即完全不考虑程序内部结构和内部特性。测试者寻找使程序按规范运行的情况导出测试数据。也可以说黑盒法是根据程序的功能说明来设计测试用例。该智能排课系统采用黑盒法测试用例测试。2.测试环境 Windows7XP、Microsoft Visual Basic6.03.测试用例及测试结果表11 手动调课用例编号01测试项描述手动调课预置条件已经进入手动调课界面用 例
28、输入步骤测试输入预期结果测试结果01调课成功填入所输入的信息填写课程名称:历史教师名称:胡夏上课教室:二教105班级编号:010102上课时间:周五第一大节点击确定提示排课成功提示排课成功02教室、时间冲突填入所输入的信息填写课程名称:英语教师名称:杨娜上课教室:一教101班级编号:010102上课时间:周一第二大节点击确定提示该班级该时段该教室已有课,请重新填写提示该班级该时段该教室已有课,请重新填写表12 自动排课用例编号02测试项描述自动排课预置条件已经进入自动排课界面用 例输入步骤测试输入预期结果测试结果01排课完成点击开始点击开始提示排课完成提示排课完成表13 班级课表查询用例编号0
29、3测试项描述班级课表查询预置条件已经进入班级课表查询界面用 例输入步骤测试输入预期结果测试结果01查询成功输入班级编号输入010102查得并显示010102班级课程表查得并显示010102班级课程表02该班级课表不存在输入班级编号输入0806提示该班级课表不存在提示该班级课表不存在表14 教师课表查询用例编号04测试项描述教师课表查询预置条件已经进入教师课表查询界面用 例输入步骤测试输入预期结果测试结果01查询成功输入教师姓名输入胡夏查得并显示胡夏课程表查得并显示胡夏课程表02该教师课表不存在输入教师姓名输入张三无查询结果无查询结果表15 教室课表查询用例编号05测试项描述教室课表查询预置条件
30、已经进入教室课表查询界面用 例输入步骤测试输入预期结果测试结果01查询成功输入上课教室名称输入二教105查得并显示教室二教105课程表查得并显示教室二教105课程表02该教室课表不存在输入上课教室名称输入三教111无查询结果无查询结果六、心得体会 系统完工,我做的算是比较晚的,其中最大的感受就是,技术其实并不最难,难的是做需求,是对业务的理解。就拿这个系统来说,如果把需求做好了,敲代码的话,不会用几天吧! 排课系统,不是一个很大的系统。不过在做这个系统中学会了配置数据库、连接数据库。在安装数据库连接数据库中出现了很多问题,正式这些问题的出现,才使得自己对数据库有了进一步的了解。有时候只学习知识
31、是不够的,只有运用知识的时候才会理解的更深刻。 本系统是一个C/S构架,也就是有服务器与客户端的系统。做系统很重要的一点就是细心,每做一步总会很谨慎。可能有人认为出错也没什么大不了的,那如果我们做的是一个银行使用的系统,或者就做一个高铁上使用的系统,那要是出错可就麻烦了。我们手里拿的那个机房收费系统的例子有很多的错误。最严重的就是退卡的时候是把用户信息中的状态由“可用”改为“不可用”,但是在下次注册的时候这个系统却忽略了对这个状态的验证,那就会出现一种我们不愿看到的情况,那就是同样的卡号可能有两条信息。那就真的乱了,即使这个系统别的地方做的再好,也不能说它是一个优秀的系统了。为了方便我相信大家
32、都是把记录按字符串来存储的,但是在比较的时候不知道大家是不是对它们进行分类处理了,对于数字类的,如果我们按字符串比较的话,就不会得到我们想要的结果。字符串比较的话2肯定是比100大的。那就会出错了。 我觉得在做系统的过程中,编程规范是依旧要重要的。对于局部变量相信大家做的还是不错的,但是全局变量你是否加了g_前缀了吗,数组是否加了前缀?我做的时候时常会看看米老师给咱们的那个课件,编程规范与否直接关系到我们是否是一个专业级的程序员。在这一点上我应该检讨,我的代码里基本没有注释。记得以前看华为的程序员编程规范里要求的是有效的注释量不低于20%。其实这个要求也不算过分,假如我们在看代码的时候恨不得它
33、的注释量是50%或者更多呢。所以为了别人也为了自己以后查看,还是不要“手下留情”吧,多写注释哦!做一个系统时首先要明确系统的需求分析和可行性报告,然后再按照所需要的每一个流程做一个系统的详细设计方案,清楚的知道系统的背景论述、系统的必要性、管理方面需要什么、时间的进度安排,还有其安全性、经济上的投入,最后再总结一下所需要开发的系统的研究。 这让我清楚的知道详细调查的目的,主要目的是要了解我们所开发智能排课的内部信息的处理及流通的情况,还有智能排系统的主要流程,需要的信息流程。首先要按照我们所考虑的开发方法,接着确定开发环境适用的开发工具等等,熟悉这个系统的各方面,我们采取了访谈和上网搜索资料两大部分。我们可以更加深入地清楚做一个系统需要的过程及图书馆系统的流程。 因此,在这门课程中,让我受益匪浅,让我清楚地知道一个系统设计的需求,怎样去设计数据库。我们做每一件事情都要像做系统那样,要下功夫清楚地了解,然后再去做,这样的效果会比较好,成功的机率也会高很多。
限制150内