教学计划编制系统

发布 2019-07-13 15:38:37 阅读 9644

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年度主要工作计划。总的原则 可以插入空行,但无需计划常规常态工作,侧重改进 优化和创新工作,要求不超过十大项 三 部门人员定岗定编方案。...