c,,教学计划编制.doc
文本预览下载声明
c,,教学计划编制
数据结构
课程设计报告
主题:教学计划编制问题
学号:20091003768
班级:计科四班
姓名:熊金莲
指导老师:郭艳
内容概要
(1) 题目要求
(2) 教学计划编制问题的要点
(3) 函数模块及各函数可实现的功能简介
(4) 具体的源代码
(5) 使用说明
(6) 实验心得
一:题目要求如下:
大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
要求
(1)输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)学分和直接先修课的课程号。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
(3)若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计划的表格格式自行设计。 二:教学计划编制问题的要点:
根据问题描述及要求,可知设计中需要定义先修关系的AOV网图中的顶点及弧边的结构体,在运行结果中将图的信息显示出来,利用先修关系将课程排序,最后解决问题——输出每学期的课程。
1) 采用第二种策略:使课程尽可能地集中在前几个学期中;
2) 根据教学计划中的课程及其关系和学分定义图的顶点和
边的结构体
3) 创建图CreateGraph():结合先修关系的AOV网,显
示代号所对应课程及课程的先修课程
4)拓扑排序TopologicalOrder (G):将课程排序后并决定出每学期所学课程,输出图G的信息Display(G):将图的顶点和弧边输出
三:程序模块及可实现的功能简介:
1)、图的邻接表的存储表示,即结构体的定义
typedef struct ArcNode
{
int AdjOfV;// 该弧所指向的顶点的位置 struct ArcNode *next; //指向下一条弧的指针
}ArcNode;
typedef char VertexType[MAXOfNAME];
typedef struct //链接表
{
VertexType data; //顶点信息 int grades;//存储学分信息 ArcNode *first; //指向第一条依附该顶点的弧的指针
}VNode, AdjList[MAX_VER]; // 头结点
typedef struct
{
AdjList ver;//vertices 存储课程名 int vexnum, arcnum; // 图的当前顶点数和弧数
}ALGraph;
2)、利用前插法,建立图的邻接链表
printf(请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n);
for (h=0;hlt;G.vexnum;++h) // 构造表结点链表,利用前插法 {
printf(%s的先修课程:,G.ver[h].data);
scanf(%s,va);getchar();
while (va[0]!=0)
{
i = LocateVex(G, va); //弧头
j = h; //弧尾
p = (ArcNode*)malloc(sizeof(ArcNode));
p-AdjOfV = j;
p-next = G.ver[i].first; // 插在表头
G.ver[i].first = p;
scanf(%s,va);
getchar();
}
}
3)、输出图的顶点和边
printf(%d个顶点, G.vexnum);
for (i = 0;i lt; G.vexnum;++i)printf(%4s, G.ver[i].data);
printf( \n%d条弧边:\n,G.arcnum);
for (i = 0;i lt; G.vexnum;i++)
{ p = G.ver[i].first;
while (p)
篇二:C语言教学计划
C语言程序设计教学计划
一、课程性质、目的和要求
《C语言程序设计》是计算机专业的专业必修课程,主要任务是介绍C语言中的数据类型,运算,语句结构及其程序设计的基本方法。目的是使学生掌握一门高级程序设计语言,学会利用C语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。《C语言程序设计》是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调
显示全部