数据结构(课程设计)之课程表实现
PAGE
PAGE 1
软 件 学 院
课程设计报告书
课程名称 数据结构
设计题目 教学计划编制
专业班级 软件10-04班
学 号
姓 名 张小龙
指导教师 刘玲玲
2012年 1 月
目 录
TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc" 1 设计时间 PAGEREF _Toc \h 1
HYPERLINK \l "_Toc" 2 设计目的 PAGEREF _Toc \h 1
HYPERLINK \l "_Toc" 3设计任务 PAGEREF _Toc \h 1
HYPERLINK \l "_Toc" 4 设计内容 PAGEREF _Toc \h 1
HYPERLINK \l "_Toc" 4.1需求分析 PAGEREF _Toc \h 1
HYPERLINK \l "_Toc" 4.2总体设计 PAGEREF _Toc \h 2
HYPERLINK \l "_Toc" 4.3详细设计 PAGEREF _Toc \h 6
HYPERLINK \l "_Toc" 4.4测试与分析 PAGEREF _Toc \h 13
HYPERLINK \l "_Toc" 4.4.1测试 PAGEREF _Toc \h 13
HYPERLINK \l "_Toc" 4.4.2分析 PAGEREF _Toc \h 18
HYPERLINK \l "_Toc" 4.5 附录 PAGEREF _Toc \h 19
HYPERLINK \l "_Toc" 5 总结与展望 PAGEREF _Toc \h 30
HYPERLINK \l "_Toc" 参考文献 PAGEREF _Toc \h 32
HYPERLINK \l "_Toc" 成绩评定 PAGEREF _Toc \h 32
1 设计时间
2012年1月3日
2 设计目的
(1)加强学生分析问题能力和应用所学知识解决问题的能力;
(2)使学生对所学内容更深入的了解和应用;
(3)提高C程序调试能力,加强程序设计和实践能力;
(4)加深学生对《数据结构》和《C语言》等相关课程的认识;
(5)培养学生自主软件设计能力和开发能力;
(6)加强个人程序设计能力和学生与学生之间的交流和研讨。
3设计任务
大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
任选软件专业几门课程作为顶点,通过这几门课程的先修关系来构建一个有向图,用邻接表来储存,通过栈和有向图来完成课程教学计划安排。
4 设计内容
4.1需求分析
1、程序所能达到的功能
(1)数据结构使用有向图和栈。
(2)课程先修关系(表4.1--01)
(表4.1--01课程先修关系)
(3)如果输入的先修课程号不在该专业开设的课程序列内,则作为错误处理。
2、输入的形式和输入值的范围
输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
3、输出的形式
每学期课程安排
4、测试数据:
学期总数6,一学期的学分上限16,该专业共开课程数目14,按照表4.1--01输入课程名,课程号,课程学分。输出正确的课程编排结果。
4.2总体设计
1、说明本程序中用到的所有抽象数据类型的定义
ADT Graph{
数据对象V:V是具有相同特性的数据元素的集合,称为顶点集.
数据关系R:?R={VR}
VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在直接先修关系}
基本操作P:
void CreatGraph(ALGraph *G)
操作结果:创造图G
void InitStack(SqSttack *S)
操作结果:构造一个空栈S
void StackEmpty(SqStack *S)
初始条件:栈S已存在
操作结果:若栈S为空栈,则返回TRUE,否则FALSE
void Push(SqStack *S,in