软件工程课程设计--高校课表编排子系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程课程设计--高校课表编排子系统
题目:高校课表编排子系统
学院信息工程学院
专业计算机科学与技术
指导教师白娟
2014年1 月 3 日
摘要
教学工作是高校的中心工作,而课表是高校日常教学活动运行的指挥调度表,是高校能否进行正常教学的关键,因此科学的,合理的课表在高校的重要性毋庸置疑。高校教务管理是一向复杂而繁重的工作,课表编排作为其中腰组成部分是长期困扰学校教务管理工作的大问题,计算机排课无疑是必然优势。课表编排是一个涉及多因素约束的,多目标的,结构复杂的典型的组合优化问题,并且已经被证明为一个NP完全类,是典型的组合优化的问题,其问题求解的时间复杂度呈指数函数增长。每个学校在排课表时考虑的因素千差万别,各种约束条件也不尽相同,但是它所涉及的主要实体却具有相对稳定性。关键字:NP完全类; 约束满足;课表编排;课程设置;
目录
目录 (4)
第一章需求分析说明 (5)
1.1编写目的 (5)
1.2问题定义 (5)
1.3可行性分析 (5)
1.4任务描述 (5)
1.5目标 (5)
1.6运行环境 (6)
1.7功能需求 (6)
1.7.1功能描述 (6)
1.7.2排课约束 (6)
1.7.3操作规程 (6)
第二章概要设计说明 (8)
2.1数据描述与数据库设计 (8)
2.2数据表 (8)
2.2.1E-R图 (9)
2.2.2数据流图部分 (9)
2.3运行需求 (11)
2.3.1硬件 (11)
2.3.2软件 (11)
第三章详细设计说明 (12)
3.1模块的具体算法 (12)
3.1.1登陆模块 (12)
3.1.2管理员模块 (13)
数据库中各表的物理结构 (17)
第四章编码+测试 (19)
4.1登录模块 (19)
4.1.1 管理员模块 (20)
4.1.2教师模块 (22)
4.2测试方案设计 (24)
测试结果分析: (24)
第五章用户使用说明书 (25)
第六章实验总结 (28)
第七章参考文献 (30)
第一章需求分析说明
1.1编写目的
供设计人员、开发人员参考。
为明确软件需求、安排项目规划进度、组织软件开发与测试,撰写本文档。
1.2问题定义
随着社会的发展,我们越来越接近自动化的时代。随着高校学生的日益增多、学校制度的日趋完善,我们的排课也不需要人工操作了,慢慢的交给系统自动完成。为了给操作人员提供更简便的操作,排课系统必须不断完善以满足需求。根据工作人员的实际需要,高校课表排课系统主要应包括以下几个方面:
(1)任课教师只具有查询个人课程信息和教室信息以及修改密码的功能。
(2)管理员除了具有查询功能之外,还有设定排课约束,完成排课的功能。
1.3可行性分析
排课管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以排课管理系统应该能够为用户提供充足的信息和快捷的查询手段。
对于一个课表编排子系统来说,基础表的设置是很重要的基础性问题。而基础表的设置仅仅是一个数量级问题,查询的时间复杂度是一个线性复杂度O(n)或平方复杂度O(n2)。
在此基础上,较为困难的部分是排课。由于排课问题已被证明为NP问题,找到最优解的时间复杂度为指数级,故采用优化的方式是必需的。对排课来说,各个学校都有着不太相同的排列方法,有每天的课节数,允许课程连排数,时间段等等,而这些方法转换为计算机语言时,往往会因为各类限制而造成死循环或者程序速度缓慢,因为排课系统要适应大部分学校使用,所以这里提供的一些要求是需要满足大部分人的。
经过详细的分析与计算之后,小组成员一致认为,在一定程度的随机化算法(退火、贪心变形算法、类贪心算法)下,排课的时间复杂度可以减小到多项式级别,达到O(n3)甚至更低。故该系统是可行的。
1.4任务描述
1.5目标
随着时代的发展,高校扩招的趋势正在加大。与此同时,高校教务管理是一项复杂
繁重的工作。课表编排是一项繁重的工程,计算机排课已经成为必然趋势。
软件的目的是设计出一套易于使用与维护的排课子系统,能够完成课程管理、课程编排、教师、学生、课程基本信息维护等功能。软件需要较大的通用性,能够适应多学年的排课,以及一个专业多个学期的排课。同时,能够对于各种信息进行查询。
1.6运行环境
(1)操作系统: Microsoft Windows 7 Ultimate / Microsoft Windows XP Professiona (2)支持环境:.NET Framework 4.0
(3)数据库: Microsoft SQL Server 2005
1.7功能需求
1.7.1功能描述
作为一个课表编排子系统,应当在完成排课任务之外,进行一部分相应的查询与管理功能。经过小组成员分析,列出主要功能如下。
(1)机构设置:建立系、系内部门、专业、班级等信息。
(2)课程信息:建立全校开设的课程并录入相关信息。
(3)教师信息:建立教师的基本信息。
(4)教室信息:建立可用教室的信息、类型等。包括教学楼、教室。
(5)教学任务:录入教学任务,包括生成上课班级。
(6)课表编排:建立排课约束、预排课、自动排课、手动调整课表、冲突检测恢复。
上述功能不仅应包括新增,还应包括查询与维护。
1.7.2排课约束
(1)基本约束
a)同一时间一个教室不能够上两门课。
b)同一时间一个教师不能上两门课。
c)同一时间一个班级不能上两门课。
(2)优先顺序
经小组讨论分析,考虑优先顺序问题,将优先顺序分类,再按照优先顺序设计算法排课。
1.7.3操作规程