个人项目1(地铁线路最短路径的程序)初步分析

1.需求分析

根据个人项目简介,软件的需求有以下三个:

需求1:

实现一个支持显示地铁线路与计算换乘的程序。之后,用户可以通过命令行启动这个程序。程序在启动时,会读取不同命令对应的命令行参数。对于地铁线路信息图,我们约定它采用参数 -map 作为标志。程序启动时需要通过读取 -map 参数来获得对应的自定义地铁文件(命名为 subway.txt),从而得到地铁线路图的信息。

需求2:

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

需求3:

实现一个计算任意两个站点间最短路径(经过的站点数最少)的程序,并输出经过的站点的个数和路径(包括出发站,目的站与换乘线路)。如果用户希望坐地铁,他希望能通过最少的站数从出发点到达目的地,这样就可以在命令行中以 -b 参数加两个地铁站点名称分别作为出发与目的,比如用户希望知道 洪湖里 到复兴路 之间的最短路线是怎样的,他就可以使用如下命令让程序将结果写入 routine.txt 中:subway.exe -b 洪湖里 复兴路 -map subway.txt -o routine.txt。

2.实现方法分析

需求1:

这项需求似乎是要我们把一张地铁线路图转换为文本格式的表格。也就是说,我们要将地铁线路信息等用文本文件的形式保存起来,应保存的信息应包括地铁线路名称各个地铁站点的名称以及车站换乘信息,使得应用程序可以通过读取这个文件,就能掌握关于地铁线路的所有信息。这其中涉及的技术包括图片读取、自动分析、信息保存与转换,我完全不知道如何实现计算机自动将图片转换为文本文件,所以我默认本程序只使用一张地铁图,并且此步骤已经由人工完成。最后的结果应该像这样:

序号

线路

站点名

是否为换乘站

001

1

刘园

0

002

1

西横堤

0

003

1

果酒厂

0

将所有站点输入subway.txt后,就可以将它导入程序实现各种计算。

需求2:

就路线查询为例,只需读入用户输入的路线编号并与表格中的所有线路比较,输出站点名即可。

需求3:

运行举例:

输入:

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

输出:

3                                        //共经过3站

洪湖里

西站                                   //在该站换乘
6号线
复兴路

从地铁设计规划的角度考虑,换乘路线应该会导致乘坐经过的站点变多。

对于终点站,首先查出它所在的路线。接下来有两种情况:起点站与它在同一路线,或起点站与它不在同一路线;对于第二种情况,可以确定终点站与起点站一定都在路线1、6或9上。

对于单个站点存在两个方向,可以首先对起点站进行两个方向的遍历。

3.PSP 

PSP 2.1

Personal Software Process Stages

Time/h

Planning

计划

  · Estimate

  · 估计这个任务需要多少时间

 ∞

Development

开发

  · Analysis

  · 需求分析 (包括学习新技术)

 1

  · Design Spec

  · 生成设计文档

 1

  · Design Review

  · 设计复审 (和同事审核设计文档)

 1

  · Coding Standard

  · 代码规范 (为目前的开发制定合适的规范)

 1

  · Design

  · 具体设计

 10

  · Coding

  · 具体编码

 200

  · Code Review

  · 代码复审

 1

  · Test

  · 测试(自我测试,修改代码,提交修改)

 1

Reporting

报告

  · Test Report

  · 测试报告

 2

  · Size Measurement

  · 计算工作量

 1

  · Postmortem & Process Improvement Plan

  · 事后总结并提出过程改进计划

31701056

杨峥

猜你喜欢

转载自www.cnblogs.com/Non-Exited/p/11564393.html