预培训个人项目(地铁线路规划)

预培训个人项目(地铁线路规划)

预培训个人项目(地铁线路规划)

1.需求

  • 需求1
    用户可以通过命令行启动这个程序。程序在启动时,会读取不同命令对应的命令行参数。对于地铁线路信息图,我们约定它采用参数 -map 作为标志。程序启动时需要通过读取 -map 参数来获得对应的自定义地铁文件(命名为 subway.txt),从而得到地铁线路图的信息。一个调用应用程序的示例如下:

    java subway -map subway.txt

  • 需求2
    在应用程序需要支持一个新的命令行参数 -a,它指定了用户希望查询的地铁线路。这样,在给定地铁线路时,你的程序就需要能够从线路的起始站点开始,依次输出该地铁线经过的所有站点,直到终点站。输出的文件我们使用 -o 命令行参数来指定。一个调用应用程序的示例如下:

    java subway -a 1号线 -map subway.txt -o station.txt

  • 需求3
    如果用户希望坐地铁,他希望能通过最少的站数从出发点到达目的地,这样就可以在命令行中以 -b 参数加两个地铁站点名称分别作为出发与目的,比如用户希望知道 洪湖里 到复兴路 之间的最短路线是怎样的,他就可以使用如下命令让程序将结果写入 routine.txt 中

    java subway -b 洪湖里 复兴路 -map subway.txt -o routine.txt

2.完成效果

预培训个人项目(地铁线路规划)

抽象概念

线路、可换乘站点、普通站点

解题思路

将整个任务分为三部分:1.从出发站点往后找到最近的可换乘的站点
2.从终点往前面找到最近的可换乘的站点
3.各站点构成图,两个可换乘的站点之间的普通站点个数看为权重,求最短路径

所涉及的类

类名 功能
GetStation 得到起始换乘站点和终换乘站点
FileOperate 得到文件内容
FloydInGraph 求换乘站点之间最短路径
Relative 解析关系
ShowPath 中间换乘路径
FileOperateOp 实现方法选择
Subway 总控件

模块之间的关系

预培训个人项目(地铁线路规划)

反省

  • 在任务分析阶段做的工作太少,项目开发经验匮乏
  • 模块之间耦合度很高
  • 很多地方代码冗余
  • 没有测试
  • 有些地方存在bug

收获

  • 知道用很多学习工具
  • 思维较以前更加开阔
上一篇:一文读懂WSGI和ASGI


下一篇:地铁线路规划简要分析