数据结构课程设计报告 .doc

数据结构课程设计报告 .doc

ID:61486803

大小:510.00 KB

页数:56页

时间:2021-02-05

数据结构课程设计报告 .doc_第1页
数据结构课程设计报告 .doc_第2页
数据结构课程设计报告 .doc_第3页
数据结构课程设计报告 .doc_第4页
数据结构课程设计报告 .doc_第5页
资源描述:

《数据结构课程设计报告 .doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构课程设计报告学院:电信学院专业:软件工程班级:软件本2班学号:姓名:指导教师:完成时间:2013年12月15日目录1教学计划编排问题………………………………………1.1设计要求1.1.1问题描述1.1.2需求分析1.2概要设计1.2.1主界面设计1.2.2存储结构设计1.2.3系统功能设计1.3模块设计1.3.1模块设计1.3.2系统子程序及功能设计1.3.3函数主要调用关系图1.4详细设计1.4.1数据类型定义1.4.2系统主要子程序详细设计1.5测试分析1.6源程序清单1.7用户手册2自选题目1.1设计

2、要求1.1.1问题描述大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两个学期,每个学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系(例如程序设计和离散数学是数据结构的先修课程)。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。1.1.2需求分析根据问题描述及要求,可知设计中需要定义先修关系的AOV网图中的顶点及弧边的结构体,在运行结果中将图的信息显示出来,利用

3、先修关系将课程排序,最后解决问题输出每学期的课程。1.2概要设计1.2.1主界面设计1.2.2存储结构设计(1)采用邻接表存储结构,创建图intCreateGraph(ALGraph&G){inti,j,k;VertexTypeva;ArcNode*p;printf("请输入教学计划的课程数:");scanf("%d",&G.vexnum);printf("请输入各个课程的先修课程的总和(弧总数):");scanf("%d",&G.arcnum);printf(“请输入%d个课程的课程号(最多%d个字符数字+字母)

4、:",G.vexnum,MAX_NAME);for(i=0;i

5、++k)//构造表结点链表利用前插法{printf("%s的先修课程scanf("%s",va);while(va[0]!='0'){i=LocateVex(G,va);//弧头j=k;//弧尾p=(ArcNode*)malloc(sizeof(ArcNode));p->adjvex=j;p->nextarc=G.vertices[i].firstarc;//插在表头G.vertices[i].firstarc=p;scanf("%s",va);}}returnOK;}(2)通过栈实现拓扑排序FindInDegre

6、e(G,indegree);//对各顶点求入度InitStack(S);//初始化栈for(i=0;i

7、nt;//输出i号顶点并计数for(p=G.vertices[i].firstarc;p;p=p->nextarc)//对i号顶点的每个邻接点减1{k=p->adjvex;if(!(--indegree[k]))//若入度减为0,则入栈Push(S,k);}}if(count

8、mp[]中存储的是经过拓扑排序后的课程先后顺序。intq=1,Z=0;while (q <= TotalTerms){intC=Temp[Z].gradesprintf("第%d个学期应学课程:",q);while (C <= MaxScores) { C = C + Temp[Z+1].grades; if (Z < G.vexnum)  printf("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。