【数据结构与算法综合实验】景区信息管理系统迭代开发

 实验教材:

实验目的:

  1. 掌握图的定义和图的存储结构;
  2. 掌握图的创建方法和图的应用;
  3. 掌握图的两种遍历方法和应用;
  4. 掌握迪杰特斯拉(Dijkstra)算法和应用;
  5. 理解最小生成树的概念;
  6. 掌握普里姆(Prim)算法和应用;
  7. 使用C++语言,定义图的数据结构,结合迭代开发思路实现“景区信息管理系统”;使用深度优先搜索算法实现“旅游景点导航”功能开发;使用迪杰特斯拉算法实现“搜索最短路径”功能开发;使用最小生成树普里姆算法实现“铺设电路规划”功能开发。

实验要求:

  1. 创建景点图:从Vex.txt文件中读取景点信息,从Edge.txt文件中读取道路信息,然后根据读取的景区信息创建景区景点图;
  2. 查询景点:输入想要查询的景点的编号,然后查询该景点的信息并将其在控制台输出,而且输出该景点相邻的景点的信息;
  3. 旅游景点导航:提示用户输入起始景点编号,然后从起始景点开始,遍历景区所有的景点,记录所有无重复的路径,最后将查询到的所有路径显示在控制台上;
  4. 搜索最短路径:首先提示用户输入起点景点编号和终点景点编号,然后搜索这两个景点之间的所有路径,找到其中距离最短的路径,在控制台输出最短路径以及最短路径的长度;
  5. 铺设电路规划:根据景区景点图,构造一棵最小生成树,设计出一套铺设线路最短,并且能够满足每个景点都能够通电的方法,然后在控制台输出需要铺设电路的道路以及铺设电路的长度,最后输出铺设电路的总长度。

项目截图:

实验代码:

见文首

运行结果截图:

以下截图均来自实验报告截图!

运行程序,使用截屏软件对各个部分的运行结果进行截图,详情如下:

  • 创建景区景点图运行截图:

  • 查询景点信息运行截图:

  • 旅游景点导航运行截图:

  • 搜索最短路径运行截图:

  • 铺设电路规划运行截图:

 End!

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游的线路来游览,而是挑选自己感兴趣的景点游览。为于帮助这类游客信息查询,就需要计算出所有景点之间最短路径和最短距离。算法采用迪杰斯特拉算法或弗洛伊德算法均可。建立一个景区旅游信息管理系统,实现的主要功能包括制订旅游景点导游线路策略和制订景区道路铺设策略。 任务中景点分布是一个无向带权连通中边的权值是景点之间的距离。 (1)景区旅游信息管理系统中制订旅游景点导游线路策略,首先通过遍历景点,给出一个入口景点,建立一个导游线路,导游线路用有向表示。遍历采用深度优先策略,这也比较符合游客心理。 (2)为了使导游线路能够优化,可通过拓朴排序判断中有无回路,若有回路,则打印输出回路中的景点,供人工优化。 (3)在导游线路中,还为一些不愿按线路走的游客提供信息服务,比如从一个景点到另一个景点的最短路径和最短距离。在本线路中将输出任意景点间的最短路径和最短距离。 (4)在景区建设中,道路建设是其中一个重要内容。道路建设首先要保证能连通所有景点,但又要花最小的代价,可以通过求最小生成树来解决这个问题。本任务中假设修建道路的代价只与它的里程相关。 归纳起来,本任务有如下功能模块:(1)创建景区景点分布;(2)输出景区景点分布(邻接矩阵)(3)输出导游线路;(4)判断导游线路有无回路;(5)求两个景点间的最短路径和最短距离;(6)输出道路修建规划。(7)主程序用菜单选项供用户选择功能模块。  
1.实验目的 通过“片压缩编码”的编程实践,学习树、遍历二叉树、哈夫曼树、哈夫曼编码和他们的编程应用。 (1)掌握树的存储结构 (2)掌握二叉树的三种遍历方法 (3)掌握并理解Huffman树、Huffman编码等知识和应用 (4)掌握文件的操作 (5)使用Huffman算法实现像压缩程序 2.实验内容 使用Huffman压缩算法,对一幅BMP格式的片文件进行压缩。片文件名为“Pic.bmp”,压缩后保存为“Pic.bmp.huf”文件。使用VS2010作为开发工具,开发一个控制台程序,使用Huffman压缩算法对片文件“Pic.bmp”进行压缩。具体要求如下: (1)读取原文件,统计权值: 运行程序,输入文件名。 以“Pic.bmp”文件为例。若文件存放在F盘根目录下,输入文件完整路径“F:\Pic.bmp”。按回车结束。以字节流的方式,只读打“Pic.bmp”文件。 逐字节读取文件,统计文件中256种字节重复的次数,保存到一个数组中int weight[256]中。 (2)生成Huffman树 根据(1)中统计的结果,构建Huffman树。定义一个结构体来记录每个节点的权值、父节点、左孩子和右孩子。使用结构体数组来存储这个Huffman树。 (3)生成Huffman编码 遍历(2)中生成的Huffman树,记录256个叶子节点的Huffman编码,保存在字符串数组中。 (4)压缩原文件 使用Huffman编码对原文件中的字节重新编码,获得压缩后的文件数据。 (5)保存压缩文件 将编码过的数据,保存到文件“Pic.bmp.huf”中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾年之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值