资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
-淮 海 工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 高校专用通信网络建设 姓 名: 陈韦迪 学 号: 2014122778 专业班级: 计算机科学与技术 计算机142 系 (院): 计算机工程学院 设计时间: 2014.12.222015.1.4 设计地点: 计算机实验室、教室 成绩:指导教师评语: 签名: 年 月 日欢迎下载-1课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:任务根据教材数据结构-C语言描述(耿国华主编)和参考书数据结构题集(C语言版)(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。设计题目从任务书所列选题表中选取,每班每题不得超过2人。学生自选课题。学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。要求:1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;4、每位同学需提交可独立运行的程序;5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 3课程设计说明书一 需求分析 问题描述 中国移动公司正在积极推广3G通信应用,计划在江苏高校之间建立一个专用通信网络,请为其规划一个投资最省的通信线路架设方案。基本要求(1) 用无向网模拟该系统,顶点表示各高校,边表示线路建设成本(2) 高校数量不少于10个,覆盖苏南、苏中、苏北、南京等地的高校(3) 输出方案的结果直观、明确(4) 交互式改变某些线路的建设成本,可重新输出新方案二 概要设计3课程设计说明书二概要设计void menu(graph *g); /菜单 void Editgraph(graph *g); /编辑通信网络系统 int Creategraph(graph *g) /创建通信网络系统 int InsertVex(graph *g,string v) /添加高校 void ChangeVex(graph *g,string v) /修改高校名 int InsertArc(graph *g,string v,string w) /添加高校间的路线 int DeleteArc(graph *g,string v,string w) /删除高校间的路线 void ChangeWeight(graph *g,string v,string w) /修改高校间的路线及其成本 int Destroygraph(graph *g) /销毁通信网络系统 int Display(graph *g) /输出通信网络系统 void save(graph *g) /保存通信网络系统基本操作:InitList(L)初始化L为空表DestoryList(L) 销毁LClearList(L) 将L置为空表ListLength(L) 若L为空表则返回0,否则返回表中元素个数Locate(L,e)若L中存在元素e则将当前指针指向e所在位置并返回真GetData(L,i) 返回L中第i个元素的值InsList(L,I,e) 在L中第i个位置插入e,L的长度增加1DelList(L,I,&e) 删除L的第i个元素,并用e返回其值,L长度减少1数据定义: typedef struct ArcNode int adj;/权值 ArcNode; typedef struct string vexsMAX_VERTEX_NUM;/顶点 ArcNode arcsMAX_VERTEX_NUMMAX_VERTEX_NUM;/邻接矩阵 int vexnum,arcnum;/顶点数和边数 graph;/图的类型 typedef struct string adjvex; int lowcost; minside;/求最小生成树时的辅助数组的类 三 详细设计创建通信系统 int Creategraph(graph *g) int i,j,k,w; string va,vb; 读取文件通信网络.txt if(未找到文件) coutopen error!(*g).vexsi; 初始化邻接矩阵 for(j=0;j(*g).vexnum;+j) (*g).arcsij.adj=INFINITY; /网 for(k=0;kvavbw; i=LocateVex(g,va); j=LocateVex(g,vb); 无向网 infile.close(); return 1; 添加高校 int InsertVex(graph *g,string v) /在图g中增添新顶点v if(顶点数为0) cout未建立通信网络系统!n; system(暂停); Editgraph(g); coutv; int n=LocateVex(g,v); if(高校名重复) cout该高校已存在!n; system(暂停); Editgraph(g); int i; 构造新顶点向量 for(i=0;i=(*g).vexnum;i+) 初始化该行邻接矩阵的值 初始化该列邻接矩阵的值 图g的顶点数加1 return 1; 删除学校 int DeleteVex(graph *g,string v) / 删除g中顶点v及其相关的弧 if(顶点数为0) cout未建立通信网络系统!n; system(暂停); Editgraph(g); int k=LocateVex(g,v); if(k0) cout不存在该学校!n; system(暂停); Editgraph(g); int i,j; int m=0; if( v不是图g的顶点) return 0; m=无限; for(j=0;j(*g).vexnum;j+) if(有入弧或边) 修改弧数 for(序号k后面的顶点向量依次前移) (*g).vexsj-1=(*g).vexsj; for(i=0;i(*g).vexnum;i+) for(j=k+1;j(*g).vexnum;j+) 移动待删除顶点之后的矩阵元素 for(i=0;i(*g).vexnum;i+) for(j=k+1;j(*g).vexnum;j+) 移动待删除顶点之下的矩阵元素 更新图的顶点数 return 1; 修改高校名 void ChangeVex(graph *g,string v)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号