北京地鐵出行路線規劃命令列程式
需求分析
1.實作一個地鐵出行路線規劃命令列程式
2.設計自定義地鐵檔案,存盤并讀取地鐵線路,
支持采用引數 -map 作為標志,來獲取對應的自定義地鐵檔案,例如:
java subway -map subway.txt
3.輸出特定地鐵線路,
支持采用引數 -a 來指定地鐵線路,采用引數 -o 來輸出到指定檔案station.txt,例如:
java subway -a 1號線 -map subway.txt -o station.txt
4.根據起點終點站點,輸出最短路線并輸出,
支持采用引數 -b 來指定出發地與目的地,例如:
java subway -b 洪湖里 復興路 -map subway.txt -o routine.txt
5.對于錯誤的輸入,在保證程式不報錯的情況下,正確輸出錯誤原因,
存盤方式
考慮到讀取檔案易于編輯,直接采用最簡單的存盤方式,每行第一個字串為線路名稱,后面跟著的字串為從起點至終點的每一個站點
例如:
1號線 劉園 西橫堤 ... ... 雙橋河... ... ... ...... ... ... ...... ... ... ...9號線 天津站 大王莊... ...東海路
資料結構
因為一般地鐵線路圖屬于稀疏圖,使用鄰接表存盤,因為涉及換乘,不同線路間還存在重合路徑,兩站之間的通路可能屬于多個線路,故在鄰接表中,除了存盤該節點相連的節點外,還要存盤該條邊屬于的地鐵線路,
演算法設計
較為簡單的最短路演算法,使用優先佇列優化的dijkstra演算法即可實作最短路徑的規劃,以經過站點為第一優先,換成站點為第二優先即可,對于每個站點,僅考慮其第一次出隊,即可處理不同線路路線重合的問題,
ps,,,看到題目中輸出形式,我感覺問題很大啊,既然是地鐵出行,首先上什么車都不輸出的話,如果從一個地鐵樞紐站出發,難道還要用戶自己去找幾號線嗎,由此引申的問題就是,當不同線路之間路徑有重合,從在重合路徑上的站點出發,該上那條線路的問題,我覺得既然是地鐵線路推薦,在經過站點相同的情況下,應該輸出換乘最少的方案,
可能出現的例外
1.讀取檔案不存在或錯誤
2.輸入線路、站點不存在或者不存在地鐵路線滿足要求
3.引數錯誤
專案計劃
| PSP 2.1 | Personal Software Process Stages | Time |
|---|---|---|
| Planning | 計劃 | |
| · Estimate | · 估計這個任務需要多少時間 | 1h |
| Development | 開發 | |
| · Analysis | · 需求分析 (包括學習新技術) | 1h |
| · Design Spec | · 生成設計檔案 | 1h |
| · Design Review | · 設計復審 (和同事審核設計檔案) | 0.5h |
| · Coding Standard | · 代碼規范 (為目前的開發制定合適的規范) | 1.5h |
| · Design | · 具體設計 | 3h |
| · Coding | · 具體編碼 | 3h |
| · Code Review | · 代碼復審 | 2h |
| · Test | · 測驗(自我測驗,修改代碼,提交修改) | 3h |
| Reporting | 報告 | |
| · Test Report | · 測驗報告 | 1h |
| · Size Measurement | · 計算作業量 | 1h |
| · Postmortem & Process Improvement Plan | · 事后總結, 并提出程序改進計劃 | 1.5h |
| 合計 | 18.5h |
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/2446.html
標籤:其他
上一篇:關于天津地鐵線路專案的分析
下一篇:軟體開發工具(第1章:緒論)
