摘 要
教学
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
(课程计划)是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出全面安排,具体规定了学校应设置的学科、课程开设的顺序及课时分配,并对学期、学年、假期进行划分。
根据一定的教育目的和培养目标制定的教学和教育工作的指导文件。它决定着教学内容总的方向和总的结构,并对有关学校的教学、教育活动,生产劳动和课外活动校外活动等各方面作出全面安排,具体规定一定学校的学科设置、各门学科的教学顺序、教学时数以及各种活动等。教学计划、教学大纲和教科书互相联系,共同反映教学内容。
近代以来,特别是在实行学科课程的条件下,教学计划主要是学科的计划,或只是学科表。随着社会经济和科学技术的新发展,教育结构不断发生变革,现代教育和教学理论主张对教学计划的结构实行改革。除了教学以外,生产劳动、科技活动、发展体力和增进健康的活动、艺术活动和社会活动等也应列入教学计划。下面就利用对此进行程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,已达到预期的目的。
关键字:数据结构,教学计划编制,抽象数据类型,程序设计
1. 需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
根据课程之间的依赖关系制定课程安排计划,输入课程数及课程之间的关系。需要利用代码实现排序,以及对各个学期课程安排进行排序并输出。
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 //最大课程总数
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
}ArcNode;
typedef struct VNode{
char name[24]; //课程名
int classid; //课程号
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 //存储空间的分配增量
typedef int ElemType;
typedef struct
{
AdjList vertices;
int vexnum, arcnum;
}ALGraph;
基本操作:
void InitStack (SqStack *S);
栈的初始化
int StackEmpty(SqStack S);
判断栈是否为空
void Push(SqStack *S, int );
入栈操作
int Pop(SqStack *S, int *e);
出栈操作
4.3主程序和其他算法:
#include
#include
#include // malloc()等
#include // INT_MAX等
#include // EOF(=^Z或F6),NULL
#include // atoi()52
#include // eof()
#include // floor(),ceil(),abs()
#include // exit()
#include // cout,cin// 函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等
typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE
#define MAX_NAME 10 /* 顶点字符串的最大长度 */
#define MAXCLASS 100
int Z=0;
int X=0;
int xqzs,q=1,xfsx;
typedef int InfoType;
typedef char VertexType[MAX_NAME]; /* 字符串类型 */
/* 图的邻接表存储表示 */
#define MAX_VERTEX_NUM 100
typedef enum{DG}GraphKind; /* {有向图,有向网,无向图,无向网} */