ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:217.62KB ,
资源ID:17329560      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17329560.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(教学计划编制问题课程设计数据结构Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

教学计划编制问题课程设计数据结构Word下载.docx

1、得 分评价内涵工 作 表 现20%01学习态度6遵守各项纪律,工作刻苦努力,具有艮好的科学 工作态度。02科学实践、调研7通过实验、试验、查阅文献、深人生产实践等渠 道获取与课程设计有关的材料。03课题工作量按期圆满完成规定的任务,工作量饱满。能 力 水 平35%04综合运用知识的能力10能运用所学知识和技能去发现与解決实际问题, 能正确处理实验数据,能对课题进行理论分析, 得岀有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提岀并 较好地论述课题的实施方案;有收集、加工各种 信息及获取新知识的能力。06设计(实验)能力,方案 的设计能力能正确设计实验方案,独立进行装置安

2、装、调试、 操作等实验工作,数据正确、可靠;研究思路清 晰、完整。07计算及计算机应用能力具有较强的数据运算与处理能力;能运用计算机 进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析 能力(综合分析能力、技 术经济分析能力)具有较强的数据收集、分析、处理、综合的能力。45%09插图(或图纸)质量、篇 幅、设计(论文)规范化 程度符合本专业相关规范或规定要求;规范化符合本 文件第五条要求。设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分, 结论严谨合理;实验正确,分析处理科学。11创新对前人工作有改进或突破,或有独特见解。成绩指 导 教 师 评 语指导教师签名:

3、 年 月曰摘要 , 需求分析 ,11 ij V、丿1/ 1 jjjjjjjjjjjjjjjjjjjjjjjjjjjj41.1实验内容和实验目的 ,1.2设计要求 ,1.3理论与实践教学体系的关系 ,二流程图设计 ,J 1 1L-*- 11 =0数据关系:R1= v 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 Stack2.2主程序int main()

4、/ 主函数int numterm; / 学期总数int uplcredit; / 一个学期的学分上限int selectway;ALGraph G;printf( 请输入学期总数 :n);scanf(%d,&numterm); 请输入一个学期的学分上限 :uplcredit);CreatGraph(&G);2. 课程尽量均 请选择编排策略 :1. 课程尽可能集中到前几个学期; 匀分布 nselectway);if(selectway=1)TopologicalSort_1(G,numterm,uplcredit);if(selectway=2)TopologicalSort_2(G,numte

5、rm,uplcredit);system(pausereturn 0;3代码设计3.1 头结点,表结点,邻接表的定义#define MAX_VERTEX_NUM 100 /最/ 大课程总数 typedef struct ArcNodeint adjvex;struct ArcNode *nextarc;ArcNode;typedef struct VNodechar name24; /课程名int classid;、b -rrt 口课程号int credit;课程的学分int indegree;该结点的入度int state;该节点的状态ArcNode *firstarc;指向第一条依附该顶点

6、的弧的指针VNode,AdjListMAX_VEXTEX_NUM;typedef structAdjList vertices;int vexnum, arcnum;ALGraph;邻接表的基本操作:创建邻接表 求一个结点的入度 拓扑排序来编排课程3.2栈的定义#define STACk_INIT_SIZE 100 / 存储空间的初时分配量#define STACKINCREMENT 10 / 存储空间的分配增量typedef int ElemType;基本操作:栈的初始化判断栈是否为空入栈操作出栈操作3.3主程序和其他算法 int numterm;2. 课程尽量均匀分 布 nvoid Cre

7、atGraph(ALGraph *G)/ 构件图 int i, m, n;ArcNode *p; 请输入需要编排课程总数 :G-vexnum);for( i=1;ivexnum;i+) 请输入课程名 n scanf(%sverticesi.name); 请输入课程号 nverticesi.classid); 请输入该课程的学分 nverticesi.credit);verticesi.indegree=0;vertices i.state=NOTSTUDY;verticesi.firstarc=NULL; 请输入课程先修关系总数: arcnum); 请顺序输入每个课程先修关系 ( 先修课程在前

8、并以逗号作为间隔):for (i = 1; i arcnum; i+)n 请输入存在先修关系的两个课程的序号 :%d,%dn,&m);while (n G-vexnum | m vexnum) 输入的顶点序号不正确 请重新输入 :p = (ArcNode*)malloc(sizeof(ArcNode);if (p = NULL)memory allocation failed,goodbeyexit(1); p-adjvex = m; p-nextarc = G-verticesn.firstarc;verticesn.firstarc = p;n 建立的邻接表为 : / 输出建立好的邻接表

9、for(i=1;%d:-,G- for(p=G-verticesi.firstarc;p!=NULL;p=p-nextarc) printf(%d-,p-adjvex);NULLvoid InitStack(SqStack *S)S-base=(int *)malloc(STACK_INIT_SIZE *sizeof(int);if (!base)ERRORtop=S-base;stacksize=STACK_INIT_SIZE;int StackEmpty(SqStack *S)if(S-top=S-return OK;elsereturn ERROR;void Push(SqStack *

10、S,int e)top - S-base = S-stacksize)base = (int *) realloc (S-base , (S-stacksize + STACKINCREMENT) * sizeof(int);if(!top = S-base + S-stacksize;stacksize += STACKINCREMENT;*S-top+ = e;int Pop(SqStack *S, int *e)top = S-base) exit(1);*e = * -S-top;求图中各节点的入度void FindInDegree(ALGraph G, int indegree)/i

11、nt i;= G.vexnum;indegreei = 0;while (G.verticesi.firstarc)indegreeG.verticesi.firstarc-adjvex+;G.verticesi.firstarc = G.verticesi.firstarc-nextarc;void TopologicalSort_1(ALGraph G,int numterm,int uplcredit)FILE *fp;fp=fopen(bianpai.txt,wSqStack S;int indegreeM;/ 存放各节点的入度int i,j, k, m,n;int count; /

12、课程编排数目计数器int sumcredit;/ 每个学期的课程学分累加器 FindInDegree(G, indegree); i+) G.verticesi.indegree=indegreei;InitStack(&S);count=0;k=0;while(count!=G.vexnum & k=numterm)sumcredit=0;for(i=1;=G.vexnum;i+) / 入度为零的节点入栈,即无先修的课程 入栈if(G.verticesi.indegree=0)&(G.verticesi.state=NOTSTUDY)Push(&S,i);G.verticesi.state

13、= STUDY;/ 避免入度为零节点重复入栈StackEmpty(&S)&(sumcredit=uplcredit)k= k+1;printf(” 第(:1个学期学得课程有:,k);sumcredit = 0;i+)/ 入度为零的节点入栈, 即无先修的课程入栈(G.verticesi.state= =NOTSTUDY)栈非空 &while(!S)&uplcredit)/ 学分总数小于学分上限Pop(&S,&j);sumcredit = sumcredit + G.verticesj.credit;if(sumcredit adjvex.indegree-;else Push(&S,j);/ 将未输出的节点重新压入栈if(countG.vexnum)n 课程编排出错 nn 课程编排成功 nfclose(fp);void TopologicalSort_2(ALGraph G,int numterm,int uplcredit) int maxnum;int sumnum;G.verticesi.indegree = indeg

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1