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


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

    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

    收获

    • 知道用很多学习工具
    • 思维较以前更加开阔
  • 相关阅读:
    在typescript中interface和type的区别和相同点
    微信小程序常用的方法
    使用vite创建vue3项目
    JavaCV-流媒体开发系列文章(索引)
    Java 8 日期时间 API
    JavaFX桌面应用-JavaFX应用打包exe及构建安装包
    JavaCV 视频滤镜(LOGO、滚动字幕、画中画、NxN宫格)
    JavaCV 采集摄像头和麦克风数据推流直播
    JavaCV 采集摄麦克风音频数据
    JavaCV 采集摄像头及桌面视频数据
  • 原文地址:https://www.cnblogs.com/miaowulj/p/11225193.html
Copyright © 2020-2023  润新知