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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

校园导游.docx

1、校园导游南通大学数据结构课程设计校园导游系统实验报告学 生 姓 名 所 在 院 系 专 业 学 号 指 导 教 师 南通大学2014年 1 月 12 日前言南通大学坐落于素有“江海明珠”、“历史文化名城”美誉的沿海开放城市江苏省南通市,是江苏省人民政府和交通运输部共建的综合性大学。学校的办学历史最早可追溯到近代著名实业家、教育家张謇先生于1912年创办的私立南通医学专门学校和南通纺织专门学校。2004年,南通医学院、南通工学院、南通师范学院三校合并组建南通大学。经过一个世纪的办学历程,南通大学现已建设成为一所规模结构合理、学科门类齐全、教学质量优秀、办学效益明显的地方综合性大学。 南通大学现有

2、4个校区,占地面积3700余亩,有25个学院和1所大型综合三级甲等附属医院,有全日制在校生3.5万余人,设有94个本科专业,涵盖文学、理学、工学、医学、艺术学、经济学、法学、教育学、历史学、管理学等10个学科门类。学校始终坚持人才培养的中心地位,全面深化教育教学改革。2007年以优秀成绩通过教育部本科教学工作水平评估。学校拥有国家特色专业建设点、江苏省品牌专业、江苏省特色专业,以及国家级教学团队、国家级教学成果奖、国家精品课程、国家精品教材、国家级实验教学示范中心、江苏省高等教育教学成果奖等一批优质教学资源。学校是江苏省首批教学工作先进高校。学校师资力量雄厚,现有教职工3000多人,教学科研人

3、员近2200人,其中博士、硕士生导师700余人,拥有国家有突出贡献的中青年专家、国家杰出青年科学基金获得者、首届江海杰出英才奖获得者、享受国务院特殊津贴人员、教育部优秀骨干教师、江苏省有突出贡献的中青年专家、省“333”工程培养对象、省高校“青蓝工程”培养对象等各类杰出人才。 学校广泛开展国际交流与合作,与英国、美国、澳大利亚、日本、香港等国家和地区的40多所高校和科研院所建立了友好合作关系,开展多个国际交流项目。 学校是全国精神文明建设先进单位,全国精神文明建设典型“莫文隋”精神的发源地,江苏省思想政治工作优秀单位,江苏省文明单位标兵,江苏省文明学校,全国普通高等学校毕业生就业工作先进集体和

4、江苏省研究生招生管理工作优秀单位。校党委被评为“江苏省高校先进基层党组织”,校党校获得“江苏省红旗基层党校”称号。面对新的机遇和挑战,学校在跨越发展、协调发展、和谐发展之路上奋勇前行,加快推进从教学型大学向教学研究型大学的转变,立足南通,服务江苏,面向全国,逐步走向世界,积极为科技进步、经济建设和社会发展提供强有力的人才支持、智力支撑和知识贡献,为建设“有特色、高水平的地方综合性大学”而努力奋斗!随着知名度的不断提升,越来越多的人希望了解南通大学,因此非常需要一个导游系统来直观地介绍南通大学。因此我就针对南通大学主校区的主要景点,进行了本次课程设计,利用校园导游系统直观地介绍南通大学主校区。

5、编者目录一、课程设计目的 1二、问题描述 1三、设计要求 (1)基本要求 1 (2)较高要求 1四、思想分析 (1)定义数据类型 2 (2)主要操作函数 2五、详细设计 2六、总结与体会5附1:源代码6附2:调试结果13附3:南通大学主校区平面图16一、课程设计目的1.训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题的能力。 2.初步掌握程序开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和程序开发一般规范进行程序开发,巩固、深化学生的理论知识,提高编程

6、水平,并在此过程中培养他们严谨的科学态度和良好的工作与学习作风。二、问题描述 校园占地几千亩,生活设施分布较散;校园内景色优美,景点甚多。在校园内移动,因时间、交通工具和用户兴趣等原因,需要选择线路。本设计的主要任务是为在南通大学新校区内生活、购物、参观的人们提供行走路线查询、选择、景点介绍的帮助。需实现的基本功能如下。(1)景点信息的查询。(2)邻接景点信息的查询。(3)给出到某个景点的最佳路线。(4)给出到所有景点的最佳路线。(5)修改景点信息。三、设计要求(1)基本要求设计校园游览图,景点不少于6个。设计全景图的显示方式。设计图的存储结构。文件读入或键盘方式输入图的顶点信息和边信息,在内

