GitHub:Git
地铁出行路线规划项目需求及实现概要:
1.设计一种文件格式用于存储地铁信息
2.设计启动程序并读取地铁信息文件的命令行
3.可以输出查询的具体地铁路线的所有途径地铁站点
4.能够告知用户两个站点之间的最短路线
5.进行代码复审
6.进行测试
7.进行性能检测
主要术语表:
中文名 | 英文 | 解释 |
线路 | Line | 地铁线路,线路上有很多的站点 |
站点 | Station | 地铁站点 |
实现思路:
本次大作业我们要完成的主要任务有设计文件的存储格式、查询地铁线路和站点间最短路线问题。
首先对于站点信息的文件存储格式,可以使用xml格式或者json格式,如果使用json格式侧需要编写相应的json格式转换的代码,但是json格式的方便程度是比较高的。而xml格式则比较繁琐。
1.要查询地铁线路,可以建立一个线路(Line)的list,在Java中可以使用ArrayList,而每个线路又是一个站点(station)它的列表,那么只需要遍历线路列表找到查询的线路并输出就可以(但是这样性能上可能会差一些),也要记得处理异常情况——找不到查询线路的问题。
2.要得出两个站点之间的最短路径,那么迪杰斯特拉算法是一种不错的选择,广度优先遍历同样可行;对于广度优先遍历,只要明确一点,最先找到终点站的路线就是最短路线。这里的异常情况是——找不到要查询的站点。
本次大作业如果使用C/C++来实现的话,性能上会有一定的优势,但是本次大作业的结构与功能并不是很复杂,java语言也可以胜任;鉴于个人对C++、Json格式的练习较少,我打算使用Java语言来编写此次大作业。
以下是输入格式设计(初步,可能修改):
{ 刘园:西横堤 1 西横堤:果酒厂 1 果酒厂:本溪路 1 本溪路:勤俭道 1 勤俭道:洪湖里 1 洪湖里:西站 1 西站:西北角 1 西北角:西南角 1 西南角:二纬路 1 二纬路:海光寺 1 海光寺:鞍山道 1 …………………… }
大致上是两个站名用:隔开后再用1或0来表示是否经过该站点。
路径存储
由算法得到的路径存储在txt文件中,包括路径长度,线路和站点
1 刘园 果酒厂 ………… 西站