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