结对编程 地铁最短路径 张波-朱新远

结对编程 地铁最短路径

一、任务:

实现一个帮助进行地铁出行路线规划的命令行程序。

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

二、要求

需求1:
请各对同学实现一个支持显示地铁线路与计算换乘的程序(对于C++/C#,编译后的二进制文件名需为 subway.exe;对于Java项目,Main方法所在文件名需为 subway.java)。之后,用户可以通过命令行启动这个程序。程序在启动时,会读取不同命令对应的命令行参数。对于地铁线路信息图,我们约定它采用参数 -map 作为标志。程序启动时需要通过读取 -map 参数来获得对应的自定义地铁文件(命名为 subway.txt),从而得到地铁线路图的信息。

需求2:

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

需求3:

用户希望坐地铁,他希望能通过最少的站数从出发点到达目的地,这样就可以在命令行中以 -b 参数加两个地铁站点名称分别作为出发与目的,比如用户希望知道 洪湖里 到复兴路 之间的最短路线是怎样的,他就可以使用如下命令让程序将结果写入 routine.txt 中。

三、计算模块接口的设计与实现过程:

1.源数据结构说明:

一行代表一个线路,线路顺序是几号线,比如第一行就代表一号线,站台用逗号分隔,有顺序

2.实体类属性说明

定义了一个实体类Station

包含的信息如下

private String name; //地铁站名称,假设具备唯一性

public Station prev; //本站在lineNo线上面的前一个站

public Station next; //本站在lineNo线上面的后一个站

//本站到某一个目标站(key)所经过的所有站集合(value),保持前后顺序private Map<Station,LinkedHashSet<Station>> orderSetMap = new HashMap<Station,LinkedHashSet<Station>>();
3.关键类(Subway)实现及算法思想:
//用迪杰斯特拉最短路径算法计算从s1站到s2站的最短经过路径public void calculate(Station s1,Station s2);
//取参数station到各个站的最短距离,相隔1站,距离为1,依次类推private Station getShortestPath(Station station);
//获取参数station直接相连的所有站,包括交叉线上面的站private List<Station> getAllLinkedStations(Station station);
//根据内容的输出路径输出结果public static void output(String[] content,String ouputPath);

4.项目目录展示


四.测试效果与运行 


五.总结  1.能力有限,部分功能无法完成,部分功能未完全按需求完成
   2.项目的不足:健壮性很差;用户体验不好;跟队友分工合作还可以;代码注释没写好


原文地址:https://www.cnblogs.com/qq824312823/p/11816273.html

时间: 2024-10-11 01:11:53

结对编程 地铁最短路径 张波-朱新远的相关文章

结队编程,地铁最短路径,张波-朱新远

结对编程 地铁最短路径 一.任务: 实现一个帮助进行地铁出行路线规划的命令行程序. PSP 2.1 Personal Software Process Stages Time Planning 计划     · Estimate   · 估计这个任务需要多少时间  7d Development 开发     · Analysis   · 需求分析 (包括学习新技术)  2d   · Design Spec   · 生成设计文档 1d    · Design Review   · 设计复审 (和同

结对编程(黄金点游戏)

黄金点游戏 前言:   这次软件工程的作业是以结对编程的形式编写"黄金点游戏".结对编程是指两位程序员坐在同一工作台前开发软件与两位程序员各自独立工作相比,结对编程能写出质量更好更高的代码,达到事半功倍的效果.   黄金点游戏介绍:N个同学(N通常大于10),每人写一个0~100之间的有理数(不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值,提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.

软件工程第二次作业—结对编程

一. 作业要求 两人组成一队,进行结对编程. 从第一次软件工程作业中选出一人的作业作为这次作业的基础. 设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序.网页程序或者手机程序. 设计的应用程序可以完成加法.减法.乘法.除法运算. 应用程序可以完成真分数的四则运算. 例如:1/2 + 1/3 = 5/6 例如:1/5 + 3/10 = 1/2(而不是5/10) 例如:1'1/3 - 2/3 = 2/3 (是1'1/3而不是4/3,注意:" ' "为1'1/3整数

结对编程--fault,error,failure

结对编程对象:张忠玉 结对照片: 结对题目:输入一定个数的数字,对其排序后输出最大值. 1 package com.jkxy.zy.selectsort; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * 构造程序,分别是: 8 •不能触发Fault. 9 •触发Fault,但是不能触发Error. 10 •触发Error,但是不能产生Failure.*/ 11 public class Selectsort { 12 13 public static

《结对编程-四则运算生成器-开发过程》

结对编程队员:张常瑞 孙宇林 我们组做的编程项目是四则运算答题器. 算法的主要思想就是将一个中缀表达式(Infix expression)转换成便于处理的后缀表达式(Postfix expression),然后借助于栈这个简单的数据结构,计算出表达式的结果. 遇到的问题:如何将普通的表达式转换成后缀表达式,以及如何处理后缀表达式并计算出结果 解决办法:正在努力寻找中

中小学出题程序结对编程的总结收获

本次结对编程我是学习了一个新的东西叫VC,由于个人编程是采用dev C++编写的,但无法设计界面,所以我决定和室友一块学习这个新东西,以下是我的成果. 本次题目要求和个人项目类似,也是写中小学试卷生成,不同的是得编写账户登录修改密码以及批改试卷等功能,所以一个清楚的界面很重要. 在界面中最经常使用的是按钮,通过点击按钮触发某个事件. 以下是我程序的第一个界面登录界面: 完成登录之后可以通过输入手机号获得验证码. 接下来是注册功能的实现. 把注册的账户名和密码储存在txt文件当中,当需要登录的时候

地铁线路项目-结对编程

地铁线路项目-结对编程 2019.7.25 完成了模块开发:填写PSP实际完成时间:完成了模块设计:进行单元测试.黑盒测试. PSP表记录: PSP2.1 Personal Software Process Stages Time Real Time Planning 计划 1h 1h ??·?Estimate ?? ·?估计这个任务需要多少时间 1h 1h Development 开发 21h 20.5h ??·?Analysis ?? ·?需求分析?(包括学习新技术) 2h 1.5h ??·

pair work结对编程(张艺 杨伊)

一.结对编程人员: 张艺(学号后三位:185) 杨伊(学号后三位:151) 二.这是我们工作的样子:(图片) 三.结对编程优缺点:  优点:  1.结对编程时间紧密,在一定程度上可以督促双方学习,提高效率. 2.Coder在coding过程中会遇到一些细小的问题,而reviewer可以及时指出错误,并给予解决方案进行讨论.  3.遇到问题时,两个人一起讨论,并补充对方没有想到的地方,是完善程序最好的方式.  缺点:  在编程过程中,很长时间是coder在coding的过程中想思路,大概这也是每个

结对编程总结,收获和教训:by张惠雨&amp;梁佳佳

这是第一次正真意义上的和朋友一起完成一个小项目,虽然国庆七天少了几天玩的时间,但是收获还是蛮多的,感谢队友每天能和我一起去码代码,让这几天过得比较有意义. 这次的结对编程项目实在以前的个人项目的基础上实现的,其中出题模块完全时个人项目的引用,敲了几天代码,感觉自己在图形界面这一方面也有了一定的基础,可以实现一些简单的小功能,但仍不可否认,编码过程中是遇到好多问题的:最开始写的界面是注册窗口,本以为只是几个简单的文本框,却没想到却花了最多的时间,仅仅就验证码的申请这一块就耗费了两天的时间,而在注册