数据结构课程设计——教学计划编制_教学计划编制课程设计
数据结构课程设计——教学计划编制由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“教学计划编制课程设计”。
攀枝花学院课程设计论文 教学计划编制问题
摘 要
教学计划(课程计划)是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出全面安排,具体规定了学校应设置的学科、课程开设的顺序及课时分配,并对学期、学年、假期进行划分。
根据一定的教育目的和培养目标制定的教学和教育工作的指导文件。它决定着教学内容总的方向和总的结构,并对有关学校的教学、教育活动,生产劳动和课外活动校外活动等各方面作出全面安排,具体规定一定学校的学科设置、各门学科的教学顺序、教学时数以及各种活动等。教学计划、教学大纲和教科书互相联系,共同反映教学内容。
近代以来,特别是在实行学科课程的条件下,教学计划主要是学科的计划,或只是学科表。随着社会经济和科学技术的新发展,教育结构不断发生变革,现代教育和教学理论主张对教学计划的结构实行改革。除了教学以外,生产劳动、科技活动、发展体力和增进健康的活动、艺术活动和社会活动等也应列入教学计划。下面就利用对此进行程序设计,已达到预期的目的。
关键字:数据结构,教学计划编制,抽象数据类型,程序设计
攀枝花学院课程设计论文 教学计划编制问题
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()
攀枝花学院课程设计论文 教学计划编制问题
数据关系:R1={﹤ai-1 ai﹥|ai-1,ai∈D,i=2,…,n} 基本操作: 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(“请输入学期总数:n”);scanf(“%d”,&numterm);printf(“请输入一个学期的学分上限:n”);scanf(“%d”,&uplcredit);CreatGraph(&G);printf(“请选择编排策略:1.课程尽可能集中到前几个学期;2.课程尽量均匀分布n”);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 ArcNode{ int adjvex;struct ArcNode *nextarc;}ArcNode;typedef struct VNode{ char name[24];//课程名 int claid;//课程号 int credit;//课程的学分 int indegree;//该结点的入度 int state;//该节点的状态
ArcNode *firstarc;//指向第一条依附该顶点的弧的指针 }VNode,AdjList[MAX_VEXTEX_NUM];typedef struct{ AdjList vertices;int vexnum, arcnum;}ALGraph;邻接表的基本操作:
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);拓扑排序来编排课程
4.2栈的定义
#define STACk_INIT_SIZE 100 //存储空间的初时分配量 #define STACKINCREMENT 10 //存储空间的分配增量
-***攀枝花学院课程设计论文 教学计划编制问题
6.调试分析
6.1实验过程中出现的问题及解决方法
我们在实验过程中遇到的最大难题是两个课程排序算法的编写。刚开始的时候没有任何的思路,网上也只有拓扑排序的算法,对于课程设计要求的排序算法没有任何头绪。经过请教老师和同学以及翻阅了一些相关书籍,并在网上的搜索有了排序算法的大体思路。经过三天的修改,终于写出了符合要求的排序算法。
6.2测试数据
学期总数:6;学分上限:10;该专业共开设12门课,课程号从01到12,学分顺序为2,3,4,3,2,3,4,4,7,5,2,3。
6.3测试结果(包含正确和错误的)
正确测试结果:
攀枝花学院课程设计论文 教学计划编制问题
错误测试结果:
攀枝花学院课程设计论文 教学计划编制问题
6.4测试数据及程序运行情况
输入的内容如下: 课程编号 课程名称 学分 先决条件 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 线性代数 5 09 11 普通物理 2 09 12 数值分析 3 09,10,01 两种编排方法都输出结果为: 第一学期学的课程有:高等数学 程序设计基础; 第二学期学的课程有:普通物理 线性代数 汇编语言; 第三学期学的课程有:数值分析 计算机原理 离散数学; 第四学期学的课程有:数据结构;
攀枝花学院课程设计论文 教学计划编制问题
第五学期学的课程有:操作系统 语言的设计和分析; 第六学期学的课程有:编译原理。
7.实验分工
8.总结
刚开始学的时候确实有很多地方我很不理解,每次上课时老师都会给我们出不同的设计题目,对于我们一个初学者来说,无疑是一个具大的挑战,撞了几次壁之后,我决定静下心来,仔细去写程序。老师会给我们需要编程的内容一些讲解,顺着老师的思路,来完成自己的设计,我们可以开始运行自己的程序,可是好多处的错误让人看的可怕,还看不出到底是哪里出现了错误,但是程序还是得继续下去,我多次请教了老师和同学,逐渐能自己找出错误,并加以改正。经过了这次课程设计,现在已经可以了解很多错误在英文里的提示,这对我来说是一个突破性的进步,眼看着一个个错误通过自己的努力在我眼前消失,觉得很是开心。此次的程序设计能够成功,是我和我的同学三个人共同努力作用的结果。在这一段努力学习的过程中,我们的编程设计有了明显的提高。
其实现在想起来,收获还真是不少,虽然说以前非常不懂这门语言,在它上面花费了好多心血,觉得它很难,是需用花费了大量的时间编写出来的。现在真正的明白了一些代码的应用,每个程序都有一些共同点,通用的结构,相似的格式。同时也对教学编制问题有了进一步的认识。只要努力去学习,就会灵活的去应用它。
9.参考文献
[1]《数据结构》(C语言版),严蔚敏,清华大学出版社,2003。
攀枝花学院课程设计论文 教学计划编制问题
[2]《数据结构题集》,严蔚敏,清华大学出版社,2005。[3]《数据结构》(C语言版),刘大有,高等教育出版社,2004。[4]《Data Structure with C++》,William Ford.William Topp,清华大学出版社,2003。