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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

石家庄铁道大学校园导游.docx

1、石家庄铁道大学校园导游石家庄铁道大学数据结构实习报告-基于C语言的校园导游程序设计院系:信息科学与技术学院班级:计XX班姓名:Mr.yan学号: 指导教师:摘要在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。在许多

2、类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。算法的设计取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的存储结构实质上是它的逻辑结构在计算机存储器中的实现,为了全面的反映一个数据的逻辑结构,它在存储器中的映象包括两方面内容,即数据元素之间的信息和数据元素之间的关系。不同数据结构有其相应的若干运算。数据的运算是

3、在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新和排序等。数据的运算是数据结构的一个重要方面,讨论任一种数据结构时都离不开开对该结构上的数据运算及其实现算法的讨论。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。一、 系统功能需求 1.1 功能需求编写一个校园导游系统程序,要求实现以下功能:1、 进入选择菜单界面,允许游客选择所需要的功能。2、 有浏览校园全景的功能,查看学校主要景点地图。3、 有查询主要经典信息的功能,可以显示所查询经典的详细信息。4、 有指导游客进行到某

4、景点的最短路径功能,包括详细路线以及具体距离。1.2 设计思想 基于C语言,以VC+6.0环境为基础,运用迪杰斯特拉算法求最短路径,运用C+输出命令画出地图,列出矩阵,达到所需求的功能。1.3 功能流程图 二、 数据结构及中心代码算法说明1、 地图部分:用C语言中的输出命令和制表符画出2、 查询经典信息部分:由于个人水平有限,仅用选择语句switch case来一一实现,未能用矩阵方式实现成功,部分程序代码如下switch (kas) case 1: printf(n 大门口,学校的正门,气派辉煌,车辆出入的地方n); break; case 2: printf(n 第一教学楼,学校里最大的教

5、学楼,是同学们上课以及自习出入最多的地方n); break;3、 查询景点最短路径部分:设定19.19矩阵,G【19】【19】,利用矩阵画出每个经典到相邻景点的距离,32767代表不可达。4、 求最短路径部分:利用迪杰斯特拉算法求出每个经典的最短路径走线以及实际距离。5、 每个函数单独用while语句进行循环,以便游客在某个分程序中多次查询,以“1”为继续,以“0”为返回上级,其中主函数用do while语句和switch case语句结合,实现选段以及“0”退出。部分程序如下 While (flag) printf(输入1继续,输入0退出n); scanf(%d,&flag);DoSwitc

6、h (bianhao)Case 1:Case 0: exit(0);break;while (bianhao=0);注:图中的景点距离大多为臆测,由于设备原因,未能亲测,凭感觉划出路径的距离。三、 系统实现3.1 程序界面总揽1、进入程序界面,如下图所示图2 程序主界面2、地图显示界面总览:图3 校园全景总示3、景点查询界面如图所示图4 景点查询界面显示图4、最短路径查询显示图图5 最短路径界面显示3.2 操作说明进入程序主界面,输入1,进入地图显示系统,显示图如图2所示,地图分为19个景点,路口两个,教学楼4个,宿舍楼2个,实验楼1个,体育馆和操场共3个,小型园林1个,医院1个,办公楼1个,

7、门口1个,餐厅2个。输入2,进入查询系统,显示总景点如下:1:大门口 2:第一教学楼 3:综合食堂 4:六栋 5:九栋 6:基础教学楼 7:超市 8:第九实验楼 9:图书馆 10:体育馆 11:西操场 12:田径场 13:医院 14:东西办公楼 15:第二教学楼 16:三教 17:沁园其中景点详细信息是本人根据两年大学生活所概括,不具有官方权威性。输入2,显示 第一教学楼,学校里最大的教学楼,是同学们上课以及自习出入最多的地方输入 14,显示东西办公楼,是基础教学楼盖成之前学校里最高的楼,是领导们工作的地方景点太多,恕不一一列举。输入0返回主界面输入3,进入程序核心,最短路径查询系统例如,输入

