问题描述
- 怎么编写这个界面和代码。c++的
-
第1题 地铁出行帮助软件
【问题描述】
当今的北京,地铁已经成为绝大多数人出行的首选。截至2014年1月,北京地铁共有17条运营线路。组成覆盖北京市11个市辖区,拥有231座运营车站、总长467千米运营线路的轨道交通系统,工作日均客流约1000万人次,峰值日客运量1155.92万人次。随着地铁线路的增加,地铁规模越来越大,人们愈发的感觉到地铁的便利。特别地从出发地到目的地的乘车方案的选择也越来越多。因此,需要提供一个软件能够为人们提供出发到目的地之间“最快”或“最方便”的地铁出行方案。其中,“最快”指用时最少,“最方便”则指在换乘车少的基础上用时最少。
【基本要求】
请设计一个地铁出行帮助系统,为北京市居民提供地铁出行方案(仅限地铁出行)。提供出发地和目的地地铁站的输入窗口,提供出行建议,并图形显示出线路。
出行建议信息:
? 出发站, 站名, 几号线
? 第2站, 站名, 几号线
? …
? 第i站, 站名, 几号线
? …
? [换乘站, 站名, 换乘几号线]* ,
? 第m站, 站名, 几号线
? 目的站, 站名, 几号线
? 总用时, X分钟,换乘次数:N
一 、输入数据要求
地铁线路基础信息数据通过一个名为“BaseInfo.txt”的文本文件读入。
该数据文件格式如下:
? 第0行:当前系统中地铁线路的条数n(n > 0)
? 第1行:第1条地铁线路名称(如:1号线),第1站(如:四惠东站),图上坐标(如:X1,Y1) ,运行时间(如:3),第2站(如:四惠站),图上坐标(如:X2,Y2),运行时间(如:4),…, 第23站(如:苹果园站),图上坐标(如:Xn,Yn)
? …
? 第i行:第i条地铁线路名称, 第1站,运行时间,第2站,运行时间,…, 第n站
? …
? 第n行:第n条地铁线路名称, 第1站,运行时间,第2站,运行时间,…, 第n站
? 第n+1行:换乘站数目m(m > 0)
? 换乘编号1#:换乘站名称1(如:四惠东站),(下车线路(如:1号线),换乘线路(如:八通线),换乘时间 (如:5))+
? …
? 换乘编号i#:换乘站名称i,下车线路,换乘线路,换乘时间
? …
? 换乘编号m#:换乘站名称m,下车线路,换乘线路,换乘时间用户查询信息通过图形界面的对话框提供:
包括起始站,目的站的输入框。
二、输出画面的要求用图形方式显示北京市地铁图,并根据客户的输入提供建议(文字展示)并以加粗的两端带红点的绿色线路形式绘制在地铁图上。
三、题目约定
? 题目中的时间单位为分钟;
? 地铁一般一站运行时间3分钟,个别长的站为5分钟。
? 最短距离以所用时间表示四、 题目实现要求
? 应用最短路径算法,求任意两站间的“最快”,“最方便”的出行方案。特别需要注意换乘站的处理。
【数据样例】
界面输入:
出发站:潘家园
目的站:东大桥图 1 输入界面
界面输出:图 2 地铁出行建议(对话框)
图 3出行建议线路图(局部图)
【实现提示】
1. 需要将基础数据信息转换为一张带权无向图(虽然有些地铁站的各个方向换乘时间不一致,但这种均不予以考虑,简化问题),权值为地铁运行时间和换乘时间。
2. 需要为无向图选用易于操作的存储方式。
3. 需要根据自己采用的地图尺寸,为各个地铁站赋予相应的坐标,存入BaseInfo.txt文件中。
4. 可以适当简化地铁运行图,但至少要包括1、2、4、5、6、8、9、10、13号线这9条地铁线备注:
地铁相关信息可以去网上查,地铁地图可在wiki百科下载,也可以根据情况自己绘制,但至少包括之前所要求的9条线路。