《公园导游管理系统》由会员分享,可在线阅读,更多相关《公园导游管理系统(32页珍藏版)》请在人人文库网上搜索。

1、计算机信息工程学院数据结构课程设计报告题 目公园导游系统专 业:计算机科学与技术(软件方向)班 级:学 号:姓 名:指导教师:完成日期:、概要设计41题目的内容与要求4错误!未定义书签。1.1程序模块1.2系统涉及的数据结构.1.2.1程序数据结构1.2.2具体数据类型定义.、详细设计2.1 创建图(FprintLink) 82.2寻找最佳路径(DFSMavers) 92.3 最短路径(ShorPatH 92.4遍历出某一起点到终点的所有路径(Searcallpath) 112.5 导入新文件(LoadnewMap. 12三、 测试分析123.1可行性分析 123.1.1技术可行性 133.1。

2、.2工具可行性 133.1.3经济可行性 133.1.4操作可行性 143.2需求分析 143.2.1 功能需求 143.2.2输入输出的要求 14四、使用说明与执行结果 144.1主界面 144.2游客界面 154.3系统用户界面 15附录(程序清单)1一、概要设计1.题目的内容与要求1.1课题的研究背景、要求和意义现代公园范围的广阔,内容不断的增加,使得公园整个系统变得复杂。使 用电脑对游客进行导游成为发展的趋势,以达到更好的为游客服务的目的。对于公园的游客来说,他们要求:能够浏览整个公园的信息、查询每一个 景点的信息、从任意景点遍历全部的景点、能够查找最短路径。对于系统用户 来说,他们要。

3、求:删除地点、添加地点、添加路径、删除路径、保存修改、导 入文件数据。采用图这么一种数据结构,采用邻接表的存储方式,用一个二维数组来记 录所有的边,为了实现地图的随时更新,采用了静态链表实现对图的接点的添 加,删除。应用文件的读写来进行文件操作。查找最短路径采用迪杰特斯拉算法实现,从任意景点遍历全部的景点采用 深度优先遍历实现。对于界面设计,游客不能进行地图的修改,更换,所以首先要验证身份, 再出现对应的界面。2总体设计程序模块从文件中对出数据(Fprint-Link():通过调用Update(L,g),先将链表L的信 息赋值给邻接数组g中,进行更新。建立无向图,把公园的景点及景点的信息, 连。

4、接起来建立邻接表采用链式加顺式存储。浏览学校的全景(Browser):列出学校的所有的景点。寻找最佳路径(DFSTraverse):输入一个景点,会吧所有都浏览一边,并 找出最佳的路径。最短路径(ShortPath :求出起点和终点的最佳路径,并求出最佳路径的长 度。遍历出某一起点到终点的所有路径(SearchAIIPath):找出所有路径,利用 深度优先遍历删除地点、添加地点、添加路径、删除路径、保存修改、导入文件数据。对应代码函数如下:DeleteAdv(L,g)、InsertAdv(L,g)、InsertEdge() DeleteEdge()SaveMap(g) Loadnewmap(p。

5、,g)b总体结构设计如图1-1所示。图1- 1系统框架图3系统数据结构3.1程序数据结构程序主要用了图和静态链表两种数据结构,采用矩阵来保存图形结构的地 图,用数组来保存遍历经过的结点用以遍历回溯,以及存储最最终路径。图的抽象数据类型:ADT Graph数据对象V: V是具有相同特性的数据元素的集合,称为顶点集数据关系:R=VRVR= |v,w v 且 P(v,w)表示从 v 到 w 的弧,谓词 P (v,w)定义了弧的意义或信息基本操作 P: PrintMap(g)Serach(g)DFSTraverse(g)ShortPath(g) ADT Graph线性链表的抽象数据类型:ADT Lis。

6、t 数据对象:D= ai|ai ElemSe, i=1 , 2,,n,n0 数据关系:R1= |ai-1,ai D,i=2,n 基本操作:DeleteAdv(L,g)InsertAdv(L,g)In sertEdge()DeleteEdge()SaveMap(g)Load newmap(p,g) ADT List o3.2.2具体数据类型定义typedef struct LNodechar n ame30;int num;char in troductio n100;struct LNode *n ext;LNode,*Li nk;typedef struct ArcNodei nt data。

7、;该弧所得指向的顶点的位置ArcNode *n extarc;指向下一条弧的指针ArcNode,*ArcLi nk;typedef struct VNode顶点信息 char n ame30;int num;char in troductio n100;ArcLi nk firstarc; /指向第一条依附该顶点的弧的指针 VNode,AdjListMAX+1;typedef struct ALGraphAdjList vdata;int vexnum,arcnum; 图的顶点数和弧数ALGraph;int EdgeMAXMAX;/用来存放路径的权值int n, e;存放结点数和边数读取文件信。

8、息代码如下:for(i=1;idata=a;p-n extarc=gb.firstarc;gb.firstarc=p;/把 p 插进来q=(ArcL in k)malloc(sizeof(ArcNode); q-data=b;q-n extarc=ga.firstarc;ga.firstarc=q;、详细设计2.1 创建图(Fprint-Link)从文件中读出数据,函数流程图2-1所示ArcLink p,q;初始化链表,邻接表,Eage i=1,j=1,p=q=(ArcLink)malloc(sizeof(ArcNode);图2- 1 Fprint-Link函数流程图2.2寻找最佳路径(DFS。

9、Traverse利用深度优先的思想,遍历图找出一条最佳最佳的的路径,让它遍历所有 景点。利用递归的思想,往下遍历,访问标志位,若访问过在下次就不用访问 若找完一个分支在下次重新遍历,函数流程如图 2-2所示。2.3 最短路径(ShortPath利用迪杰特斯拉算法,求v0到其余顶点的最短路径path,distanee 是用来 存放各路径的权值,借助辅助数组s标志,是否当前顶点属于S(1属于)函数流 程图2-3所示。开始图2- 3寻找最短路径流程图2.4遍历出某一起点到终点的所有路径(SearchAIIPath)利用图的深度优先遍历,利用访问标志位。path记录路径,visited 设访问标志,v。

10、起点,des终点,length,代表的是访问景点的长度。若碰见死 路或者不同的路,则从上一个景点,从新扫描,SearchAIIPath(流程如图2-4所 示。图 2- 4 searchAIIPath() 流程图2.5 导入新文件(Loadnewma)将指定文件导入到邻接表中,再保存到 zheke1.txt中 具体实现如图2-5所示。初始化Link p , 输入文件名file name20Fpri nt-L ink(p,g,file name)SaveMap(g)L=P;图2- 5导入新文件结构示图三、测试分析3.1可行性分析所谓可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够 解决。

11、。这步工作的主要是要进行一次大大压缩简化了的系统分析和设计的过程, 也就是在较高层次上以比较抽象的方式进行系统分析和设计的过程。可行性研 究的最根本任务是对以后的行动方针提出建议,以避免时间、资源、人力和金 钱的浪费,推荐一个较好的解决方案,并且为工程制定一个初步的计划。3.1.1技术可行性查找最短路径以及查询任意两景点之间的所有路径采用迪杰特斯拉算法或 弗洛伊德算法实现。解决这个问题的一个方法是:每次以一个顶点为源点,重 复执行迪杰斯特拉算法n次。这样,便可求得每一对顶点之间的最短路径。总 的执行时间为0(n3)。虽然弗洛伊德算法时间复杂度也是 O (n3),但形式简 单些。从任意景点遍历全。

12、部的景点采用深度优先遍历或广度优先搜索遍历图实现。所谓可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够 解决。这步工作的主要是要进行一次大大压缩简化了的系统分析和设计的过程, 也就是在较高层次上以比较抽象的方式进行系统分析和设计的过程。可行性研 究的最根本任务是对以后的行动方针提出建议,以避免时间、资源、人力和金 钱的浪费,推荐一个较好的解决方案,并且为工程制定一个初步的计划。本系统采用人机操作进行管理,用visual C+ 6.0进行前台设计、系统随机 产生数据,用户通过界面操作,系统自动给予合理分析,由于visual C+ 6.0功能强大、使用的灵活、良好的可扩展性、以及广泛实。

13、际应用,充分说明本系 统在技术方面的可行性。3.1.2工具可行性软件方面:信息时代对于软件的应用已不是人们的难题,人们在日常办公中用的计算 机操作的系统等都属于软件部分。硬件方面:计算机普及到今天,人们对于它的拥有已不少见,它的硬件设备完全能够 满足人们的需求,而价格也能被人们所接受。3.1.3经济可行性线在大多数的公园景点及内容不断的增多和丰富,这也就使得整个公园系 统不得不建立的更大。这也就为人们逛公园造成了很大的不便。人们往往不熟 悉公园,找个东西,或某处带来了极大的不便。往往要花很多时间在这一方面。 然而要是有一个公园导游系统这将给乘客带来极大的方便,使人们一下就能了 解到这个公园的大。

14、致的情况。这是个超小型的性能分析系统,从投入的人力,财力与物力来讲是非常之 小的,只要一台电脑,一台打印机,这个系统就可以搞起来,考虑到学校里有 电脑,现只要购置一台打印机就可以了。从节省人力方面,可以让管理人员从 繁与复杂的工作中解脱出来,做更多的工作,可以给读者提高到更深的一个层 次。3.1.4操作可行性本系统设计清晰,有良好的用户接口,操作简洁,完全可以给用户解决, 并达到操作过程中的直观、方便、实用、安全等要求,因此操作方面具有可行 性。3.2需求分析3.2.1功能需求对于游客,系统功能需求如下:能够浏览整个公园的信息、查询每一个景 点的信息、从任意景点遍历全部的景点、能够查找最短路径。

15、。对于系统后台操作功能需求如下:删除地点、添加地点、添加路径、删除 路径、保存修改、导入文件数据。3.2.2输入输出的要求程序执行是需要有描述地图的文件,并放在相应的位置。文件中开始位置 存放景点个数,图存在多少条边;接着是存放景点序号、名称、相关信息;对 后是存放着各个景点之间的距离矩阵。执行程序先要先要进行选择。修改地图是要验证密码。查找任意两个景点的最短路径时,输入查找最短路径的两个点。运行各个 小过程要求要输出的暂时的结果。四、使用说明与执行结果4.1主界面曲户詐游客):帕血 In图4- 1主界面4.2游客界面-氐、我的文档桌面patk cuiderXDebucXpark puidEr。

16、. exs*公园导游系统*囲有1所旦專的曲全凶目点园点和息記公起点集外一香一统喬岀 =图4- 2游客界面4.3系统用户界面图4- 3 系统用户登录界面图4- 4系统用户界面4.5浏览公园全景简图4- 6详细信息表4- 5涉外公园简图4.6寻找某一起点的最佳路径和指定起点、终点的最短路径理工天堂一一Jtn一一汽车展宽中心砂ih丈门有言乐*fi宗Iz瓊工天堂h.保垩器卒.让m *币|=作輛舟鬥那反.总更工7 锂工若堂nWfr阴二舞勰総芒Lit # 3. | 门A|IU J -汽辛JM忧中心 為 I 1AItl 1- A汽辛展饶申心. 41 j珂弋辛展吃帀心啓白 中吃 n uw+& 克怙协斷惊育中心。

17、一爱寓 輝物馆 华 天 K?tt JEA沖夕卜花 圉 作丟*酒店一-涉夕卜花国 普天涉詞in岡刑夕I花01- 南11 - A1T利帙卡ill L厂亠亠-,巾*即己念 堂、帯悄苗椚节自1门-哲科A哲科检术中心- 訂本商中.呑- 7E屮習圮总:堂一1- - J Jr p J- 3 螯黄宮育 F-蚩壬去 Ly - f,J1J1.1J - d- 垂二中三 nBUHrn -n / ” I n - - - -华禾人河丿上桝卜花西 中心-卜耳门申门哲科上克术中心r|JP节.jrujx 时.町陀匕 r.i* injr.Mv 门 mu:-二二空.lj -t-l4t卜_Anw JF巾 f A-二 -丄替 誉辆 .。

18、5 1.le-l-i- I图4- 7查询最佳路径 图4- 8查询最短路径- -函门-A涉 外花网7华天 大酒JS4.7寻找指定起点、终点的所有路径图4- 9输入两点之间的所有路径4.8 删除,添加结点,保存和导入新地图图4- 10删除结点图4-10 导入新的地图已F 践 球申工二3 zfA在 弩#罗附 录(程序清单)#in clude#in clude#defi ne INT_MAX 10000#defi ne n 10int costnn;/* 边的值 */int shortestnn;/*两点间的最短距离 */int pathnn;/*经过的景点 */void welcome。prin t。

19、f(nprin tf(nprin tf(nprin tf(n prin tf(n system(pause);void Menu()函数的主显示界面 欢迎光临n);凝香公园 nnnnn); 给您最纯净的享受n);Pure as the south polar snow nn); );system(cls); system(color 70);printf(”11n);printf(”1凝香公园导游系统1n);printf(”1n);printf(”n);printT(1in );printf(”11 n);printf(”11:浏览公园全景1 n);printf(”11 n);printf(”。

20、12:最佳游览路线1 n);printf(”主11 n);printf(”13:查看单个景点1 n);printf(”菜11 n);printf(”14:游览线路查询1 n);printf(”单11 n);printf(”5:凝香公园简介1 n);printf(”11 n);printf(” printf(” printf(” printf(” printf(” printf(” printf(nn 请按键选择:); void Browser。 prin tf(n printf(” printf(” printf(” printf(” printf(” printf(” printf(” pr。

21、intf(” printf(” printf(” printf(” printf(” printf(” printf(” printf(” printf(” printf(” printf(” printf(” printf(”6:退出导游系统I n);I n);n);n);n);n);公园全景图 1沁园一II3梨园一II5鼎湖III6聚缘阁III2公园大门II-4春IIIIII紫金大道园II8秋园,IIIII10夏园II9冬园-7凝香园n “);n ”);n ”);n ”);f北n ”);n);n ”);n);n);n);n);n);n);n);n);n);n);n);n);2012 年 7。

22、 月 4 日 n);n);void place()char 乙printf(nnn 【公园简介】 n ”);prin tf(n n凝香园也称正春园”,位于荷泽城东岳程办事处岳楼行政村。nn);printf(始建于元末明初,原为袁姓所有,称“袁家堂”花园。nn);printf(凝香园是我国古代北方八大名园之一,俗称“何家花园”,距今有近1000余年的历史。nn);printf(园中有百多年的刺柏、几百年的腊梅、紫丁香,千年翠兰松和一块假山石。nn”);prin tf(”凝香园”附近的何应瑞墓地古柏成林,苍郁参天。nn);n);prin tf(n 注:本公园和真正的“凝香园”是同名,而非真实园林!。

23、printf(nn n);printf(nnn 请输入任意字符【返回主菜单】n);z=getchar();z=getchar();void go()prin tf(nnnnnn|感谢使用i n );printf(|1 n);printf(|1 n);printf(|1 n);prin tf(|请按任意键退出!1 n);printf(|1 n);printf(|1 n);prin tf(|程序制作:陈明 | n);prin tf(|学号:3100931036 | n);printf(1J nnnnnn);exit(0);void way()char z;printf(nn);printf(”本公。

24、园的最佳全景游览路线为:nn);printf(2公园大门宀1沁园宀3梨园宀5鼎湖宀6聚缘阁宀7凝香园宀4春园宀8秋园t 9冬园t 10夏园t 2公园大门n);printf(全程所需行程:276米!nn”);prin tf(”如需其他路线请返回主菜单进入【浏览路线查询】n);printf(nn n );printf(nnn 请输入任意字符【返回主菜单】n);z=getchar();z=getchar();void in troduce()/*景点介绍*/int a;char z;printf(请输入您想查询的景点编号:”);sca nf(%d,&a);getchar();prin tf(nnnn。

25、);switch(a)case 1:prin tf( 1:case 2:沁园nn查询结果:】 一首沁园春雪让您对眼前的梅花感慨万千。n);break;printf(” 2:case 3:公园大门nn仿古的气势宏伟建筑仿佛置身于100年前。n”);break;printf(” 3:case 4:printf(” 4:case 5:printf(” 5:case 6:printf(” 6:case 7:梨园nn春园nn鼎湖nn聚缘阁nn凝香园nn丛林间嬉戏的小鸟不禁让你回头倾听。n);break;广阔的草地伴着阵阵花香,躺在上面可以仰望南天。圆滑的湖面仿佛一面大鼎将湖水撑起来。来自大江南北的古玩古。

26、画齐聚一堂。n);break;n ”);break;n);break;神奇的南方小筑隐匿在桂花林中。聚香也。printf( 7:case 8:printf( 8:秋园 nnn);break;case 9:printf( 9:冬园 nncase 10:printf( 10:夏园 nndefault:printf( Error:景点编号输入错误!请输入 110的数字编号! nn);break;n ”);break;当你独自一人行走在大片阔叶林里,才能感受自然的气息。冬日恋歌在这里尽情唱响,High起来吧! n);break;荷花池中一抹红,荷塘月色任你赏!n );break;nn);printf(。

27、”void floyed()/*用floyed算法求两个景点的最短路径*/int i,j,k;for(i=1;i(shortestik+shortestkj)/*用path记录从i到j的最短路径上点j的前驱景点的序号*/shortestij=shortestik+shortestkj;pathij=k;pathji=k;void display(i nt i,i nt j)/*打印两个景点的路径及最短距离*/int a,b;a=i; b=j;nn);printf(n 【查询结果:】 printf(路径:);if(shortestij!=INT_MAX)if(i请输入要查询的两个景点的编号sca。

28、 nf(%d %d,&i,&j);if(i n|i n| |j请输入要查询的两个景点的编号sca nf(%d %d,&i,&j);elsefloyed(); display(i,j);printf( 请输入任意字符【返回主菜单】n);z=getchar();z=getchar();return 1;void mai n()/*主函数*/system(color 8f); 界面背景颜色system(mode con: cols=100 lines=15);/ 界面长度及宽度 welcome();system(mode con: cols=100 lin es=40);int i,j; char 。

29、k,z; for(i=0;i请输入任意字符【返回主菜单】n);z=getchar();z=getchar();Me nu();break;case 2:system(cls);system(color f2);Browser();】nn);printf(n【最佳游览路线way();break;case 3:system(cls);system(color f2); Browser();prin tf(n【查看单个景点】nn);in troduce();printf(nnn 请输入任意字符【返回主菜单】n);z=getchar(); break;case 4:system(cls);system。

30、(color f2); Browser。;printf(n【游览线路查询】nn);shortestdista nce(); break;case 5:system(cls);system(color f2);place();Me nu();break;case 6:system(cls);system(color f2);go();default: printf(”nn);printf(Error :输入错误,请您核对后重新输入!n);printf(n nn);system(pause);break;课程设计总结:这次课程设计让我学到了很多,课程设计开始之前,我看了别做的系统,认 真的分析了别人的代码,当我弄懂了迪杰特斯拉算法和弗洛伊德算法时,我就开 始编写自己的系统。我想再添加一些新的功能,但是这两周下来我当然也感到累, 也有心情烦躁的时候,体会到调试成功使的那种喜悦。指导教师评语:指导教师(签字):年 月日课程设计成绩。

c语言邻接表做公园导游系统,公园导游管理系统相关推荐

  1. C语言邻接表表示法创建无向图并输出

    C语言邻接表表示法创建无向图并输出 邻接表是图的一种链式存储结构,对图的每个顶点建立一个单链表,单链表第一个结点存放顶点信息,其余存放有关边信息. 邻接表由表头结点表和边表组成. 邻接表存储结构 #i ...

  2. 图的遍历(C语言,邻接表存储的图 - DFS,邻接矩阵存储的图 - BFS)

    邻接表存储的图 - DFS /* 邻接表存储的图 - DFS */void Visit( Vertex V ) {printf("正在访问顶点%d\n", V); }/* Visi ...

  3. c语言数据结构校园导游系统,校园导游系统课程设计报告

    校园导游系统课程设计报告 目录 1.需求分析1 2.总体设计1 2.1 抽象数据类型图的定义1 2.2 程序中包含的模块1 2.3模块间的调用关系3 3.详细设计3 3.1 代码设计3 3.1.1 定 ...

  4. c语言邻接表,C++数据结构之实现邻接表

    本文实例为大家分享了C++数据结构之实现邻接表的具体代码,供大家参考,具体内容如下 一.图的邻接表实现 1.实现了以顶点顺序表.边链表为存储结构的邻接表: 2.实现了图的创建(有向/无向/图/网).边 ...

  5. c语言邻接表的构建_c语言数据结构--图的邻接矩阵和邻接表操作的基本操作

    #include #include #include #define MAX 100 typedef char DataType; typedef int VectorRelationType; ty ...

  6. c语言邻接表的构建_C++实现有向图邻接表的构建

    本文实例为大家分享了C++实现有向图邻接表的构建代码,供大家参考,具体内容如下 数据结构里面的一道基础题,分享下自己的写法,验证可跑. #include #include const int MAX ...

  7. c语言 校园导游系统,校园导游系统

    <校园导游系统>由会员分享,可在线阅读,更多相关<校园导游系统(9页珍藏版)>请在人人文库网上搜索. 1.校园导游系统问题说明设计为来访客人提供多种信息查询服务的校园导游计划基 ...

  8. 用邻接表存储图c语言,邻接表、邻接多重表、十字链表及C语言实现

    上一节介绍了如何使用顺序存储结构存储邻接多重表和 邻接的意思是顶点之间有边或者弧存在,通过当前顶点,可以直接找到下一个顶点. 邻接表 使用邻接表存储图时,对于图中的每一个顶点和它相关的邻接点,都存储到 ...

  9. 邻接表法创建无向图(C语言)

    题目 本题要求建立一个无向图,采用邻接表做为存储结构. 例如: 输入信息为:第一行给出图的顶点数n和边数e.第二行给出n个字符,表示n个顶点的数据元素的值.后面是e行,给出每一条边的两个顶点编号. 输 ...

最新文章

  1. python 异常处理 库_python异常处理详解
  2. Metal:对 iOS 中 GPU 编程的高度优化的框架
  3. iPhone 12快来了!苹果或本周公布发布会时间
  4. MVC PartialView视图使用心得
  5. 通过C++的try和catch来捕获SEH异常
  6. apk 打包 java出错_Android Release 打包提示 错误:找不到符号
  7. Rockchip平台cpu散热风扇随温度自动调速的配置方法
  8. H264码流中NALU sps pps IDR帧的理解
  9. 如何想领导说清楚DCMM到底有什么好处?
  10. 用Java判断ab大小_比例类数据的差异性检验与AB测试的终止点
  11. python serial.write_PySerial write()即时时间
  12. 如何应对大数据分析工程师面试Spark考察,看这一篇就够了
  13. 监控和告警系统架构设计
  14. Chrome 屏蔽https中访问http(不安全内容)
  15. 互联网新机遇: 移动社交电商将成为下一个风口?
  16. c语言如何将数组里的数排序输出,c程序输入10个数到一维数组中,按升序排序后输出。...
  17. Git detached HEAD解决方案_张童瑶的博客
  18. 2022年起重机械指挥特种作业证考试题库模拟考试平台操作
  19. 资讯汇总230212
  20. Esp8266 nodemcu 使用PubSubClient连接阿里云物联网平台

热门文章

  1. 移植opencv到嵌入式arm详细过程
  2. matlab生成fmu
  3. 期权量化策略:如何利用期权捕捉期现套利机会?
  4. 项目优化:当使用redis减少数据库压力时,遇到redis写入失败,造成读取数据问题的解决方案
  5. 蓝桥杯 算法设计_6 分解质因数
  6. C语言:数组与指针之 p++ 操作的细节问题(p是指针)
  7. colorkey口红怎么样_colorkey镜面唇釉怎么样 唇釉和口红有什么区别
  8. java火车票订票系统 论文_毕业设计(论文)-基于JAVA的火车票售票系统.doc
  9. 5G千兆工业路由器 poe供电
  10. DAY3-摸鱼-GG修改器的使用与装备代码的推算-勇士拯救计划