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