ペアプログラミング作業(地下鉄ラインの問題)
タスク
コマンドラインプログラムを計画地下鉄の走行経路の実現を支援します。
1.要件:
要件1:
計算し、地下鉄のライン転送を表示するための支援プログラムを実装する(C ++ / C#の場合は、コンパイルされたバイナリファイル名はsubway.exeでなければなりません。Javaプロジェクト、ファイル名はsubway.javaでなければならない主な方法のため)。その後、ユーザーは、コマンドラインからプログラムを起動することができます。プログラムが起動すると、それは別のコマンドに対応するコマンドラインパラメータを読み込みます。情報の地下鉄マップのために、我々はパラメータ-mapフラグとしてそれを採用することに合意しました。情報の地下鉄マップを取得するために、プログラムが開始さを読み取ることによって、対応するカスタムファイルの地下鉄(指定subway.txt)-mapパラメータを取得する必要があります。
要件2:
ユーザーがサイトを通じてクエリを指定地下鉄ラインにしたいです。アプリケーションでは、新しいコマンドラインパラメータをサポートする必要がある -a
クエリの地下鉄線へのユーザーの希望を指定します。したがって、所与の地下鉄ラインでは、ライン、ターミナルまで地下鉄線を介してすべてのサイトを順次出力の開始部位からプログラムを起動することができる必要があります。使用して出力ファイル -o
のコマンドライン引数を。
要件3:
ユーザーが地下鉄を利用したいが、彼は、ユーザーが洪湖市を知りたいなど、目的に出発物質として使用され、コマンドライン上の2つの地下鉄の駅-bパラメータ名に追加できるように、開始点から目的地に到達するためのステーションの最小数を渡すために期待しています内部の復興の道との間の最短ルートは、どのように、彼はプログラムが書き込みroutine.txtになりますようにする次のコマンドを使用することができます。
2.PSP
PSP 2.1 | パーソナルソフトウェアプロセス段階 | 時間 |
---|---|---|
プランニング | 計画 | |
・見積り | •このタスクが必要と推定どのくらいの時間 | 2週間 |
開発 | 開発 | |
・分析 | (新しい技術を学ぶ含む)・ニーズ分析 | 2日 |
・デザインスペック | 設計ドキュメントの生成 | 1日 |
・デザインレビュー | ・デザインレビュー(と彼の同僚は、設計文書を見直し) | 1日 |
・コーディング標準 | ・コードの仕様(現在の開発のための適切な規範の開発) | 1日 |
・ 設計 | ・具体的な設計 | 2日 |
・コーディング | ・具体的なコーディング | 2日 |
・コードレビュー | ・コードレビュー | 1日 |
・テスト | ・テスト(セルフテスト、コードを変更し、変更を提出) | 1日 |
報告 | レポート | |
・ 試験報告書 | ・テストレポート | 0.5day |
・サイズ測定 | ・コンピューティングのワークロード | 0.5day |
・死後&プロセス改善計画 | ・後知恵、およびプロセス改善計画を提案します | 1日 |
トータル | 15日間 |
第二に、インターフェースモジュールの設計と実装の計算
第三に、インターフェイスの計算モジュールの設計と実装:
1.説明ソースデータ構造。
行は行を表し、線配列は、最初の行として、日付線であるコンマ局によって分離され、一つのラインを表し、シーケンシャル
2. Entityクラスのプロパティ
エンティティクラスは、ステーションを定義します
情報は、以下に含まれます
プライベート文字列名;地下鉄駅の//名前、仮定一意あって
公共の駅の前に、上記の駅lineno行目の前に//サイト
の次のパブリック駅、駅上記LINENO行の後に//サイト
//サイト特定のターゲットステーションすべてのステーションが設定されて(キー)(値)に、前と後のシーケンスが残っている
プライベート地図<駅、LinkedHashSetの<駅 >> orderSetMap =新しいHashMapの<駅、LinkedHashSetの<駅>>();
3.キークラス(地下鉄)を達成するためのアルゴリズムとの考え:
最短経路アルゴリズムS2 S1駅から駅へダイクストラの最短経路を使用して//計算
ます。public void計算(ステーションS1、ステーション S2)。
//、各ステーションのステーションパラメータへの最短距離を取得局が1の距離だけ離間など
プライベート駅getShortestPath(基地局)。
//駅上記の行の交差を含む、駅のパラメータに直接接続されているすべてのステーションを取得
プライベートリスト<駅> getAllLinkedStations(駅の駅)。
//出力パス出力コンテンツ
パブリック静的ボイド出力(文字列[]コンテンツ、文字列ouputPath)。
プロジェクトディレクトリをディスプレイ4
IV。テスト結果と実行
V.概要:
プログラムが完了した後に、このペアを通じ、多くの問題を発見し、私は能力の独自の欠如を感じる、またはプログラミングの難しさがあったが、その後、質問プログラミング過程で学生に尋ねる、チームメイトは辛抱強く私に説明し、いくつかの実用的な学び操作の知識、トレーニングプログラム、2つの最短経路アルゴリズムを検討するために、ダイクストラのアルゴリズムが短い中で、最短経路問題コードの特定の実装、マップやストレージ、入力と出力の問題を解決するために使用され、ヘルプチームメイトや素晴らしい、私のチームメイトのおかげで、私は多くの知識を習得させ、あるいは人によって私はこの仕事を達成することができませんでした。
六、Githubのアドレスします。https://github.com/zxy960828/subway.git