8、1 12,显示路径是:门口 第一教学楼 第二教学楼 第三教学楼 体育馆 西操场 田径场 总路径长度是:210输入1继续,输入0退出四、 总结数据结构是抽象的,通过本次数据结构的课程设计,重阅数据结构书籍,回忆起很多已经遗失的印记。程序功能比较简单,但都是花费大量时间实现的,程序采用矩阵划出距离,用迪杰斯特拉算法算出各景点之间的最短线路及距离。设计过程中遇到不少问题,例如主程序的退出,各函数的循环以及地图的规划等,不过都在同学们的帮助下一一完成,深表欣慰。实践是检验真理的唯一标准,通过本次设计,进一步把实践和理论结合起来,通过小程序检验自己学习的程度。 2010年9月附录1 程序代码#inclu

9、de #define FALSE 0#define TURE 1int G1919=32767,20,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,20,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,130,32737,20,32767,10,32767,32767,32767,40,32767,32767,32767,32767

10、,32767,32767,32767,32767,32767,32767,32737,90,32767,32767,32767,32767,32767,40,32767,140,180,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,140,32767,32767,32767,32767,32767,32767,32767,32767,32767,100,32767,32767,32767,32767,32767,32767,32767,32767,1

11、80,32767,32767,32767,32767,100,32767,32767,32767,32767,40,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,80,40,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,140,30,32767,32767,32767,32767,32767,3

12、2767,32767,32767,32767,32767,32767,100,32767,32767,32767,60,32767,32767,30,32767,32767,32767,32767,32767,30,32767,32767,32767,32767,32767,32767,32767,32767,60,32767,40,32767,32767,32767,32767,32767,32767,30,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,40,32767,80,32767,32767,32767,327

13、67,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,140,32767,32767,80,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,80,30,30,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,100,40,40,32767,32767,32767,32767,32767,3

14、2767,32767,32767,32767,32767,32767,32767,32767,130,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,40,32767,32767,32767,32767,32767,90,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,40,32767,32767,32767,32767,32767,20,32767,32767,32767,32767,32767,327

15、67,32767,32767,32767,32767,32767,32767,32767,32767,32767,20,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,30,32767,32767,32767,32767,32767,32767,20,32767,40,32767,10,32767,32767,32767,32767,32767,32767,30,32767,32767,32767,32767,32767,32767,32767,32767,40,32767;void map()printf( 田径场140

16、m第九实验楼 九栋宿舍楼n);printf( 30m 100m 140mn);printf( n);printf( 80m 路口超市路口 n);printf( 30m 80m 40m 40m n);printf( n);printf(西操场体育馆图书馆基础教学楼六栋n);printf( 40m 60m 100m 180m n);printf( n);printf( 30m 30m 40mn);printf( n);printf( 第三教学楼40m沁园 n);printf( 20m 10m 综合餐厅n);printf( n);printf( 第二教学楼第一教学楼130m医院40m东西办90mn)

17、;printf( 20m n);printf( 20m n);printf( n);printf( 大门口nn); void map1() int mm=1; while (mm) map (); printf(输入0退出n); scanf(%d,&mm); struct placeint ordernum;char name12;site19=0,门口,1,第一教学楼,2,综合餐厅,3,六栋,4,九栋,5,基础教学楼,6,超市,7,第九实验楼,8,图书馆,9,体育馆,10,西操场,11,田径场,12,路口1,13,路口2,14,医院,15,东西办公楼,16,第二教学楼,17,第三教学楼,18

18、,沁园 ;int shiyan19;void shortpath(int G1919,int v0,int p1919,int *D) int vexnum=19; int final19; int v,w; int i,min,j; shiyan0=v0; for(v=0;vvexnum;v+)finalv=FALSE;Dv=Gv0v;for(w=0;wvexnum;w+) pvw=FALSE; if(Dv32767) pvv0=TURE; pvv=1; Dv0=0;finalv0=TURE; for(i=1;ivexnum;i+)min=32767;for(w=0;wvexnum;w+)i

