地铁项目

地铁线路项目简要分析

github:repo
personblog:github_page or blog

设计需求

  • 确定储存地铁站文件的格式文件
  • 确定读取地铁站数据的方式
  • 确定获取两站点最小站点数的算法方式
  • 进行外表封装
  • 进行输出格式的确定
  • 性能测试
  • 最后结果检查
Personal Software Process Stages Time
计划
· 估计这个任务需要多少时间
开发
· 需求分析 (包括学习新技术)
· 生成设计文档
· 设计复审
· 代码规范
· 具体设计
· 代码复审
测试

实现思路

  • 为了方便传输的方便,最后决定使用文件输入,然后输出使用类似json的格式进行输出,同时也提高了使用的便捷性。
  • 文件上的输入选择了站点名+站点可否转站的方式进行描述。
  • 在输入上:
1
2
3
4
5
6
7
8
9
10
....
南站 0
杨伍庄 0
学府工业区 0
高新区 0
大学城 0
华苑 0
王顶堤 0
红旗南路 1
....
  • 在输出上:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    {
    "刘园": [1],
    "西横堤": [1],
    "果酒厂": [1],
    "本溪路": [1],
    "勤俭道": [1],
    ....
    "塘沽": [9],
    "泰达": [9],
    "市民广场": [9],
    "太湖路": [9],
    "会展中心": [9],
    "东海路": [9]
    }

同时,在语言的选择上,本来因为最短路径Dijkstra算法在c++上的熟练度,和一些性能上的考量,想使用c++作为主要语言进行编写,但最后因为python的库众多,和对springboot的后端编写便利,准备使用python和java混合编写的方式进行完成此次个人项目。


个人说明

基于输出方式的选择,在编写时候json调用的方式更人性化,最后输出选择使用了json格式,使用json.dumps进行转化后输出,同时json也方便了可能会使用的springboot后端的接口编写,通过调用py函数进行逻辑书写,返回相应的数据,再通过app接受,进行交互。

时间尚且未定。