7、存中创建图。一旦创建完地图,以文件形式保存,以免重复创建。实现上述基本功能。设计足够多的测试用例。(2)较高要求为管理员提供图的编辑功能:增、删景点;增、删道路;修改已有信息等。提供任意场所的问路查询功能,即任意两个景点之间的所有路径。根据该软件用途,增加其他功能。校园导游图的仿真界面。四、思想分析1定义数据类型:(1)包含景点序号(num)、景点名称(view)、简介(info)等;(2)定义无向网,实际情况每两个不相同的景点间均有权值;2主要操作函数:(1) ArcCell();权值,弧的相关信息;(2) VertexType(); 景点序号、景点名称、景点简介;(3) MGraph();

8、顶点表,两个地点的距离,顶点数与边数;(4)ShortestPath();用Dijkstra算法求最短路径,查询两景点间最短路径;(5)Menu();主菜单;(6)Main(); 主函数;(7)output(); 输出函数;五、详细设计(1)权值,弧的相关信息 struct ArcCell int adj; char *info; ;(2)景点序号、景点名称、景点简介struct VertexType int number; char *view; char *info; ;(3)顶点表,两个地点的距离,顶点数与边数struct MGraph VertexType vexNUM; ArcCel

9、l arcsNUMNUM; int vexnum,arcnum; ;(4)用Dijkstra算法求最短路径,查询两景点间最短路径void ShortestPath(int num) int v,w,i,t; int finalNUM; int min; for(v=1;vNUM;v+) finalv=0; Dv=G.arcsnumv.adj; for(w=1;wNUM;w+) Pvw=0; if(Dv32767) Pvnum=1; Pvv=1; Dnum=0; finalnum=1; for(i=1;iNUM;+i) min=Max; for(w=1;wNUM;+w) if(!finalw)

10、if(Dwmin) v=w; min=Dw; finalv=1; for(w=1;wNUM;+w) if(!finalw&(min+G.arcsvw.adj)Dw) Dw=min+G.arcsvw.adj; for(t=0;tNUM;t+) Pwt=Pvt; Pww=1; (5)主菜单char Menu() char c; int flag; do flag=1; cout * n; cout 欢迎使用南通大学导航图系统n; cout 1.景点信息的查询n; cout 2.邻接景点信息查询n; cout 3.给出到某个景点的最佳路线n; cout 4.给出到所有景点的最佳路线n; cout 5

11、.修改景点信息n; cout e.退出n; cout * n; coutc; if(c=1|c=2|c=3|c=4|c=5|c=e) flag=0; while(flag); return c;(6)输出函数void output(int view1,int view2) int a,b,c,d,q=0; a=view2; if(a!=view1) coutG.vexview1.viewG.vexview2.viewn 最短距离为 Dat G.vexview1.view; d=view1; for(c=0;cNUM;+c) gate:; Paview1=0; for(b=0;bNUM;b+)

12、if(G.arcsdb.adj32767&Pab) cout走G.vexb.view; q=q+1; Pab=0; d=b; if(q%8=0) coutn; goto gate; coutn; 六、总结与体会 经过了几天的课程设计,我对数据结构程序设计有了全新的认识。尤其是当拿到一个不小的任务时,如何去分析,先干什么,接着干什么,最后干什么,有了比较明确的思路。通过本次课程设计,我觉得熟练掌握所学的算法对于编程解决实际问题非常有效。我们应该在平时多用我们所学的数据结构知识编写程序,尝试解决实际的问题。 选定一个项目后,我们应该先对这个项目进行概要的分析、设计,分析出这个程序是干什么用的,应该

13、实现什么功能,这些功能应该包含哪些函数,函数之间应该是怎样的调用关系,比如说我做的“南通大学导游”系统,它就是一个为人们提供南通大学相关信息的软件,它包括南通大学主校区主要景点的名称、简介,能够查询任意两个景点间的最短距离,为大家提供更便捷的服务,为人们规划多条路线供选择,可以让管理员自己对景点进行动态添加。进行这些是做项目时首先应该考虑的,如果概要设计做不好,那下面的其他设计也就很难做好。概要设计做好后,我们就要开始做详细设计,详细设计就是将做好的概要设计进行完善,将每个函数要实现的功能用伪代码写出来,或者是用流程图画出来,因为伪代码更容易转换为C+源代码,因此我采用伪代码的方式进行详细设计

14、,详细设计做好后,我们就能基本上知道每个程序应该如何实现它自身的功能,写源代码是也就不会那么盲目。写源代码将详细设计转化为C+代码的过程,上面的详细设计做好后,我们只需在其基础上将一些简单的或者是用汉语代替的语句用C+语句写出来,再将一些语法错误改过来,并将概要设计和详细设计时未考虑到的东西在C+语句中完善,最终形成一个可执行的C+文件。刚开始的时候,我根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到

15、了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。写完程序后并不是意味着项目结束,还有一件很重要的步骤就是调试,也就是将自己写的软件从头到尾将每个功能试用一下,如果运行的结果与预期一样,那程序通过测试,如果结果与预期的不一样,那说明程序还有问题,还需要继续改。这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下

