




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计课程设计名称: 校园导游图 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2010年6月22日 计算机应用技术专业课程设计任务书学生姓名专业班级学号题 目校园导游图课题性质其它课题来源自拟课题指导教师同组姓名主要内容用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。(1) 查询各景点的相关信息;(2) 查询图中任意两个景点间的最短路径。(3) 查询图中任意两个景点间的所有路径。(4) 求多个景点的最佳(最短)游览路径。任务要求1研究应用图的存储与基本算法2应用数据结构基础知识进行实际问题求解与分析;3编程实现算法4具有良好的界面,操作方便灵活、简洁高效。5按要求撰写课程设计报告和设计总结。 参考文献1严蔚敏,吴伟民编著数据结构(C语言版),清华大学出版社,20082 谭浩强,C程序设计(第二版),北京:清华大学出版社,19993谭浩强,C程序设计(第三版),清华大学出版社,20054谭浩强主编,C程序设计题解与上机指导(第三版),清华大学出版社,20055谭浩强编,C语言程序设计教程,高等教育出版社,1998年出版审查意见指导教师签字:教研室主任签字: 年 月 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 需求分析现在的校园都比较大,为校园设一个校园导游图非常有必要,以方便老师、学生还有外来人员很清晰的认识学校的情况。用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。游客通过终端可询问: (1)从某一景点到另一景点的最短路径。(2)游客从公园进入,选取一条最佳路线。(3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。2 概要设计void menu();/景点名、操作提示。void creat(Matrix_Graph *G);/图的建立。void path(Matrix_Graph G,int s,int e);/两景点之间最短的路径,s表示起始景点,e/最终到达景点。#define Max 100#define N 9void menu()printf(1-南大门n); printf(2-老师办公室n); printf(3-图书馆n); printf(4-一号教学楼n); printf(5-宿舍n);printf(6-食堂n);printf(7-北大门n);printf(8-44号教学楼n);printf(9-学校广场n);printf(n菜单:n);printf(请选择位置对应数字项目:n);printf(1-介绍n);printf(2-路径n);printf(0-退出n); case 1:fp=fopen(g1.txt,r);break; case 2:fp=fopen(g2.txt,r);break; case 3:fp=fopen(g3.txt,r);break; case 4:fp=fopen(g4.txt,r);break; case 5:fp=fopen(g5.txt,r);break; case 6:fp=fopen(g6.txt,r);break; case 7:fp=fopen(g7.txt,r);break; case 8:fp=fopen(g8.txt,r);break; case 9:fp=fopen(g9.txt,r);break;3 运行环境(1)硬件:PC机(2)操作系统:Windows 2000/XP/2003(3)编译环境:Visual C+ 6.04 开发工具和编程语言开发工具为VISCALL C+;语言是C语言5 详细设计#include#include#include#include#include#define Max 100#define N 9/景点个数。typedef int AdjMatrixMaxMax;typedef structint vexsMax; AdjMatrix arcs;Matrix_Graph;/图的矩阵表示法。void menu();/景点名、操作提示。void creat(Matrix_Graph *G);/图的建立。void path(Matrix_Graph G,int s,int e);/两景点之间最短的路径,s表示起始景点,e/最终到达景点。#define Max 100#define N 9void menu()printf(1-南大门n); printf(2-老师办公室n); printf(3-图书馆n); printf(4-一号教学楼n); printf(5-宿舍n);printf(6-食堂n);printf(7-北大门n);printf(8-44号教学楼n);printf(9-学校广场n);printf(n菜单:n);printf(请选择位置对应数字项目:n);printf(1-介绍n);printf(2-路径n);printf(0-退出n);void creat(Matrix_Graph *G)int i,j;for(i=1;ivexsi=i;/初始化,0号位不用。for(i=1;i=N;i+) for(j=1;jarcsij=0;/初始值为0。G-arcs12=2;/表示景点一到景点二的距离是2。G-arcs21=2;G-arcs23=7;G-arcs24=4;G-arcs32=7;G-arcs39=5;G-arcs42=4;G-arcs45=5;G-arcs49=7;G-arcs54=5;G-arcs56=6;G-arcs58=8;G-arcs65=6;G-arcs67=5;G-arcs76=5;G-arcs78=6;G-arcs85=8;G-arcs87=6;G-arcs89=10;G-arcs93=5;G-arcs94=7;G-arcs98=10;for(i=1;i=N;i+) for(j=1;jarcsij=0) G-arcsij=Max;/没有被重新赋值的,表示两景点之间/没有路,用Max表示无穷大。void path(Matrix_Graph G,int s,int e)int i,j,u,c=1,t,v;int rN+1N+1;/用来存放路径上的景点。int TN,flagN,dN;for(i=0;i=N;i+) for(j=0;j=N;j+) rij=0;/初始值为0。for(i=1;i=N;i+) Ti=-1;/初始值为-1。flagi=1;/初始值为1。di=Max;/路径长度初始值为无穷大,用Max表示。 flags=0;/修改标识。while(c=N)t=Max;for(i=1;i=N;i+)if(flagi&G.arcssit) t=G.arcssi;v=i;rv1=v;for(i=1;i=c;i+)for(j=1;j=N;j+) if(flagj&di+G.arcsTij(%d),rej);j+;/显示路径。 printf(nn);void information(int i)char aMax; FILE *fp;switch(i)/打开景点的对应文本文件。 case 1:fp=fopen(g1.txt,r);break; case 2:fp=fopen(g2.txt,r);break; case 3:fp=fopen(g3.txt,r);break; case 4:fp=fopen(g4.txt,r);break; case 5:fp=fopen(g5.txt,r);break; case 6:fp=fopen(g6.txt,r);break; case 7:fp=fopen(g7.txt,r);break; case 8:fp=fopen(g8.txt,r);break; case 9:fp=fopen(g9.txt,r);break;if(fp=NULL) printf(未找到该地点的说明文件n); exit(0);/错误提示。printf(该位置的介绍信息如下:n);while(feof(fp)=0) fgets(a,Max,fp);printf(%s,a);/显示文本内容。fclose(fp);/关闭文本。printf(nnn);void main() Matrix_Graph G; int i,j,choose=-1; creat(&G);while(choose!=0) menu(); scanf(%d,&choose); switch(choose) case 1:printf(想听哪里的介绍?n); scanf(%d,&i); information(i); break; case 2:printf(2你目前的位置是:n); scanf(%d,&i); printf(2你的目的地是:n); scanf(%d,&j); path(G,i,j); creat(&G); break; case 0:break; getchar();6 调试分析程序在编译连接的时候总是会出现一些不可见的问题,而且很难找到,这就需要我们自己去好好学习,多看代码,多写代码,尽量让这些错误减小到最小。为我们以后的更好的学习C语言铺平道路,用的时候要细心。下面是我调试程序遇到的一些问题:在调试的时候,在对校园各景点介绍的时候,各景点的介绍并没有显示出来,着时候我想到了需要建立文本文档,把那九个景点的的介绍都写出来,最后才天使成功了。所以在编程序的时候一定要细心,以后我会很认真的。7 测试结果参考文献1严蔚敏,吴伟民编著数据结构(C语言版),清华大学出版社,20082 谭浩强,C程序设计(第二版),北京:清华大学出版社,19993谭浩强,C程序设计(第三版),清华大学出版社,20054谭浩强主编,C程序设计题解与上机指导(第三版),清华大学出版社,20055谭浩强编,C语言程序设计教程,高等教育出版社,1998年出版心得体会通过这次数据结构课程设计我学会了很多,是我对C语言的学习有了更深的认识,还有对数据结构这个课的第七章内容图的学习有了熟练的掌握,自己努力的很多,终于把校园导游图做出来了,心里非常的高兴,虽然这个导游图的功能不是特别的优秀,但是我觉得还好,做课程设计对我来说是一个挑战,所以我很珍惜这次数据结构的课程设计的机会。整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于校园导游图,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名计算机应用技术专业的学生,这次课程设计是很有意义的。在以后的学习中我还要学习数据结构,现在我要学的还有很多,我一定会非常努力的! 校园导游图源代码#include#include#include#include#include#define Max 100#define N 9/景点个数。typedef int AdjMatrixMaxMax;typedef structint vexsMax; AdjMatrix arcs;Matrix_Graph;/图的矩阵表示法。void menu();/景点名、操作提示。void creat(Matrix_Graph *G);/图的建立。void path(Matrix_Graph G,int s,int e);/两景点之间最短的路径,s表示起始景点,e/最终到达景点。#define Max 100#define N 9void menu()printf(1-南大门n); printf(2-老师办公室n); printf(3-图书馆n); printf(4-一号教学楼n); printf(5-宿舍n);printf(6-食堂n);printf(7-北大门n);printf(8-44号教学楼n);printf(9-学校广场n);printf(n菜单:n);printf(请选择位置对应数字项目:n);printf(1-介绍n);printf(2-路径n);printf(0-退出n);void creat(Matrix_Graph *G)int i,j;for(i=1;ivexsi=i;/初始化,0号位不用。for(i=1;i=N;i+) for(j=1;jarcsij=0;/初始值为0。G-arcs12=2;/表示景点一到景点二的距离是2。G-arcs21=2;G-arcs23=7;G-arcs24=4;G-arcs32=7;G-arcs39=5;G-arcs42=4;G-arcs45=5;G-arcs49=7;G-arcs54=5;G-arcs56=6;G-arcs58=8;G-arcs65=6;G-arcs67=5;G-arcs76=5;G-arcs78=6;G-arcs85=8;G-arcs87=6;G-arcs89=10;G-arcs93=5;G-arcs94=7;G-arcs98=10;for(i=1;i=N;i+) for(j=1;jarcsij=0) G-arcsij=Max;/没有被重新赋值的,表示两景点之间/没有路,用Max表示无穷大。void path(Matrix_Graph G,int s,int e)int i,j,u,c=1,t,v;int rN+1N+1;/用来存放路径上的景点。int TN,flagN,dN;for(i=0;i=N;i+) for(j=0;j=N;j+) rij=0;/初始值为0。for(i=1;i=N;i+) Ti=-1;/初始值为-1。flagi=1;/初始值为1。di=Max;/路径长度初始值为无穷大,用Max表示。 flags=0;/修改标识。while(c=N)t=Max;for(i=1;i=N;i+)if(flagi&G.arcssit) t=G.arcssi;v=i;rv1=v;for(i=1;i=c;i+)for(j=1;j=N;j+) if(flagj&di+G.arcsTij(%d),rej);j+;/显示路径。 printf(nn);void information(int i)char aMax; FILE *fp;switch(i)/打开景点的对应文本文件。 case 1:fp=fopen(g1.txt,r);break; case 2:f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东官洲街道环监所招聘模拟试卷及答案详解(网校专用)
- 2025黑龙江齐齐哈尔市红十字中心血站人员招聘1人模拟试卷及答案详解1套
- 2025安徽蚌埠市怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)15人模拟试卷及答案详解(名师系列)
- 2025内蒙古呼和浩特市新城区中医蒙医医院(新城区保合少镇卫生院)招聘1人考前自测高频考点模拟试题完整答案详解
- 2025春季中国东航北京分公司校园招聘考前自测高频考点模拟试题含答案详解
- 2025年山东出版集团有限公司山东出版传媒股份有限公司招聘(192名)考前自测高频考点模拟试题及答案详解1套
- 2025年返聘人员重新签订的劳动合同
- 2025股权分配合同协议书范本
- 2025广东广州市中山大学孙逸仙纪念医院超声科医教研岗位招聘考前自测高频考点模拟试题及1套完整答案详解
- 2025江苏南京大学医院事业编制和校聘岗位招聘考前自测高频考点模拟试题及完整答案详解1套
- 2025影视演出经纪居间合同正规范本
- 对外投资管理知识培训
- 《早读是需要激情的!》主题班会课件
- 道闸操作安全培训课件
- 普惠金融赋能乡村振兴的实践探索和政策建议-福建省安溪县为例
- 2025年质量月知识竞赛题库(附答案)
- 酒店电气使用安全培训课件
- 生猪订购合同书范本3篇
- 耕地占用税培训课件
- 110kV变电站及110kV输电线路运维投标技术方案
- 防错验证报告
评论
0/150
提交评论