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