没有合适的资源?快使用搜索试试~ 我知道了~
计科校交1601班_U201610504_刘逸帆_数据结构课程设计报告1
需积分: 0 0 下载量 45 浏览量
2022-08-08
19:38:22
上传
评论
收藏 7.93MB DOCX 举报
温馨提示
试读
250页
课题背景排课是每个学期都必须面临的一件繁重的日常教务工作,是一个学期教学工作能顺利组织实施的一个前提条件。排课管理则是高校每个学期教学教务管理工作的一个主要内容
资源详情
资源评论
资源推荐
华 中 科 技 大 学 计 算 机 科 学 与 技 术 学 院 课 程 设 计 报 告
课 程 设 计 报 告
题目: 排课评估与分析助手
课程名称: 数据结构课程设计
专业班级: 校交 1601 班
学 号: U201610504
姓 名: 刘逸帆
指导教师: 周全
报告日期: 2018 年 3 月 16 日
计算机科学与技术学院
华 中 科 技 大 学 计 算 机 科 学 与 技 术 学 院 课 程 设 计 报 告
任 务 书
设计内容
设计有效的逻辑数据结构与存储结构表示课表信息,教师信息,课程信息,
班级信息,学生信息,教室信息等,由时间、教室、课程名、班级、教师名、上
课周期及课堂 ID 等构成课堂信息。根据课堂及其复杂相关性,依据合理的逻辑
与准则评价排课课表的教师安排合理性、课程安排合理性、班级与学生课程学习
合理性、教室安排合理性与利用率、能效情况等。本设计只对现有排课进行评估,
不去求解最优排课方案。
设计要求
(1)交互式操作界面(并非一定指图形式界面);
(2)教师、教室、班级、课程等的增加、删除、修改、查找与检索等;
(3)课堂的增加、删除、修改、查找与检索,包括按教师检索其任课课堂,按
班级检索课堂,按教室、课程、时间等检索课堂;
(4)空闲教室查找与检索、教室利用率分析、能效分析;
(5)教师承担课堂合理性分析;
(6)班级参与课堂的合理性分析;
(7)主要数据对象的数据文件组织与存储。
参考文献
[1] 严蔚敏, 吴伟民. 数据结构(C 语言版). 北京: 清华大学出版社,1997
[2] 王晓东. 计算机算法设计与分析. 北京: 电子工业出版社, 2007
[3] 严蔚敏, 吴伟民, 米宁. 数据结构题集(C 语言版). 北京: 清华大学出版
社,1999
[4] 王秀焕. 基于图论的高校排课系统优化研究.重庆大学硕士学位论文,2012
[5] 洪文,朱广斌. 排课问题及其数学模型. 安徽电力职工大学学报,2002,
7(3):74-77
[6] 陶涛,谢卫星. 课表模型及排课算法应用. 计算机系统应用,2011,20(2):198-
201
[7] 徐晓.基于本体映射和规则推理的排课模型研究. 软件导刊,2009,8(2):1-4
华 中 科 技 大 学 计 算 机 科 学 与 技 术 学 院 课 程 设 计 报 告
目 录
任 务 书 ........................................................................................................................I
1 引言............................................................................................................................1
1.1 课题背景与意义∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1
1.2 国内外研究现状∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙1
1.3 课程设计的主要研究工作∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙2
2 系统需求分析与总体设计........................................................................................3
2.1 系统需求分析∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙3
2.2 系统总体设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙5
3 系统详细设计..........................................................................................................10
3.1 有关数据结构的定义∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙10
3.2 主函数算法设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙14
3.3 文件功能算法设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙20
3.4 维护功能算法设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙24
3.5 查询功能算法设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙29
3.6 统计功能算法设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙35
3.7 帮助功能算法设计∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙39
4 系统实现与测试......................................................................................................40
4.1 系统实现∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙40
4.2 系统测试∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙49
5 总结与展望..............................................................................................................77
5.1 全文总结∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙77
5.2 工作展望∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙80
6 体 会......................................................................................................................81
参考文献......................................................................................................................84
附录 基于十字链表图存储结构的“排课评估与分析助手”系统的源程序 .......85
1.“class.h”文件 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙85
2.“mian.c”文件 ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙93
华 中 科 技 大 学 计 算 机 科 学 与 技 术 学 院 课 程 设 计 报 告
1
1 引言
1.1 课题背景与意义
排课是一项复杂精细的工作,需要考虑的因素很多,涉及到方方面面,归纳
起来主要有五方面相互作用、关联的因素,即课程、教室、教师、班级以及时间。
如何把各要素科学、规范、高效地进行优化组合,以保证教学秩序的稳定,促进
教学质量的提高。本文将以华中科技大学计算机学院排课为背景设计排课评估分
析助手,并利用系统对已有的排课方案进行存储与合理性分析。
1.1.1 课题背景
排课是每个学期都必须面临的一件繁重的日常教务工作,是一个学期教学工
作能顺利组织实施的一个前提条件。排课管理则是高校每个学期教学教务管理工
作的一个主要内容,是整个综合教学教务管理系统中必不可少的部分。基于排课
涉及的基本信息种类偏多且关系到时空上的分配是否合理,如何高效精准地进行
排课并便捷分析排课方案是每所高校都面临的课题。
1.1.2 课题意义
使用排课评估分析助手对排课方案进行分析,第一是能够在避免课程冲突的
要求下完成所有的课程编排。第二个是能够对编排方案的合理性进行分析,使学
校、教师、甚至班级学生满意。将排课评估分析应用与对排课的合理性和科学性
评价,能够提高教学管理水平,更好地服务教师与学生。
1.2 国内外研究现状
排课问题是一个 NP 完全问题,为了能用计算机管理教学调度工作,国内外
对排课算法做了很多研究,开发出相应的通用自动排课系统。但从实际使用情况
来看,实用性上仍不尽如人意。且国外排课系统少有对教室紧张情景的分析,不
适用于我国高校的一般情况。国内排课系统所用方法从模拟手工排课到运用人工
智能构建专家系统或决策系统都有,目前市面上所见的排课软件可分三种类型:
手动型、自动型、混合型。
1.手动型
传统的排课软件一般侧重手动。理论上手动拖曳放置更加符合排课者的意愿。
然而由于课节数目较多,教师与教师之间,课节与课节之间的冲突与牵连甚大,
华 中 科 技 大 学 计 算 机 科 学 与 技 术 学 院 课 程 设 计 报 告
2
排课者面前繁杂的、牵一发动全身的课程编排面前,容易顾此失彼,导致排课失
败。
2.自动型
软件随机或通过一些通用的排课算法,自动帮排课者完成课程编排。自动型
的优点是速度快,省事。但自动排出来的课程仁者见仁,智者见智,不容易被排
课者接受。
3.混合型
即手动、自动结合的类型。这也是目前排课软件中比较科学的一种类型。虽
然大部分排课软件都号称手动、自动相结合,其实真正能做的少之又少。真正的
混合型手动部分应该有足够的排课指引,自动部分应该有精确的条件设置,使手
动编排课程和自动编排的课程结合成的课程表,都符合排课者的意愿。混合型对
排课算法要求非常高,因为程序在用户完成了手工排课后,面对的是一个非常复
杂的“半成品”,在这半成品上做到百分之百通过余下课程无疑是对算法的一种
严峻考验。
此外,由于不同学校的硬件、制度等存在差异性,适宜一所学校的排课系统
不一定能够被所有院校通用,对于一所学校的排课分析单独分析处理会产生较好
的结果。
1.3 课程设计的主要研究工作
考虑到学校课程的特殊性以及优秀排课算法过于复杂,本文中课程设计系统
仅对已有的本校排课方案进行评估与分析,着眼于如何设计课堂等信息的数据结
构,从而使其能够在拥有完备性的同时尽可能的精简,同时对于已存在的方案能
够进行数据的统计与分析。最终达到能够确保排课方案无冲突的效果,并以此为
基础实现对排课方案合理性进行分析、给出相关建议,从而辅助排课人员设计令
师生满意的排课方案。
剩余249页未读,继续阅读
山林公子
- 粉丝: 22
- 资源: 281
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0