
一 專案介紹
實作一個支持顯示地鐵線路與計算換乘的程式,上圖為對應專案的天津地鐵線路圖,
為了降低難度與簡化要求,現階段我們可以假定程式的輸入一定是正確的,同時,為了讓地鐵程式能與地鐵線路圖解耦,我們需要將地鐵線路與程式分離開,將其保存成一個可讀入的檔案,
具體地,我們要將圖1的地鐵線路資訊等用一個文本檔案(假設名字叫 subway.txt)的形式保存起來,應保存的資訊應包括地鐵線路名稱、各個地鐵站點的名稱以及車站換乘資訊,使得應用程式可以通過讀取這個檔案,就能掌握關于北京地鐵線路的所有資訊,
在開始設計程式之前,請先思考并設計一種檔案格式用于存盤地鐵資訊,一方面,這種檔案格式要簡潔易懂,可以靈活擴展,另一方面它又要方便應用程度讀取,請在博客中給出你定義的檔案格式的前5行,并以它為例簡要說明它的設計理念,
二 需求分析
1.用戶可以通過命令列啟動這個程式顯示對應的地鐵線路圖,線路圖用一個文本檔案保存,內容包含地鐵對應的線路名稱,該線路的所有站點以及車站換乘資訊,
2.用戶可以通過輸入對應的線路名稱來查詢該地鐵線路經過的所有站點名稱,在給定地鐵線路時,你的程式就需要能夠從線路的起始站點開始,依次輸出該地鐵線經過的所有站點,直到終點站,
3.用戶可以通過輸入兩個地鐵站點名稱分別作為出發與目的站,你的程式將計算從出發到目的站點之間的最短(經過的站點數最少)路線,并輸出經過的站點的個數和路徑(包括出發與目的站點),注意,如果需要換乘,請在換乘站的下一行輸出換乘的線路,
三 設計思路
1.顯示地鐵線路
針對地鐵資訊的存盤,我打算采用JAVA程式陣列 str 定義,
String[][] str;//陣列用于存放各個站點的名稱
str=new String[n][];//這里n為有n條地鐵線路
str[0]=new String[x1];//這里x1為1號線有x1個站點
······
str[n-1]=new String[xn];
文本檔案可以采用CVS或者EXCL,例

2.查詢地鐵線路
將文本檔案中的有效資料對應到程式中地鐵線路資訊,
通過用戶輸入的引數,例“1號線”,提取整型資料“1”查找到對應的str[1],輸出該陣列元素,即為依次輸出該地鐵線經過的所有站點,直到終點站,
3.推薦地鐵線路
將地鐵線路存為無向圖,每個站點為一個節點,將兩個節點之間的路徑長度都設為1,這樣就滿足計算從出發到目的站點之間的最短(經過的站點數最少)路線的要求,
通過用戶輸入的出發站和目的站這兩個節點,用Dijksta(迪杰斯特拉)演算法求兩點的最短路徑,
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/2445.html
標籤:其他
