数据结构课程设计——校园导游咨询系统

数据结构课程设计——校园导游咨询系统

ID:25253840

大小:248.50 KB

页数:15页

时间:2018-11-19

数据结构课程设计——校园导游咨询系统_第1页
数据结构课程设计——校园导游咨询系统_第2页
数据结构课程设计——校园导游咨询系统_第3页
数据结构课程设计——校园导游咨询系统_第4页
数据结构课程设计——校园导游咨询系统_第5页
资源描述:

《数据结构课程设计——校园导游咨询系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据结构课程设计——校园导游咨询系统1:需求分析:(1)任务:编制一个为来访客人进行最短路径导游的程序(2)要求:从学校的平面上选取n个有代表性的景点,根据用户指定的起点和终点输出相应路径。2:概要设计:(1)1)a)AdjMGraph.h图操作的函数所放的头文件b)AdjMGraphCreate.h图的创建函数所放的头文件c)Dijkstra.h狄克斯特拉函数设计所放的头文件d)SeqList.h存放顺序表的头文件2)SchoolGuide.c文件包括以下三个函数voidSgPrint(AdjMGraphg,intn,in

2、tdistance[],intpath[],intj)函数,其功能是将源点到各个结点的最短距离和最短路径的结果输出;voidSgblueprint()函数,其功能是将校园平面图输出;voidmain(void)函数,主函数,功能是调用测试数据值,显示主菜单,根据用户输入的i进行不同功能操作,随后根据用户输入的ch值进行不同功能操作。(2)该程序所使用的存储结构是顺序存储;(3)流程图:调用函数CreatGraph输入i值输出有关标题和菜单选项的提示信息charchinti,j,n=6,e=9初始化结构体g和rcw,以及数组a

3、,distance和path开始i312清除屏幕清除屏幕调用函数Sgblueprint调用函Sgblueprint输出用户选择起点的提示信息输入j值调用Dijkstra输出是否继续操作的提示信息输出有关景点代码问题提示信息输入ch值调用函数SgPrintch==’y’

4、

5、ch==’Y’TF结束图1-1主函数main()流程图开始初始化i值输出从源结点到其他各结点的最短路径及其距离分别为:输出换行符i=0i

6、th[path[path[i]]]!=-1YN输出g.Vertices.list[path[path[path[i]]]]输出g.Vertices.list[path[path[i]]]输出g.Vertices.list[path[i]]输出当前结点输出右括号,其最短距离为最短距离值;输出换行符i++结束图1-2SgPrint函数流程图3:详细设计:(1)/*顺序表头文件SeqList.h*/typedefstruct{DataTypelist[MaxSize];intsize;}SeqList;voidListInitia

7、te(SeqList*L)/*初始化顺序表L*/{L->size=0;/*定义初始化数据元素个数*/}intListLength(SeqListL)/*返回顺序表L的当前数据元素个数*/{returnL.size;}intListInsert(SeqList*L,inti,DataTypex)/*在顺序表L的第i(0≤i≤size)个位置前插入数据元素值x*//*插入成功返回1,插入失败返回0*/{intj;if(L->size>=MaxSize){printf("顺序表已满无法插入!");return0;}elseif

8、(i<0

9、

10、i>L->size){printf("参数i不合法!");return0;}else{/*为插入做准备*/for(j=L->size;j>i;j--)L->list[j]=L->list[j-1];L->list[i]=x;/*插入x*/L->size++;/*元素个数加1*/return1;}}intListDelete(SeqList*L,inti,DataType*x){/*删除顺序表L中位置为i(0≤i≤size-1)的数据元素并存放到x中*//*删除成功返回1,删除失败返回0*/intj;if(L-

11、>size<=0){printf("顺序表已空无数据元素可删!");return0;}elseif(i<0

12、

13、i>L->size-1){printf("参数i不合法");return0;}else{*x=L->list[i];/*保存删除的元素到x中*//*依次前移*/for(j=i+1;j<=L->size-1;j++)L->list[j-1]=L->list[j];L->size--;return1;}}intListGet(SeqListL,inti,DataType*x)/*取顺序表L中第i个数据元素存于x中,成

14、功返回1.失败返回0*/{if(i<0

15、

16、i>L.size-1){printf("参数i不合法!");return0;}else{*x=L.list[i];return1;}}(2)/*AdjMGraph.h图操作的函数所放的头文件*/#include"Seqlist.h"/*包含顺序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。