C++城市导航系统[2024-01-17]

C++城市导航系统[2024-01-17]

2 地图网络的图分析

【问题描述】
地图网络可以被看作是一个图,其中节点代表城市或地区,边代表城市或地区之间的交通路线。请设计一个程序来模拟地图网络,并使用图来表示这个网络。系统需要有用户登录功能,用户能够查看整个地图网络信息,添加/删除节点和边,查找特定节点的所有邻近节点,以及查找两个节点之间的最短路径,用于点到点的导航。

【基本要求】

  1. 自己编程实现图结构,包括邻接矩阵与邻接表,及其相关功能,不允许使用标准模板类的图结构和函数。同时要求根据图的变化情况,进行相应的图遍历操作,包括但不限于深度优先搜索和广度优先搜索。测试时,各种情况都需要测试,并附上测试截图;
  2. 要求采用类的设计思路,不允许出现类以外的函数定义,但允许友元函数。
  3. 要求采用多文件方式:.h 文件存储类的声明,.cpp 文件存储类的实现,主函数 main 存储在另外一个单独的 cpp 文件中。如果采用类模板,则类的声明和实现都放在.h 文件中。
  4. 不强制要求采用类模板;不强制要求采用可视化窗口,但若采用可视化窗口可适当提高考核分数;要求源程序中有相应注释;
  5. 要求测试例子要比较详尽,各种极限情况也要考虑到,测试的输出信息要详细易懂,表明各个功能的执行正确;

【实现提示】

  1. 城市或地区信息(即城市或地区名称和交通路线)可以存储在文件中,当程序启动时,从文件中读取所有的城市或地区信息,并建立合适的图结构;
  2. 验证过程时,需要根据城市或地区名称,遍历整个图,找到匹配的城市或地区,进行验证;更新交通路线时,也需要遍历图,找到匹配项后进行更新,同时更新文件中存储的交通路线。
  3. 路径的搜索实现可以利用栈或队列结构
  4. 添加城市或地区时,不仅需要在文件中添加,也需要在图中添加相应的节点;删除城市或地区时,也是如此;
  5. 地图网络系统可以联系实际,扩展相应功能。例如,实现地图网络的可视化等。

【运行结果要求】
要求有程序菜单,能够实现用户的登录管理、地区信息增删改查、地区间导航功能及相应的信息展示,实验报告要求有详细的功能测试截图。

实验报告必须包括以下内容:
1.实验报告封面。封面必须给出题目、班级、姓名、学号、和完成日期,如果是多人完成的,必须写明所有人员的班级、姓名和学号,并写明各自的主要工作,标明课题负责人。
2.实验题目和要求。可以直接复制任务书的内容。
3.设计思路:包括系统总体设计、系统功能设计、类的设计和主程序的设计。
(1) 系统总体设计:要求对系统的技术思路和数据结构进行概要性说明和解释;
(2) 系统功能设计:要求说明系统的所有功能,建议采用框图或表格等方式来表示,并辅以文字说明;
(3) 类的设计:包括所有类的设计、各个类之间的关系和主要成员函数的设计等。建议采用合适的方式(如,框图或表格)来表示类的设计和主要成员函数的功能;要求以图示方式来表示各个类之间的关系;对于关键和主要的成员函数,要求以程序流程图来表达其实现过程,同时可以适当粘贴关键代码进行说明;
(4) 主程序的设计:要求以适当的方式表达如何通过调用各个类及其成员函数来实现各项主要功能。
4.调试分析:包括技术难点分析 和调试错误分析。
(1) 技术难点分析:要求至少说明一个或一个以上的技术难点。
(2) 调试错误分析:要求说明三个或三个以上的调度错误,及其修正方法。要求粘贴对应的调试截图,包括修正前的截图和修正后的截图。
5. 测试结果分析:
(1) 要求测试所有功能;
(2) 要求测试每个功能的各种可能的情况,包括边界数据、错误数据和其它可能的数据。
(3) 要求粘贴相应的测试截图,测试截图必须包含足够的提示信息和输出结果;
6. 附录:附上源代码,并标明源代码的所属文件,并且源代码必须有注释。

源码联系UP主 -> https://space.bilibili.com/329101171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值