数据结构课程设计——教学计划编制

摘  要
教学计划(课程计划)是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出全面安排,具体规定了学校应设置的学科、课程开设的顺序及课时分配,并对学期、学年、假期进行划分。
柴油机启动器
根据一定的教育目的和培养目标制定的教学和教育工作的指导文件。它决定着教学内容总的方向和总的结构,并对有关学校的教学、教育活动,生产劳动和课外活动校外活动等各方面作出全面安排,具体规定一定学校的学科设置、各门学科的教学顺序、教学时数以及各种活动等。教学计划、教学大纲和教科书互相联系,共同反映教学内容。
近代以来,特别是在实行学科课程的条件下,教学计划主要是学科的计划,或只是学科表。随着社会经济和科学技术的新发展,教育结构不断发生变革,现代教育和教学理论主张对教学计划的结构实行改革。除了教学以外,生产劳动、科技活动、发展体力和增进健康的活动、艺术活动和社会活动等也应列入教学计划。下面就利用对此进行程序设计,已达到预期的目的。
橡胶衬套
关键字:数据结构教学计划编制,抽象数据类型,程序设计 
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{
数据对象V:V是具有相同特性的数据元素的集合,称为顶点集.
数据关系R:
R={VR}
VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在直接先修关系}
基本操作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{
数据对象:D={ai|ai∈ElemSet,i=1,2,…n,n>=0}
数据关系: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 //最大课程总数

本文发布于:2024-09-23 03:30:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/171865.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:课程   排序   教学   教学计划   进行   结构   学期   安排
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议