基于C++Qt实现北京可视化地铁换乘查询系统[2024-07-12]

基于C++Qt实现北京可视化地铁换乘查询系统[2024-07-12]

一、题目
北京的地铁交通网络已经基本成型,建成的地铁线十多条,站点上百个,现需建立一个换乘指南打印系统,通过输入起点和终点站,打印出地铁换乘指南,指南内容包括起点站、换乘站、终点站。
(1)图形化显示地铁网络结构,能动态添加地铁线路和地铁站点。
(2)根据输入起点和终点站,显示地铁换乘指南。
(3)通过图形界面显示乘除路径。

二、软件功能
功能主要功能包含地铁网络线路的查看,地铁换乘指南查询,动态添加线路站点等。
线路图查看:

  • 查看北京地铁网络线路图,包括通过键盘、鼠标拖放、放大缩小等简易查看操作;
  • 查看地铁线路信息,包括线路段、包含站点等;
  • 查看地铁站的详细信息,包括站点地理坐标、所属线路等
    换乘指南查询:
  • 提供地铁换乘查询,可通过视图方便的查看乘坐路线和换乘路线;
  • 提供最小出行时间的换乘策略指南
  • 提供最小换乘次数的换乘策略指南
    动态添加线路:
  • 动态添加线路,可根据需要新增线路;
  • 动态添加站点,可根据需要新增站点;
  • 动态添加连接,可根据需要新增站点连接;
  • 文本方式简易添加,方便快捷;
    帮助:
  • 提供软件使用帮助和说明;
    关于:
  • 提供软件制作信息;

上述所有功能采用面向对象的方法通过C++语言程序结合QT框架实现,后面会详细介绍。

三、设计思想
实现思路
1.系统分析,明确功能要求
在做应用程序之前都会先明确软件的需求是什么,知道了要实现那些功能才能去细化用什么方法实现,实现的系统架构是什么,初步规划程序的基本流程和核心算法。在认真读题后,明确功能要求后,开始下一步操作。
2.MVC模式系统架构
MVC模式即为模型-视图-控制器结构模式,这种软件架构模式是一种常用的设计。在本次系统结构中,大致采用此种模式,前后端实现分离,前端主要考虑与用户的交互,例如设计怎样的视图,地铁网络线路图如何展现等,后端主要是数据和算法的处理,将复杂的功能和数据交由后端处理,前后端实现函数接口,从而完成整个软件系统的架构设计。
3.设计后端数据结构和接口
本次综合应用程序,基本上的数据结构都有涉及,例如网络线路的连接情况需用图结构、算法实现有队列,静态存储有线性表,名字到存储位置有哈希映射,分析好数据结构之后,根据需要将后端系统的接口进行设计,例如最短路径的查询、添加线路站点等均需接口。
4.分块实现,逐步求精
系统结构和数据结构、算法等相应设计好后,就开始逐步实施了,从前端开始,对每个功能要求的前端界面和交互进行细化,实现前端代码,对每个功能的前端实现后,完善后端接口函数,完成所有前端后,后端也基本同步完成,从而完成整个程序的实现。

数据结构分析
本次程序设计站点、线路及其关系的存储表示和相应的算法,所有线路和站点名字是唯一的,表示线路的网络关系时,每个站点可看做一个节点,站点的联系看做一条边,网络结构显然用图结构存储,对每个站点和线路来讲,不会有删除操作,会有添加要求,最频繁的是查询需求,所以用顺序表存放最为合适,将站点和线路名和存储位置的下标值进行哈希关联,可方便访问。

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值