個人項目-地鐵出行路線規划程序


截止時間2016.09.17,12:00。

圖 1 北京地鐵線路

任務:實現一個幫助進行地鐵出行路線規划的命令行程序。

要求:

1. 使用Visual Studio Community 2015進行開發,采用C++或者C#語言實現,可以使用.Net Framework,運行環境為64-bit Windows 10

2. 提交的代碼要求經過Code Quality Analysis工具的分析並消除所有的警告。Code Quality Analysis工具的用法參見:

http://msdn.microsoft.com/en-us/library/dd264897.aspx

3. 請使用性能分析工具來找出代碼中的性能瓶頸並進行改進。

4. 寫出至少10個測試用例確保你的程序能夠正確處理各種情況。

5. 使用Github來管理源代碼和測試用例。

 

作業提交:

  • 在個人博客上發布項目源代碼的Github鏈接,以便助教下載,助教將會在測試環境中檢查程序的正確性
  • 正確的程序會再進行性能測試,根據性能的好壞進行評分;不正確的程序沒有性能的分數。
  • 撰寫一個博客,要求參見博客作業要求。

 

需求:

1. 把圖1中的所有地鐵線路、站點和換乘信息等用一個文本文件(假設名字叫 beijing-subway.txt的形式保存起來,應保存的信息應包括地鐵線路名稱、各個地鐵站點的名稱以及車站換乘信息,使得應用程序可以通過讀取這個文件,就能掌握關於北京地鐵線路的所有信息。請設計一種文件格式用於保存信息並方便應用程序讀取,並說明你采取這種格式的理由。 為了簡單起見,所有暫緩開通的站點都認定為已經開通。

2. 實現一個命令行程序(不妨叫 subway.exe),這個程序啟動時會讀取beijing-subway.txt中的信息,然后等待用戶的輸入,用戶可以輸入地鐵線路的名稱,然后程序就輸出此地鐵線路的所有站點名稱(按某一方向順序輸出即可)。輸出站點名稱后,程序再次進入等待狀態。每一線路的起始站點如下:

地鐵線路名稱

起始站點

地鐵一號線

蘋果園

地鐵二號線

積水潭

地鐵四號線

安河橋北

地鐵五號線

宋家庄

地鐵六號線

海淀五路居

地鐵七號線

北京西站

地鐵八號線

朱辛庄

地鐵九號線

郭公庄

地鐵十號線

巴溝

地鐵十三號線

西直門

地鐵十四號線東段

善各庄

地鐵十四號線西段

張郭庄

地鐵十五號線

俸伯

地鐵八通線

四惠

地鐵昌平線

南邵

地鐵亦庄線

宋家庄

地鐵房山線

蘇庄

地鐵機場線

東直門

 

3. 程序在讀取beijing-subway.txt中信息時,不僅能夠處理格式正確的文件,還能夠處理各種異常的情況。

4. 在命令行中以-b參數加兩個地鐵站點名稱執行程序時,例如

subway.exe -b station1 station2

將計算從第一個站點station1到第二個站點station2的最短(經過的站點數最少)路線,並返回經過的站點的個數和路徑,如果有換乘,請列出換乘的線路。輸出格式如下:

4

知春路

知春里

海淀黃庄換乘地鐵四號線

中關村

5. 在命令行中以-c參數加兩個地鐵站點名稱執行程序時,例如

subway.exe -c station1 station2

將計算從第一個站點station1到第二個站點station2的換乘最少的最短路線,並返回經過的站點的個數和路徑,如果有換乘,請列出換乘的線路。輸出格式同上。

 

附加題

擴展命令行程序,使其以-a參數加一個地鐵站點名稱執行程序時,例如

subway.exe –a station

將計算從站點station出發,最快(經過的站點數最少,若一個站點經過多次需重復計算)地遍歷地鐵的所有車站並回到起點的路線,要求

a. 換乘不出地鐵系統,即不能從一個地鐵口走到路面,然后從另一個站進去;

b. 只用經過一次,就算經過車站。

程序輸出總共經過多少站,以及經過的站名。舉例來說,假如地鐵系統只有知春路和西土城兩個站,從知春路站出發,那么這個程序應該輸出:

3

知春路

西土城

知春路

 

博客撰寫要求:

發表在你的個人博客上,也可以同時轉發到你的團隊博客上來增加你們團隊博客的人氣。具體要求如下:

1)在開始實現程序之前,使用下述PSP表格記錄下你估計將在程序的各個模塊的開發上耗費的時間

2)在你實現完程序之后,使用下述PSP表格記錄下你在程序的各個模塊上實際花費的時間

3)記錄你在改進程序性能上花費了多少時間,描述你改進的思路,並展示一張性能分析的圖(由VS 2015的性能分析工具自動生成),並展示你程序中消耗最大的函數。

4)共享你對程序進行測試的至少10個測試用例,以及說明為什么你能確定你的程序是正確的。

5)說明你在個人項目中學到了什么。

 

PSP 2.1

Personal Software Process Stages

Time

Planning

計划

 

  · Estimate

  · 估計這個任務需要多少時間

 

Development

開發

 

  · Analysis

  · 需求分析 (包括學習新技術)

 

  · Design Spec

  · 生成設計文檔

 

  · Design Review

  · 設計復審 (和同事審核設計文檔)

 

  · Coding Standard

  · 代碼規范 (為目前的開發制定合適的規范)

 

  · Design

  · 具體設計

 

  · Coding

  · 具體編碼

 

  · Code Review

  · 代碼復審

 

  · Test

  · 測試(自我測試,修改代碼,提交修改)

 

Reporting

報告

 

  · Test Report

  · 測試報告

 

  · Size Measurement

  · 計算工作量

 

  · Postmortem & Process Improvement Plan

  · 事后總結並提出過程改進計划

 

 

合計

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM