zoukankan      html  css  js  c++  java
  • 预培训个人项目(地铁线路规划)

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

    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

    收获

    • 知道用很多学习工具
    • 思维较以前更加开阔
  • 相关阅读:
    吴恩达机器学习课程笔记章节二单变量线性回归
    cs224n第六讲依存分析
    吴恩达机器学习课程笔记章节一绪论
    cs224n第二讲词向量表示:word2vec
    cs224n第一讲深度自然语言处理
    DIY的.net正则表达式工具
    不写一行代码,利用常用工具和软件批量下载URL资源
    WEB页面采集器编写经验之一:静态页面采集器
    大规模IP地址黑名单高性能查询实现
    安卓开发入门与面试题01(潭州安卓开发入门教程)
  • 原文地址:https://www.cnblogs.com/miaowulj/p/11225193.html
Copyright © 2011-2022 走看看