电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

学期授课计划编制教材VIP免费

学期授课计划编制教材_第1页
1/16
学期授课计划编制教材_第2页
2/16
学期授课计划编制教材_第3页
3/16
“学期授课计划编制”实验报告一、实验目的1.题目:学期授课计划编制2.问题描述大学每个学期的课程授课有学分及授课门数上限的规定。课程之间有先行课的限制。设计编制学期授课计划,使得总的教学时长为最短的拓扑集合划分程序。3.实验要求设计大学四年制授课计划编制的模拟程序。(1)采用邻接表或邻接矩阵存储结构。(2)使用栈或队列等作为拓扑排序的辅助数据结构。(3)可以尝试采用深度优先遍历求解问题。二、需求分析1.根据我的调查及生活经验,学期授课计划的编制需要以下几个方面的信息汇总才可以实现(1)确定学期数,以及一个学期的最大学分上限和最大的课程数目上限。(2)确定一共需要上几门课,一级每门课的学分。(3)确定课程的先行关系。(4)综合以上信息采用拓扑排序制定出总的教学时长最短的教学授课计划。2.模块流程图主程序模块栈模块排序模块3.性能需求本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。三、程序实现本程序采取数据结构模块化编程,很好的实现了实验所要求的各项功能,本程序分为三个主要模块:主程序模块、栈模块、排序模块。1.主程序模块intmain(){printf("学期授课计划编制\n");printf("//AOV-网:顶点表示活动,弧表示活动间优先关系的有向图;intCONTINUE=1;while(CONTINUE!=0){printf("------------------------------------------------\n");ALGraphf;//图的邻接表存储;printf("请输入学期总数:");scanf("%d",&term_num);printf("请输入每学期的学分上限:");scanf("%d",&credit_lim);CreateGraph(f);Display(f);TopologicalSort(f);printf("\n按1继续,按0结束:");scanf("%d",&CONTINUE);}return0;}2.栈模块typedefenum{DG}GraphKind;//{有向图,有向网,无向图,无向网};typedefstructArcNode{//弧结构;intadjvex;//该弧所指向的顶点的位置;structArcNode*nextarc;//指向下一条弧的指针;InfoType*info;//网的权值指针;}ArcNode;//表结点;typedefstruct{VertexTypedata;//顶点信息;ArcNode*firstarc;//第一个表结点的地址,指向第一条依附该顶点的弧的指针;}VNode,AdjList[MAX_VERTEX_NUM];typedefstruct{AdjListvertices,vertices2;//分别存课程名和学分;intvexnum,arcnum;intkind;}ALGraph;intLocateVex(ALGraphG,VertexTypeu){inti;for(i=0;iadjvex=j;p->info=NULL;p->nextarc=G.vertices[i].firstarc;G.vertices[i].firstarc=p;}returnOK;}voidDisplay(ALGraphG){inti;ArcNode*p;switch(G.kind){caseDG:printf("有向图\n");}printf("%d个顶点:\n",G.vexnum);for(i=0;iadjvex]++;p=p->nextarc;}}}typedefintSElemType;#defineSTACK_INIT_SIZE10#defineSTACKINCREMENT2typedefstructSqStack{SEle...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

学期授课计划编制教材

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部