4 试调分析7
5 测试结果8
总结9参考文献9
致谢10附件ⅰ 1.源程序[带注释](结构体文件10
2.运行结果28
摘要。大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。
每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。
此程序就可以满足这些要求,输出正确的结果,帮助我们实现教学计划编制。
关键字:数据结构,计划,编制。
正文。1采用类c语言定义相关的数据类型。
typedef char vertextype[max_name];
int totalterms学期总数。
int maxscores学分上限。
typedef struct arcnode
int adjvex; /该弧所指向的顶点的位置弧的节点结构。
struct arcnode *nextarc; /指向下一条弧的指针。
arcnode
* 查找图中某个顶点位置 */
int locatevex(algraph g, vertextype u)
* 输出图g的信息*/
void display(algraph g)
求顶点的入度*/
void findindegree(algraph g, int indegree)
struct name
char c[20];
name;void puanduan(vertextype str,struct name name,int n)
*栈定义*/
typedef int selemtype; /栈类型。
#define stack_num 20 //存储空间初始分配量。
#define stack_morenum 5 //存储空间分配增量。
typedef struct sqstack
拓扑排序*/
int toposort(algraph g,adjlist temp,struct name name)
2.各模块的伪码算法。
1)-图的邻接表存储表示-
int adjvex; 该弧所指向的顶点的位置弧的节点结构。
struct arcnode *nextarc; 指向下一条弧的指针。
arcnode链表结点
typedef struct 链接表。
vertextype data; 顶点信息。
int grades; 存储学分信息。
arcnode *firstarc; 指向第一条依附该顶点的弧的指针。
vnode, adjlist[max_vertex_num]; 头结点。
typedef struct
adjlist vertices; vertices 存储课程名。
int vexnum, arcnum; 图的当前顶点数和弧数。
algraph;
void output()
输出菜单。2)采用邻接表存储结构。
输出提示,按提示操作程序。
printf("请输入教学计划的课程数: "
printf( "请输入各个课程的先修课程的总和(弧总数):
printf( "请输入%d个课程的课程号(最多%d个字符,数字+字母):"
printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)");
3)输出图g的信息。
void display(algraph g)
printf("有向图");
printf("%d个顶点",
拓扑排序。arcnode *p对输出顶点计数。
while (!stackempty(s)),
3 函数调用关系图。
4 试调分析-
根据问题描述及要求,可知设计中需要定义先修关系的aov网图中的顶点及弧边的结构体,在运行结果中将图的信息显示出来,利用先修关系将课程排序,最后解决问题——输出每学期的课程。
5 测试结果。
测试数据:输入的内容如下:
课程编号课程名称学分先决条件。
01 程序设计基础 2无。
02 离散数学 3 01
03 数据结构4 01,02
04 汇编语言 3 01
05 语言的设计和分析 2 03,04
06 计算机原理 3 11
07 编译原理 4 05,03
08 操作系统 4 03,06
09 高等数学 7 无。
10 线性代数 509
11 普通物理 2 09
12 数值分析 3 09,10,01
学期总数:6;学分上限:10;该专业共开设12门课,课程号从c1到c12,学分顺序为2,3,4,3,2,3,4,4,7,5,2,3。
两种编译都输出结果:
第一学期学的课程有:高等数学
第二学期学的课程有:普通物理线性代数计算机原理。
第三学期学的课程有:课程设计基础数据结构离散数学。
第四学期学的课程有:操作系统汇编语言语言的设计与分析。
第五学期学的课程有:编译原理数值分析。
第六学期学的课程有:
总结。我们在实验过程中遇到的最大难题是两个课程排序算法的编写。刚开始的时候没有任何的思路,网上也只有拓扑排序的算法,对于课程设计要求的排序算法没有任何头绪。
经过请教老师和同学以及翻阅了一些相关书籍,并在网上的搜索有了排序算法的大体思路。经过三天的修改,终于写出了符合要求的排序算法。
经过此次课程设计,自己解决编程中从在的问题,我们认识到了理论与实践结合的重要性,仅仅只是从课本上学到算法原理是远远不够的。在实践中,我们总会出现许多错误。这就要求我们以一个脚踏实地的态度来处理问题。
我们深刻地认识到自己写程序的不足,使我们学到了好多有用的知识,让我们明白了算法与编程的密切关系,使我们受益匪浅。
参考文献。1《数据结构》(c语言描述)冶金工业出版社。
2《c程序设计》 谭浩强。
3王连相,冯锋编著。c/c++程序设计。北京:中国科学技术出版社,2005
4严蔚敏,吴伟民编著。数据结构(c语言版).北京:清华大学出版社,1997
5 严蔚敏,吴伟民编著。数据结构题集(c语言版).北京:清华大学出版社,致谢。
数据结构之教学计划编制问题
课程设计说明书。题目 教学计划编制问题 a类。院系 计算机科学系。专业班级 06网络工程。学号。学生姓名。指导教师。一。需求分析。1 实验内容和实验目的 1.大学的每个专业都要编制教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限都相等。每个专业开设的课程都是确定的...
华信学院数据结构实习教学计划编制
findindegree g 初始条件 图g已存在。操作结果 输出一个人结点的入度。topologicalsort 初始条件 图g存在。操作结果 若g无回路,则输出g的顶点的一个拓扑序列。initstack s 操作结果 构造一个空栈。stackempty s 初始条件 栈s已存在。操作结果 若栈s...
年度经营计划编制
附件1集团部2014年度工作计划。一 2013年完成的主要工作。可以插入空行,但无需反映常规常态工作,侧重改进 优化和创新工作,原则上要求不超过十大项 二 2014年度主要工作计划。总的原则 可以插入空行,但无需计划常规常态工作,侧重改进 优化和创新工作,要求不超过十大项 三 部门人员定岗定编方案。...