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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构校园导游咨询系统课程设计报告及课程总结.doc

1、 姓 名: 班 级: 学 号: 指导教师: 2012年12月目录1、需求分析11.1 系统简介11.2 系统功能模块介绍12、概要设计22.1 系统功能结构图22.2 系统流程图22.3 主要函数概要设计32.3.1 主函数概要设计32.3.2 初始化图函数InitGraph()42.3.4 查询景点信息函数设计SearchGraph()42.3.5 显示图中信息函数设计ShowGraph()42.3.6 弗洛伊德算法函数设计Floyd()53、详细设计53.1 主函数详细设计53.2初始化图函数详细设计InitGraph()63.3查询景点信息函数详细设计SearchGraph()73.4

2、弗洛伊德算法函数详细设计Floyd()84、调试分析94.1 显示主界面函数测试94.2 查找两景点间最短路径测试104.3 查看景点信息测试115.课程设计总结126、附录13181、需求分析1.1 系统简介随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言,基于数据结构中图的相关算法开发了“江西农业大学校园咨询系统”。开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的

3、路径具有较大的可信性。本系统界面友好,提示信息充分,在实际使用过程中运行良好。1.2 系统功能模块介绍本系统主要分为以下三大功能模块:1、查询两景点最短路径:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的景点编号,系统将提示错误并要求用户再次输入。若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方;2、查询景点信息:用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入想要查询的景点的编号,回车后系统将在已存储的景点中进行匹配,若该景点信息尚未存储则将提示错误;若

4、找到对应信息则系统将输出景点信息,显示于幕上方;3、退出系统:用户在使用完本系统后,选择此功能模块,系统提示“欢迎再次使用”后,按任意键系统将自动退出。2、概要设计2.1 系统功能结构图2.2 系统流程图开始创建无向图写入信息至无向图中Case 1Case 2Case 3查询路径查询景点息TTFFTendF退出系统2.3 主要函数概要设计2.3.1 主函数概要设计主函数首先是调用初始化图函数InitGraph()函数创建一个图,而后调用显示主界面函数显示一个可视化主界面,内容包含本系统LOGO以及景点信息及操作编号的提示信息。之后,当用户成功输入操作编号后,使用一个switch()函数,判断用

5、户所需操作,匹配成功后,调用相关函数实现用户所需功能。2.3.2 初始化图函数InitGraph()InitGraph()函数首先使用MyGraph结构体声明一个用于存储图中信息的结构体,而后定义结构体中的景点数量以及路径数量,然后使用循环为景点信息和路径长度赋值,其中赋值景点信息时使用strcpy()函数将字符串复制给G.siteArrayi.siteName以及G.siteArrayi.siteInfo两个数组。2.3.3 显示主界面函数设计MainGraph()MainGraph()函数主要用于显示主界面,函数中设计了本系统LOGO,同时,界面还提示了景点名称及其对应编号。主界面下方以列

6、表方式提示用户系统可进行的操作及其对应编号,最后提示用户进行输入。2.3.4 查询景点信息函数设计SearchGraph()该函数首先定义了一个变量k(用于接收用户输入的查询编号)和一个标记位flag(初始值设为1),而后使用while()循环,判断条件为flag=1,当输入编号不合法时提示错误,当输入合法时标记位flag置为0,此时跳出循环,调用MyGraph结构体对应编号的景点信息,以列表方式输出。2.3.5 显示图中信息函数设计ShowGraph() ShowGraph()函数主要功能为用循环将存储于图中的景点信息以列表方式输出,方便用户对应着进行输入,同时提示用户进行输入。2.3.6

7、弗洛伊德算法函数设计Floyd()本算法在设计时参考了数据结构C语言版一书中有关Floyd算法的介绍,同时借鉴了如今网上流行的设计方式。之所以选择本算法来实现计算最短路径,原因在于本算法容易理解,可以算出任意两个节点之间的最短距离,代码编写简单。但是,本算法缺点在于时间复杂度过高,不适合用于计算大量数据。Floyd算法首先将两景点间路径长度数据存储于数组 Dvw中,而后使用一个三维数组用于存放最短路径所经过的顶点,接下来使用三重循环判断两景点之间直接路径是否大于间接路径,若大于,则将三维数组中存放的顶点信息更改为简介路径所经过的顶点信息。以上部分完成后,当用于标记输入数据是否合法的flag=1

8、时,输出错误信息,提示用户重新输入,当输入数据合法时,输出以上程序得到结果。3、详细设计3.1 主函数详细设计#define InfiniteNum 10000 /定义一个无穷大数#define MaxInfoNum 100 /定义景点数据最大容量#include#include#include#includeMyGraph.h /调用头文件void main(void) MGraph g; /创 建 图int i;g = InitGraph(); /初始化校园地图MainGraph(&g); /调用显示主界面函数scanf(%d,&i);while(i!=3)switch(i) case 1

9、:ShowGraph(&g);Floyd(&g);MainGraph(&g);break; case 2:ShowGraph(&g);SearchGraph(&g);MainGraph(&g);break;case 3:exit(0);break;default:break;scanf(%d,&i); printf(欢迎下次继续使用 !nn);3.2初始化图函数详细设计InitGraph()MGraph InitGraph(void) /初始化图中的信息MGraph G;int i,j;G.siteNumber = 6; /景点数量G.pathNumber = 8; /路 径 数量for(i=

10、1;i=G.siteNumber;i+)G.siteArrayi.siteIdentifier = i; /对景点进行对应编号strcpy(G.siteArray1.siteName,一教);strcpy(G.siteArray1.siteInfo,最有历史的教学楼); strcpy(G.siteArray2.siteName,软件学院); strcpy(G.siteArray2.siteInfo,规模庞大,师资雄厚,全校第二大院); strcpy(G.siteArray3.siteName,老图书馆); strcpy(G.siteArray3.siteInfo,说实话,太破了!); strc

11、py(G.siteArray4.siteName,校门); strcpy(G.siteArray4.siteInfo,有点小家子气,规模太小); strcpy(G.siteArray5.siteName,新图书馆); strcpy(G.siteArray5.siteInfo,邵逸夫先生捐赠的,设施较为完备,最常去的地方); strcpy(G.siteArray6.siteName,南区食堂); strcpy(G.siteArray6.siteInfo,价格尚算公道,但卫生状况较为堪忧,已经吃出好几次头发了); for(i = 1;i=G.siteNumber;i+) /使用循环对路径进行赋值,

12、对于没有 直 接 路 径 的 ,赋值为无穷大 for(j = 1;j=G.siteNumber;j+)G.pathArrayij.path = InfiniteNum;G.pathArray12.path = 200;G.pathArray13.path = 100;G.pathArray14.path = 400;G.pathArray24.path = 300;G.pathArray45.path = 100;G.pathArray46.path = 500;G.pathArray56.path = 500; for(i = 1;i=G.siteNumber;i+) /所构造的图为无向图,

13、故相反方向路径相同for(j = 1;j=G.siteNumber;j+)G.pathArrayji.path = G.pathArrayij.path; return G;3.3查询景点信息函数详细设计SearchGraph()void SearchGraph(MGraph *G) /用于查询景点信息 ,以列表方式输出int k,flag=1;while(flag)printf( 请输入要查询的景点编号:);scanf(%d,&k);if(kG-siteNumber) /输入景点编号不合法时提示错误printf( 景点编号不存在!请重新输入景点编号:);scanf(%d,&k);if(k0&ksiteNumber) / 输入合法时将 falg 置为 0flag=0;

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

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