19、f(!finalw)if(Dwmin)v=w;min=Dw;finalv=TURE;shiyani=v;for(w=0;wvexnum;w+)if(!finalw&(min+Gvw)Dw)Dw=min+Gvw;for(j=0;j19;j+)pwj=pvj;pww=1; void chaxun() int kas; while (kas!=0) printf(nnn-*-*-*-*-*-*-n); printf( * 1:大门口 2:第一教学楼 3:综合食堂 4:六栋 5:九栋 6:基础教学楼 *n); printf( * 7:超市 8:第九实验楼 9:图书馆 10:体育馆 11:西操场 12:

20、田径场 *n); printf( * 13:医院 14:东西办公楼 15:第二教学楼 16:三教 17:沁园 *n); printf(-*-*-*-*-*-*-n); printf(输入0退出查询界面n); printf(请输入要查询的景点编号:); scanf(%d,&kas); switch (kas) case 1: printf(n 大门口,学校的正门,气派辉煌,车辆出入的地方n); break; case 2: printf(n 第一教学楼,学校里最大的教学楼,是同学们上课以及自习出入最多的地方n); break; case 3: printf(n 综合餐厅,比较正规的餐厅,里面有许

21、多可口的饭菜n); break; case 4: printf(n 六栋女生宿舍楼,设施比较简陋,条件比较艰苦n); break; case 5: printf(n 九栋男生宿舍楼,外表开起来壮观,里面设施一般,条件艰苦n); break; case 6: printf(n 基础教学楼,正在筹建n); break; case 7: printf(n 超市,学校的小超市,里面有大部分日常所需用品n); break; case 8: printf(n 第九实验楼,计算机系的实验楼,也是全校同学上机的圣地n); break; case 9: printf(n 图书馆,藏书百万,是全校学生的精神餐厅n

22、); break; case 10: printf(n 体育馆,正规的体院馆,一般不对外开放n); break; case 11: printf(n 西操场,有篮球场轮滑场等场地n); break; case 12: printf(n 田径场,标准400m跑道,是同学们上体育课和锻炼身体的好地方n); break; case 13: printf(n 医院,设备简陋,能看感冒发烧n); break; case 14: printf(n 东西办公楼,是基础教学楼盖成之前学校里最高的楼,是领导们工作的地方n); break; case 15: printf(n 第二教学楼,环境简陋,设施不全,是自

23、习和上课的地方n); break; case 16: printf(n 第三教学楼,多媒体教学楼,设备齐全,是老师们录制精品课的理想胜地n); break; case 17: printf(n 沁园,绿树成荫,芳草凄凄,是早读的好地方n); break; void lujing() int p1919,D19; int i,k,flag=1; int start,end; while (flag) map(); printf(请依次输入起始和终止地点的编号n); scanf(%d %d,&start,&end); start-;end-; shortpath(G,start,p,D); pri

24、ntf(路径是:);for (k=0;k19;k+)for (i=0;i19;i+)if(pendi=1&shiyank=i)printf(%s ,siteshiyank.name); printf(n总路程长度是:%d ,Dend);printf(n); printf(输入1继续,输入0退出n); scanf(%d,&flag); void main() int bianhao; system(color 37); do printf( nn * Mr.yan*n); printf( nn *欢迎进入石家庄铁道大学校园导游系统,服务生Mr.yan很乐意为您服务*n); printf( *请按

25、照您的需求输入以下服务的编码,并摁回车键确认*n);printf(-*-*-*-*-*-*-n); printf(* 1.石家庄铁道大学校园地图浏览 *n); printf(* 2.石家庄铁道大学各景点信息查询 *n); printf(* 3.石家庄铁道大学各景点间的最短路径及旅行线路 *n); printf(* 0.退出石家庄铁道大学校园导游系统 *n); scanf(%d,&bianhao); switch(bianhao) case 1: map1 (); break; case 2: chaxun(); break;case 3: lujing(); break;case 4: exit (0); break; while(bianhao!=0);附录2 特别鸣谢感谢计算机与信息工程分院提供实践环境;感谢图书馆提供相关资料;感谢刘立嘉老师予以耐心的辅导;感谢同学们给以热心的帮助;感谢各大网站,各大论坛提供帮助及相关代码片段等。参考书籍:C高级编程技术 C函数速查 数据结构(C语言版)参考文献:设计样例之导游程序参考网站:XX百科之数据结构 程序员联合开发网 XX贴吧之数据结构

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

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