数据结构教学计划编制

发布 2019-07-24 17:04:55 阅读 2334

摘要。教学计划(课程计划)是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出全面安排,具体规定了学校应设置的学科、课程开设的顺序及课时分配,并对学期、学年、假期进行划分。

根据一定的教育目的和培养目标制定的教学和教育工作的指导文件。它决定着教学内容总的方向和总的结构,并对有关学校的教学、教育活动,生产劳动和课外活动校外活动等各方面作出全面安排,具体规定一定学校的学科设置、各门学科的教学顺序、教学时数以及各种活动等。教学计划、教学大纲和教科书互相联系,共同反映教学内容。

近代以来,特别是在实行学科课程的条件下,教学计划主要是学科的计划,或只是学科表。随着社会经济和科学技术的新发展,教育结构不断发生变革,现代教育和教学理论主张对教学计划的结构实行改革。除了教学以外,生产劳动、科技活动、发展体力和增进健康的活动、艺术活动和社会活动等也应列入教学计划。

下面就利用对此进行程序设计,已达到预期的目的。

关键字:数据结构,教学计划编制,抽象数据类型,程序设计

1. 需求分析。

根据课程之间的依赖关系制定课程安排计划,输入课程数及课程之间的关系。需要利用**实现排序,以及对各个学期课程安排进行排序并输出。

1.1问题描述。

大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。

每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。

1.2设计思路。

首先利用拓扑排序对课程先后顺序进行分析,邻接表位主要存储结构,栈为主要辅助结构,给出课程之间的先后关系比如aov网,然后进行拓扑排序,但当又向图中存在环时,无法查找该图的一个拓扑排序,当图中的所有顶点全部输出,表示对该图排序成功,实现拓扑排序算法时,相应的建立邻接表存储aov网,为了避免重复检测入度为零的顶点,建立一个栈来对入度为零的顶点进行存放。根据课程的先后关系,对个学期的课程进行排序,输出。

1.3设计环境、原理。

设计环境和器材: 硬件:计算机;软件:microsoft visula c++。

设计原理说明:运用图的拓扑排序对课程先修排列的实现,并调用递归完成拓扑排序。

1.4实验目的。

培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用。通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

1.5实验内容。

针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

2.概要设计:

2.1流程图。

void findindegree(algraph g, int indegree)求图中各节点的入度(如下左图)void creatgraph(algraph *g)//构件图(如下右图)。

void topologicalsort_1(algraph g,int numterm,int uplcredit) /有向图g采用邻接表存储结构(如下左图);

void topologicalsort_2(algraph g,int numterm,int uplcredit) /有向图g采用邻接表存储结构(如下右图)。

主函数:void main()

2.2抽象数据类型图的定义。

adt graph

vr=基本操作p:

void creatgraph(algraph *)

void findindegree(algraph , int *

void topologicalsort_1(algraph g,int numterm,int maxcredit);

void topologicalsort_2(algraph g,int numterm,int maxcredit);

adt graph

栈的定义:adt stack

数据关系:r1=

基本操作:void initstack (sqstack *s);

int stackempty(sqstack s);

void push(sqstack *s, int );

int pop(sqstack *s, int *e);

adt stack

2.3主程序。

int main()/主函数。

int numterm; /学期总数。

int uplcredit; /一个学期的学分上限。

int selectway;

algraph g;

printf("请输入学期总数:");

scanf("%d",&numterm);

printf("请输入一个学期的学分上限:");

scanf("%d",&uplcredit);

creatgraph(&g);

printf("请选择编排策略:1.课程尽可能集中到前几个学期;2.课程尽量均匀分布");

scanf("%d",&selectway);

if(selectway==1)

topologicalsort_1(g,numterm,uplcredit);

if(selectway==2)

topologicalsort_2(g,numterm,uplcredit);

system("pause");

return 0;

2.4本程序只有两个模块,调用关系简单。

主程序模块→拓扑排序模块。

4.详细设计。

4.1头结点、表结点、邻接表的定义。

#define max_vertex_num 100 //最大课程总数。

typedef struct arcnodegraphkind; /

教学计划编制问题说明书

实践教学。兰州理工大学。计算机与通信学院。2012年春季学期。数据结构课程设计。题目 教学计划编制问题。专业班级 信计一班 姓名 肖雄 学号 10500113 指导教师 张永 成绩。目录。摘要 11.采用类c语言定义相关的数据类型 2 2.各模块的伪码算法 3 3.函数的调用关系图 6 4.调试分析...

数据结构实验数组

crosslist ma int z 主函数 void main creatmatrix ma out m ma main 十字链表的输出 void out m crosslist m printf printf 打回车键,返回。ch getchar void creatmatrix crossli...

数据结构,二维指针和数组 还有数据结构

自己建立头文件格式 include 指针 指针变量 是用来存放变量的存储地址的。p null int a 3 例如 p a 结论 p a p 3 指针变量定义的格式 类型名 指针名。最好采用int p 取值符号 后面加 地址 表示取这个地址里的值。地址符号 后面加 变量 表示取这个变量的地址。voi...

数据结构实验六图

1 掌握图的邻接矩阵和邻接表表示。2 掌握图的深度优先和广度优先搜索方法 3 理解图的应用方法。1 阅读并运行下面程序,根据输入写出运行结果。include define n 20 define true 1 define false 0 int visited n typedef struct 队...

数据结构 习题集

基础篇。习题1 一 选择题。1 计算机算法必须具备输入 输出 b 等5个特性。a 可行性 可移植性和可扩展性b 可行性 确定性和有穷性。c 确定性 有穷性和稳定性d 易读性 安全性和稳定性。2 在数据结构中,从逻辑上可以把数据结构分为 d a 动态结构和静态结构b 紧凑结构和非紧凑结构。c 内容结构...

数据结构单元3练习

单元练习3 一 判断题 下列各题,正确的请在前面的括号内打 错误的打 1 栈是运算受限制的线性表。2 在栈空的情况下,不能作出栈操作,否则产生下溢出。3 栈一定是顺序存储的线性结构。4 栈的特点是 后进先出 5 空栈就是所有元素都为0的栈。6 在c或c 语言中设顺序栈的长度为maxlen,则top ...

数据结构实验队列 附程序

实验三队列。一 实验目的。1.了解队列的特性。2.掌握队列的顺序表示和实现。3.掌握队列的链式表示和实现。二 实验内容。实验3.3队列的顺序表示和实现。编写一个程序实现顺序队列的各种基本运算 采用循环队列 并在此基础上设计一个主程序,完成如下功能 1 初始化队列。2 建立顺序队列。3 入队。4 出队...

数据结构作业 线性表

1简述以下算法的功能 1 statusa linkedlistl p next q p q q p next 当相邻元素相等时删除多余元素。else while delete equal void reverse sqlist a 顺序表的就地逆置。for i 1,j reverse void li...