16、功夫很多东西都是可以完成的。数据结构这门课程更加注重设计灵活、巧妙的算法,提高程序运行效率,这对我逻辑思维能力的提高有相当大的帮助。虽然这次课程设计还算圆满完成,但我在以后的学习中也决不会放下数据结构,而是经常回顾和温习,并多从生活中寻找和发现问题,进而尝试用数据结构的知识设计算法,并进行简单的实现。相信这样的积累过程对我今后的学习生活大有帮助,让我受益终生。 最后,再次衷心感谢丁卫平老师在本次课程设计中对我的悉心指导!附1(源代码):#includeusing namespace std;#define Max 10000#define NUM 12struct ArcCell int ad

17、j; /权值 char *info; /该弧的相关信息;struct VertexType int number; /景点序号 char *view; /景点名称 char *info; /景点简介;struct MGraph VertexType vexNUM; /顶点表 ArcCell arcsNUMNUM; /两个地点的距离 int vexnum,arcnum; / 顶点数与边数;MGraph G;int PNUMNUM;long int DNUM;int x13=0;void CreateUDN(int v,int a);void pingmu();void ShortestPath(

18、int num); /两个地点最短路径void output(int view1,int view2);char Menu();void NextValue(int);void main() / 主函数 int v0,v1,v2,v3,n,j; char ck1,ck2; char char110,char210; CreateUDN(NUM,12); do ck1=Menu(); switch(ck1) case 1: int i; cout # n; cout 南通大学景点概况 tn; cout 景点序号t 景点名称t景点简介endl; for(i=1;iNUM;i+) cout itG.

19、vexi.viewtG.vexi.infon; cout # n; cout 请按回车键继续.n; getchar(); getchar(); break; case 2: cout该景点序号为:v3; n=v3; cout其邻接景点有:n; for(j=1;j12;j+) if(G.arcsnj.adj=1200) coutG.vexj.numbertG.vexj.viewtG.vexj.infon; coutn; cout 请按回车键继续.n; getchar(); getchar(); break; case 3: coutv0; while(v011|v01) cout 输入的出发地序

20、号错误v0 errorn; coutv0; coutv1; while(v111|v11) cout 输入的目的地序号错误v1 errorn; coutv1; ShortestPath(v0); output(v0,v1); cout 请按回车键继续.n; getchar(); getchar(); break; case 4: coutv0; while(v011|v01) cout 输入的出发地序号错误v0 errorn; coutv0; ShortestPath(v0); for(i=1;i12;i+) output(v0,i); cout 请按回车键继续.n; getchar(); g

21、etchar(); break; case 5: cout要修改的景点的景点序号v2; cout要修改的信息是:1.景点名称 2.景点简介ck2; switch(ck2) case 1: cout输入新的景点名称:char1; G.vexv2.view=char1; break; case 2: cout输入新的景点简介:char2; G.vexv2.info=char2; break; ; cout 请按回车键继续.n; getchar(); getchar(); break; ; while(ck1!=e);char Menu() / 主菜单 char c; int flag; do fl

22、ag=1; cout * n; cout 欢迎使用南通大学导航图系统n; cout 1.景点信息的查询n; cout 2.邻接景点信息查询n; cout 3.给出到某个景点的最佳路线n; cout 4.给出到所有景点的最佳路线n; cout 5.修改景点信息n; cout e.退出n; cout * n; coutc; if(c=1|c=2|c=3|c=4|c=5|c=e) flag=0; while(flag); return c;void CreateUDN(int v,int a) / 创建图的函数 int i,j; G.vexnum=v; G.arcnum=a; for(i=1;iG.

23、vexnum;+i) G.vexi.number=i; G.vex0.view=各个景点名称; G.vex0.info=各个景点简介; G.vex1.view=西门; G.vex1.info= 可乘301,616,35,48路等公交车; G.vex2.view=北门 ; G.vex2.info=可乘301路,35路公交车; G.vex3.view=综合专业楼群 ; G.vex3.info=教学楼10#-12#楼,纺化楼; G.vex4.view=西操场 ; G.vex4.info=足球、篮球、排球场,运动场; G.vex5.view=东操场 ; G.vex5.info=足球场、篮球场、排球场、网球场; G.vex6.view=方肇周楼群 ; G.vex6.info=教学楼1#-5#楼; G.vex7.view=逸夫楼群 ; G.vex7.info=教学楼6#-9#楼; G.vex8.view=一食堂 ; G.vex8.info=学校一号食堂; G.vex9.view=二食堂 ; G.vex9.info=学校二号食堂,有二号超市; G.vex10.view

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

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