项目二:校园导游咨询

一、题目要求

【问题描述】

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

【基本要求】

(1) 设计你所在学校的校园平面图,所含景点不少于10个.以图中顶点表示校内各景点,存放景点名称、代号、简介  等信息;以边表示路径,存放路径长度等相关信息。

  (2)  为来访客人提供图中任意景点相关信息的查询。

(3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

【测试数据】

以江苏科技大学长山校区为例。

【实现提示】

一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网.顶点和边均含有相关信息.

二、设计思路

【问题分析】

将校园平面图简化为一个无向网。顶点和边均含有相关信息。用直接赋值的方法给予各个景点信息,若两景点之间可达,则对路径长度赋值,对于自己到自己的路径,赋值为0,其他均赋成最大值。查看所有景点时,就遍历结构体数组,然后全部输出;查询景点,根据输入的景点代号,遍历数组b然后利用字符串比较方法找到所查询的景点,输出景点的具体信息;修改景点信息的第一步为查找到该景点,然后将该景点的所有信息清空,重新输入即可;问路求最短路径及长度即是采用弗洛伊德算法,获得具体的最短路径时,从后往前追溯走过的结点,并且用一个数组记录下它的位置,然后再遍历数组输出所经过的每个点的信息。用户在选择任意两个景点之后,可以查看这两个景点之间的最短路径。系统将通过迪杰斯特拉算法[从起始点出发,广度遍历,记录到该点距离最短的顶点,记录下来,再广度遍历剩余的顶点,直到确定所有顶点都为最短时结束],j计算出用户所选出的两个景点之间的最短距离并将结果呈现给用户

【使用算法】

迪杰斯特拉算法求单源点最短路径

void menu()                功能菜单

        void Allprint                输出景点名称、代号和简介

        void CreateUDG        用直接赋值的方法给予各个景点信息

        void Change              修改景点信息

        void Query                 查询景点

        void Floyd                  获得最短路径及长度。

        void Path                   获得具体路径

        void Ask                     输出具体路径及长度。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值