资源描述:
《教学计划编制问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件学院课程设计报告书课程名称数据结构设计题目教学计划编制问题专业班级学号姓名指导教师2013年1月28目录1设计时间22设计目的23设计任务24设计内容24.1需求分析24.2总体设计34.3详细设计64.4测试与分析124.4.1测试124.4.2分析144.5附录165总结与展望276参考文献28281设计时间2013年1月21日---2013年1月27日2设计目的了解并掌握数据结构预算法的设计算法,具备初步的独立分析和设计能力。提高综合运用所学理论知识和方法独立分析和解决问题的能力。掌握面向实际背景思考问题
2、的方法。对于学生基本程序设计素养的培养和软件工作者工作作风的训练,起到显著的促进作用3设计任务掌握数据结构的应用、算法的编写、类C语言的算法转换成C程序并上机调试的基本方法。大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。输入参数包括:学期总数,一学期的学
3、分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽量可能地集中在前几个学期中。若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到屏幕。计划的表格格式自行设定。4设计内容4.1需求分析1、程序所能达到的功能:为用户编排课程,根据用户输入的信息来编排出每学期要学的课程。2、输入的形式和输入值的范围:学期总数:6;学分上限:30;该专业共开设12门课,课程号从S1到S12,学分顺序为2,3,4,3
4、,2,3,4,4,7,5,2,3。28先修关系源自软件学院部分实际课程。3、测试数据及程序运行情况预测:编排方法输出结果为:第一学期学的课程有:高等数学程序设计基础第二学期学的课程有:大学物理上线性代数离散数学第三学期学的课程有:数据结构概率论大学物理下第四学期学的课程有:数据库第五学期学的课程有:JAVA语言的设计和分析第六学期学的课程有:编译原理4.2总体设计内容包括:1.本程序中用到的所有抽象数据类型的定义如下:ADTGraph{数据对象V:V是具有相同特性的数据元素的集合,称为顶点集.数据关系R: R={V
5、R}VR={(v,w)
6、v,w∈V,(v,w)表示v和w之间存在直接先修关系}基本操作P:intCreateGraph(ALGraph*pGraph);voidFindInDegree(ALGraphG,intindegree[])intTopoSort(ALGraphG,AdjListTemp)}ADTGraph28栈的定义:ADTStack{ 数据对象:D={ai
7、ai∈ElemSet,i=1,2,…n,n>=0} 数据关系:R1={﹤ai-1ai﹥
8、ai-1,ai∈D,i=2,…,n}基本操作:int
9、InitStack(SqStack*pStack)intStackEmpty(SqStackS)intPop(SqStackS,SElemTypee)intPush(SqStackS,SElemTypee)}ADTStack2.各程序模块之间的层次(调用)关系如图1所示:图1283函数调用关系如图2所示:图24.主程序voidmain(){ALGraphG;AdjListTemp;28OUTPUT();printf("**********教学计划编制问题**********");printf("请输入学期总数:
10、");scanf("%d",&TotalTerms);printf("请输入学期的学分上限:");scanf("%d",&MaxScores);CreateGraph(&G);Display(&G);TopoSort(G,Temp);printf("OK");getchar();}4.3详细设计一个栈对入度为零的顶点进行存放。根首先利用拓扑排序对课程先后顺序进行分析,邻接表为主要存储结构,栈为主要辅助结构,给出课程之间的先后有关系比如AOE网,然后进行拓扑排序,但当有向图中存在环时无法查找该图的的拓扑排序,
11、当图中的所有顶点全部输出,表示对该图排序成功,实现拓扑排序算法时,相应的建立邻接表存储AOE网,为了避免重复检验入度为零的顶点,建立据课程的先后关系,对各学期的的课程进行排序,输出。(这是运用图的拓扑排序对课程先修排列的实现,并调用递归完成拓扑排序。内容包括:第一部分:数据类型定义#include#include#inclu