导航系统报告 数据结构大作业

一、系统概述

1.开发环境:windows 10,Clion2022

2.开发语言:C++

3.设计内容:设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所最短路径,以及从任意场所到达所有场所的最短路径。

图1-1 学校平面图设计

(1)地点设置介绍:如图1-1所示,设计图共计16个场所,并进行了编号(从0开始);

(2)顶点间的距离值:各顶点间距离值如图1-1所示,单位为米。

4.用户需求

图1-2 菜单

图1-2展示了本程序初步设计的菜单,通过命令行实现用户交互,基本功能如下:

a)显示校园平面图:打印校园平面图;

b)两地点间最短路径:由用户输入起点、终点,并输出最短距离值与最短路径;

c)校园导航:由用户选择当前位置,输出“从当前位置开始,到达所有场所,最终返回当前位置”的最短距离、路径;

d)留下评论:读取用户输入评论,写入文件;

e)查看评论:从文件中读取评论并打印。

5.设计思想:

a)图的存储:将校园地图通过邻接矩阵进行存储;

b)两地点间最短路径:在初始化时,通过Dijkstra算法计算出任意两点间的最短距离、路径,用户使用该功能时只需查表并输出即可;

c)校园导航:本质是非完全图,允许重复访问的旅行商问题。通常的旅行商问题是NPC问题,并且要求完全图,非完全图的求解较难。本次系统设计通过将非完全图转化为完全图,然后使用状态压缩动态规划解决旅行商问题,达到本功能的近似求解。经过学习了解,此种方法不一定能得到最优解,但本人在网上尚未找到权威资料以解决本问题。

二、系统总体设计

2.1用户交互设计

图2-1 用户交互

图2-1为用户交互流程图,其设计了一个简单循环,循环中获取用户输入、解析并执行,执行操作后进行下一次循环(或退出程序)。

2.2图操作模块设计

图操作模块主要针对“两地点间最短路径”、“校园导航”两大功能进行设计。

由于程序功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值