北京地铁实例

预期计划

PSP 2.1 Personal Software Process Stages Time
Planning 计划 1h
Estimate 估计这个任务需要多少时间 2h
Development 开发 5h
Analysis ·需求分析 (包括学习新技术) 2-3h
Design Spec 生成设计文档 1h
Design Review 设计复审 (和同事审核设计文档) 1h
Coding Standard 代码规范 (为目前的开发制定合适的规范) 1h
Design 具体设计 1h
Coding 具体编码 2h
Code Review 代码复审 1h
Test 测试(自我测试,修改代码,提交修改) 2-3h
Reporting 报告 1h
Test Report 测试报告 1h
Size Measurement 计算工作量 1h
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 1h
合计 23-25h

需求分析

  1. 计算地铁线路最短路径
  2. 支持显示地铁线路与计算换乘的程序
  3. 查询指定地铁线经过的站点
  4. 最少的站数从出发点到达目的地

实现思路

  1. 为了输入及存储数据的方便采取json格式,并使用CJsonObejct作为json的支持库

  2. 异常情况
    1. 线路不存在
    2. 站点找不到
  3. 将地铁线路抽象为无向图,将问题转化为无向图上求最短路的问题
  4. 采用堆优化的Dijstra算法,可以预计是个稀疏图,时间复杂度\(O(VlogV)\),空间复杂度\(O(M+V)\)
  5. 测试点
    1. 无重复路径
    2. 保证站点在路径上

输入

  1. 用参数 -map 作为标志。程序启动时需要通过读取 -map 参数来获得对应的自定义地铁文件(命名为 subway.txt),从而得到地铁线路图的信息。
subway.exe -map subway.txt

//地图格式
{{"subway-line-name" : "一号线","stations" : ["苹果园","古城"]},{"subway-line-name" : "二号线","stations" : ["积水潭","鼓楼大街"]}
}
  1. 支持一个新的命令行参数 -a,它指定了用户希望查询的地铁线路。这样,在给定地铁线路时,你的程序就需要能够从线路的起始站点开始,依次输出该地铁线经过的所有站点,直到终点站。输出的文件我们使用 -o 命令行参数来指定。
subway.exe -a 1号线 -map subway.txt -o station.txt
//输出格式
{{"subway-line-name" : "一号线","stations" : ["苹果园","古城"]},
}
  1. -b 参数加两个地铁站点名称分别作为出发与目的,比如用户希望知道 动物园 到白堆子 之间的最短路线是怎样的,他就可以使用如下命令让程序将结果写入 routine.txt 中
subway.exe -b 动物园 白堆子 -map subway.txt -o routine.txt
//输出格式
{{"subway-line-name" : "一号线","stations" : ["苹果园","古城"],"number-of-stations" : "5"},
}

实际对应路线

转载于:https://www.cnblogs.com/klchen/p/11546006.html

个人培训项目-环境搭建相关推荐

  1. 黑马学成在线--项目环境搭建

    完整版请移步至我的个人博客查看:https://cyborg2077.github.io/ 学成在线–项目环境搭建 学成在线–内容管理模块 学成在线–媒资管理模块 学成在线–课程发布模块 学成在线–认 ...

  2. 美多后台管理和项目环境搭建

    美多后台管理 Django框架已经提供了一个Admin管理后台,但是Admin的本身的页面可修改的页面布局效果比较少,无法满足公司定制页面需求,这时候就需要独立开发一套后台管理系统,满足公司对后台数据 ...

  3. linux基本项目环境搭建

    文章目录 linux基本项目环境搭建 java环境搭建 获取java源码包 解压 配置环境变量 使配置文件生效 验证 nginx安装 下载(java也可用此方法下载) 解压 配置(configure) ...

  4. 企业实战(2) 项目环境搭建之Tomcat部署

    前言: Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说, ...

  5. Vue项目实战之人力资源平台系统(一)框架介绍及项目环境搭建

    前言 目录 前言 一.vue-element-admin简介 二.项目环境搭建 2.1 nodejs环境 2.2 git版本控制 2.3 vscode编辑器 三.拉取vue-element-admin ...

  6. 云服务器部署项目环境搭建

    云服务器部署项目环境搭建 这里以阿里云为例: 一.安装JavaJDK 指令: yum -y install java-1.8.0-openjdk* 二.下载部署TomCat 去TomCat官网下载:T ...

  7. django项目环境搭建

    项目环境搭建 在github上创建项目 官网: https://github.com/ 点击new 新建项目 公钥绑定 使用 git clone 项目到本地 一.在码云平台创建项目 版本控制的种类: ...

  8. 代驾APP_第一章_项目环境搭建_第一节

    代驾APP_第一章_项目环境搭建 文章目录 代驾APP_第一章_项目环境搭建 1-1 创建根项目 一.创建SpringBoot项目 二.覆盖pom.xml文件 1-2 创建根项目 一.创建公共模块 二 ...

  9. 代驾APP_第一章_项目环境搭建_第二节

    代驾APP_第一章_项目环境搭建_第二节 文章目录 代驾APP_第一章_项目环境搭建_第二节 1-11 创建bff-driver服务 一.创建项目 二.配置pom.xml文件 三.编写YML配置文件 ...

最新文章

  1. 数据库流行度5月排行榜:Oracle企稳PostgreSQL飙升
  2. qt show widget_QWidgetStack类 - Qt 参考中文帮助文档
  3. dpdk优化(转)???
  4. 川大计算机系1999级高伟,四川大学计算机系主任魏骁勇研发人脸识别无人机课堂点名...
  5. 以太网标准-802.3各个标准简介
  6. 微信小程序App.js应用
  7. Linux---基础部分
  8. matlab播放 视频帧,MATLAB读取视频并按帧保存
  9. append和extend的差别
  10. layer icon图标汇总
  11. Java基础 DAY14
  12. Plant Simulation使用技巧
  13. yum install时提示This system is not registered with an entitlement server
  14. python人脸识别、语音合成、智能签到系统(2)
  15. 使用 Flutter 开发 Google Translate 程序
  16. 词根词缀学单词【3】
  17. 降本增收 相约Q4 |衡石九月头条
  18. lg g5 h868 android 7,LG G5 (H868)全网通智能手机
  19. VB编程小实例-----儿童识字
  20. CEAC 之《企业信息化管理》3

热门文章

  1. 不会英语计算机开车和,21世纪文盲标准,你中了吗?
  2. 计算机专业省赛一等奖有什么好处,竞赛省一等奖有什么用
  3. MSE H265 支持调查
  4. 10000+门店的蜜雪冰城,帮你找回软件赚钱的初心
  5. ps2模拟器安卓版_安卓PS2模拟器游戏推荐:奥特曼格斗进化3
  6. 网游服务器搭建方案图解(以魔兽世界为例)
  7. 我们如何研发了世界上最酷的调车内燃机车自动驾驶系统
  8. c语言万能搜索器,非索引搜索工具(CSearcher)
  9. 【QT实现TCP和UDP协议通信(一)】
  10. HTML制作简单网页(京东新闻资讯页,歌曲推荐网页)