个人项目——地铁

地铁个人项目

项目下载

1、PSP表格:

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

2、模块划分与设计

整个项目划分为4个模块:

模块名 职责
主控模块 判断用户输入的请求以实现对应功能
数据读取模块 读取记事本中内容并转换成需要的图结构
算法分析模块 进行最短路径选取及地铁线路输出
参数模块 保存各种表结构

模块之间的作用及联系:

模块代码详解:

1、 参数模块

属性 内容
sub_name 地铁线路名
station_name 某条地铁线下的所有站点
map 包含所有的线路及其线路中所有站点的集合
sta_id 为所有站点匹配的id号
sub_id 为所有线路匹配的id号
distance 节点之间的距离
belong 站点所属线路记录

2、 数据读取模块

数据结构:

奇数行为线路名,读取方式如下:

偶数行为站点名,读取方式如下:

以两行为单位读取完毕后:

3、数据分析模块

站点输出(基本思想:循环map找到匹配的线路名称输出sta_name中内容):

最短路径输出(基本思想:floyd的三重循环):

3、代码测试

a. 指定线路的站点输出

正常输入:

非正常输入(不存在该条线路):

b. 最短路径输出

正常输入:

1)单条线路无换乘

2)存在环路

无换乘:

有换乘:

3)双交线

无换乘:

有换乘:

4)长路线,多次换乘

5)超长线路

非正常输入:


猜你喜欢

转载自www.cnblogs.com/shengxue/p/11666342.html
今日推荐