已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安郵電大學数据结构课程设计报告书系部名称计算机学院学生姓名专业名称班 级 学号指导教师 衡 霞时间2012年12月15日 至 2012年12月21日 实验题目 *市著名景点导游系统一、实验目的1.通过本次课程设计巩固数据结构课程中的所学内容;2.提高自己上机编程以及调试能力。 二、实验内容 1.设计家乡著名景点平面图,所含景点不少于10个。以图中顶点表示城市中的各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 2.为来访游客提供图中任意景点相关信息的查询。 3.为来访游客提供图中任意景点的问路查询,即查询任意两个景点之间的所有路径和一条最短的简单路径。 三、需求分析对所开发系统功能的描述,想要实现的目标,测试数据等(问题提出、功能要求)此系统可以进行韩城市的著名景点平面图查询,可以所有任意景点的详细介绍,可以查询任意两景点的所有路径,最短路径以及中转最少的路径,充当的导航的功能,使得出来此地的人可以方便游览。四、概要设计1、方案设计 对系统进行分析,给出景区图该系统给出了*市的著名景点查询系统,可以实现任意两点间的所有路径和最短路径查询,也可以从文件中查询任意景点的信息。2、数据结构说明程序中定义的数据类型结构体(各个成员的作用)typedef struct Arcnodeint top; /景点序号char infoMax; /景点名称char introduceMax; /景点介绍data;typedef struct nodeint adj; /景点间的距离node;int visitedMax;typedef structdata dingdianMax; /景点数组 node arcsMaxMax; /邻接矩阵int vexnum,arcnum; /图的顶点数和边数AdjMatrix;3、模块功能说明 对各个模块进行功能的描述int LocateVex(); 求顶点位置函数void CreateDN(); 创建图 void creatvisited(); 标志是否被访问过void depthfirstsearch(); 深度遍历void search(); 从任意一个顶点开始访问遍历void chaxun(); 查询void allways(); 所有路径void zuiduan(); 最短路径void menu(); 主菜单 五、详细设计及运行结果执行函数的操作调用相应函数开始程序 显示主菜单具体分函数退出程序各模块流程图, 函数之间相互调用的图示 ,程序设计过程及编码(不必给出完整程序), 运行结果。1, 功能函数的调用关系图; 2, 各功能函数的数据流程图Main Dfs-path DFSDFS_pathmenuLeastpathdepthfirstsearch allways chaxuncreatvisited grap zuiduan search3重点设计及编码。void zuiduan(AdjMatrix *G)int vi,v0;/起始点与终点int visitMax;/访问标志int pathMax;/记录当前查找到的最短路径int distMax;/当前查找的最短路径长度int i,j,k,t;int min;printf(请输入起始点:n);scanf(%d,&v0); if(v0G-vexnum)printf(the data is error!n);printf(请重新输入:n);scanf(%d,&v0);/初始化for(vi=0;vivexnum;vi+) visitvi=0;distvi=G-arcsv0vi.adj;if(distvijidazhi) pathvi=v0;elsepathvi=-3; /迪杰斯特拉斯算法求任意两点间的最短路径 visitv0=1;pathv0=0;for(t=1;tvexnum-1;t+) min=jidazhi;for(i=0;ivexnum;i+)if(!visiti&distimin)k=i;min=disti;if(min=jidazhi)return; visitk=1;for(j=0;jvexnum;j+)/修正权值if(!visitj&G-arcskj.adj!=jidazhi&(distk+G-arcskj.adjdistj)distj=distk+G-arcskj.adj;pathj=k;/AddTail(&pathi,g.vertexi); /输入终点 printf(请输入目的点:n);scanf(%d,&vi);if(vi!=v0&visitvi)printf(%s,G-); Leastpath(G, path, vi, v0); printf(-%snn,G-); printf(最短路径长度:%dn,distvi); printf(按任意键返回n);getch();system(cls);menu();六、调试情况,设计技巧及体会(重点) 1、测试数据 包括合法与非法的测试数据、预期结构和实测结果(最好用表格列出)正常测试数据(3组)及运行结果;1遍历功能:2.查询功能:3. 两点间的最短路径查询2非正常测试数据(2组)及运行结果。1.查询错误:2.遍历错误:2,对自己的设计进行评价,指出合理和不足之处,提出改进方案;1. 可设管理员,是管理员并正确输入密码才能进行创建和修改,而客户只能查询;2.可选用更好地算法,提升查询路径的速度。3对设计及调试过程的心得体会。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 七、源程序清单(略,详见电子版实验报告)#include#include#include#include#include#define Max 200 /最多景点个数#define jidazhi -1 /表示该两点之间没有直接路径int LocateVex();void CreateDN(); void creatvisited();void depthfirstsearch();void search();void chaxun();void DFS_path();void allways();void Leastpath();void zuiduan();void menu();typedef struct Arcnodeint top; /景点序号char infoMax; /景点名称char introduceMax; /景点介绍data;typedef struct nodeint adj; /景点间的距离node;int visitedMax;typedef structdata dingdianMax; /景点数组 node arcsMaxMax; /邻接矩阵int vexnum,arcnum; /图的顶点数和边数AdjMatrix;/*int LocateVex(AdjMatrix *G,int v) /求顶点位置函数int j=0,k;for(k=0;kvexnum;k+)if(G-dingdiank.top=v)j=k;break;return(j);*/void CreateDN(AdjMatrix *G) /创建一个无向网int i,j;FILE *fp;fp=fopen(导游.txt,rt);G-vexnum=10;G-arcnum=18;if(fp)for(i=0;ivexnum;i+)fscanf(fp,%dt%st%s,&G-dingdiani.top,G-,G-roduce);for(i=0;ivexnum;i+)for(j=0;jvexnum;j+)fscanf(fp,%d,&G-arcsij.adj);fclose(fp);void creatvisited(AdjMatrix *G)int i;for(i=0;ivexnum;i+)visitedi=0;void depthfirstsearch(AdjMatrix *G,int v)int k;visitedv=1;printf(景点序号:%d 名称:%sn景点信息:%snn,G-dingdianv.top,G-,G-roduce);for(k=0;kvexnum;k+)if(!visitedk & G-arcsvk.adj!=jidazhi)depthfirstsearch(G,k);void search(AdjMatrix *G)int i,n;system(cls);creatvisited(G);for(i=0;ivexnum;i+)printf(nt%dt%sn,G-dingdiani.top,G-);printf(请输入遍历的起点序号:n);scanf(%d,&n);if(n9)printf(遍历错误,请继续!n);exit(1);depthfirstsearch(G,n);printf(按任意键返回n);getch();system(cls);menu();void chaxun(AdjMatrix *G)int i,n;system(cls);printf(请输入要查询的景点序号(0-9):n);scanf(%d,&n);if(n9)printf(查询错误,请继续!n);elsefor(i=0;ivexnum;i+)if(G-dingdiani.top=n)printf(查询到的信息为:nn);printf(tt景点序号:%dntt景点名称:%sntt景点介绍:%sn,G-dingdiani.top,G-,G-roduce);printf(nt按任意键返回n);getch();system(cls);menu();int pathMax;int visitMax;int top=0;void DFS_path(AdjMatrix *G,int num1,int num2)int i,j,count=0;top+;pathtop=num1;visitnum1=1;if(num1=num2)for(i=0;i,G-);count+;printf(%s,G-);printf(共中转%d次)n,count);printf(n);visitnum1=0;top-;return;for(j=0;jvexnum;j+)if(G-arcsnum1j.adj jidazhi & !visitj)DFS_path(G,j,num2);visitnum1=0;top-;void allways(AdjMatrix *G) /找出从u到v的所有路径int i,num1,num2;printf(输入起始和终点(num1,num2):n);scanf(%d,%d,&num1,&num2);top=-1;for(i=0;i%s ,G-);void zuiduan(AdjMatrix *G)int vi,v0;/起始点与终点int visitMax;/访问标志int pathMax;/记录当前查找到的最短路径int distMax;/当前查找的最短路径长度int i,j,k,t;int min;printf(请输入起始点:n);scanf(%d,&v0); if(v0G-vexnum)printf(the data is error!n);printf(请重新输入:n);scanf(%d,&v0);/初始化for(vi=0;vivexnum;vi+) visitvi=0;distvi=G-arcsv0vi.adj;if(distvijidazhi) pathvi=v0;elsepathvi=-3; /弗洛伊德算法求任意两点间的最短路径 visitv0=1;pathv0=0;for(t=1;tvexnum-1;t+) min=jidazhi;for(i=0;ivexnum;i+)if(!visiti&distimin)k=i;min=disti;if(min=jidazhi)return; visitk=1;for(j=0;jvexnum;j+)/修正权值=if(!visitj&G-arcskj.adj!=jidazhi&(distk+G-arcskj.adjdistj)distj=distk+G-arcskj.adj;pathj=k;/AddTail(&pathi,g.vertexi); /输入终点 printf(请输入目的点:n);scanf(%d,&vi);if(vi!=v0&visitvi)printf(%s,G-); Leastpath(G, path, vi, v0); printf(-%snn,G-); printf(最短路径长度:%dn,distvi); printf(按任意键返回n);getch();system(cls);menu();void grap(AdjMatrix *G)printf(nnt);printf(禹甸园n);printf( / n /tt n /tt n);printf( / 司马迁祠);printf(n /tt n /tt n /tt 太史园);printf(=金塔公园);printf(n 党家村tt );printf(n tt n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年7月国家开放大学中文、汉语言专科《外国文学》期末纸质考试真题试题及答案
- 被动式节能建筑构造施工工艺
- 酒吧服务员考核试题及答案
- 跨部门人力协同细则
- 医美咨询师谈单转化方案
- 教育系统干部选拔测试题及答案
- 建筑工程-外电线路防护架搭拆作业安全技术交底表格
- 检验检测机构资质认定评审员能力测试题及答案
- 家用电子产品维修工培训内容掌握程度考核试卷及答案
- 水泥厂粉尘排放细则
- 2026年医疗器械岗前培训考试试题及答案
- 七年级生物下学期期末模拟试卷1(解析版)
- 2026年秋季学期苏教版小学数学五年级上册教学计划含进度表
- 血液透析患者动静脉内瘘使用与维护培训
- 混凝土路面铣刨施工方案
- 2026年高考英语全国一卷读后续写
- 部编人教版 五年级上册语文 教师用书 电子版
- 实验室生物安全管理手册
- 县委巡察办保密制度汇编
- 2026年社区网格员普法业务笔试题库及参考答案
- CSCO肿瘤治疗相关心血管毒性防治指南
评论
0/150
提交评论