




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。交通咨詢模擬系統(tǒng)軟件詳細說明詳細設(shè)計說明書的編寫詳細設(shè)計說明書目錄詳細設(shè)計說明書11.引言12. 系統(tǒng)的結(jié)構(gòu)23模塊說明51. 引言1.1編寫目的為軟件設(shè)計者提供全國交通咨詢模擬系統(tǒng)軟件的需求分析說明預(yù)期讀者:1 開發(fā)人員 2 審查人員 3 后續(xù)開發(fā)1.2背景a 待開發(fā)的軟件系統(tǒng)的名稱:全國交通咨詢模擬b 本項目任務(wù)提出者:段毅 開發(fā)者:李鳳忠,孫希展,趙大輝,田佳林用戶:需要查詢?nèi)珖煌顩r的旅游者 實現(xiàn)該軟件的計算中心或計算機網(wǎng)絡(luò):交通查詢終端/互聯(lián)網(wǎng)2. 系統(tǒng)的結(jié)構(gòu)21IPO圖開始公共復(fù)用模塊用戶
2、組模塊管理員模塊交通編輯城市編輯文檔存儲初始化城市圖交通圖打印交通情況查詢最省時旅程查詢最省錢旅程Ps:其中任何模塊具有任何權(quán)限調(diào)用公共模塊以完成本模塊的需求22大致流程圖開始用戶管理員結(jié)束交通編輯城市編輯最省時旅程最省錢旅程選擇用戶組選擇功能選擇功能添加線路修改線路刪除線路添加城市刪除城市輸入始末城市編號、出發(fā)到達時間、票價輸入始末城市編號、出發(fā)到達時間、票價輸入始末城市編號輸入城市名稱、及與舊城市交通信息輸入城市編號按要求修改城市、飛機、列車文檔繼續(xù)操作?輸入出發(fā)、到達城市編號輸入出發(fā)、到達城市編號系統(tǒng)輸出最優(yōu)策略:出發(fā)城市、中轉(zhuǎn)城市、到達城市及其兩兩出發(fā)到達時間繼續(xù)查詢?選擇子功能NON
3、OYES顯示城市、交通信息顯示城市、交通信息初始化交通圖顯示全部交通情況顯示全部交通情況3模塊說明統(tǒng)一規(guī)則統(tǒng)一數(shù)據(jù)結(jié)構(gòu)在概要設(shè)計里有提及,再此重述,并進一步細化城市結(jié)構(gòu)交通圖結(jié)構(gòu)表結(jié)點交通圖結(jié)構(gòu)頭結(jié)點struct city/城市結(jié)構(gòu)體int i;/城市編號int used; /調(diào)用標(biāo)志char name20;/城市名稱otherinfo other; /其他信息citiesMaxCity;typedef struct ArcNode/表結(jié)點int i;/到達城市編號Int Stime;/出發(fā)時間int Etime;/到達時間int ticket;/票價int used; /調(diào)用標(biāo)志struct
4、ArcNode *nextarc;/下一條線路指針otherinfo other; /其他信息做線路編號ArcNode;typedef struct VNode/頭結(jié)點int i; /出發(fā)城市編號int used; /調(diào)用標(biāo)志ArcNode *firstarc;/第一條線路otherinfo other; /其他信息VNode;飛機交通圖、列車交通圖VNode AdjplaneMaxCity,AdjtrainMaxCity;文檔規(guī)則在概要設(shè)計里已詳細解釋,此處不再贅述。值得一提的是:1 表結(jié)點的其他信息(other)做線路編號,讓管理員修改和刪除命令更加人性化,操作更加簡單2 交通圖的第一個結(jié)
5、點其他信息(Adj0.other)記錄總線路數(shù),及圖中邊數(shù),有利于添加線路,讓添加線路有新的線路編號3.1模塊描述基于IPO圖和大致流程圖,有如下模塊描述:一 管理員模塊1被調(diào)用關(guān)系:主函數(shù)main()調(diào)用2功能:完成管理員規(guī)定的功能-城市編輯、交通編輯和打印交通情況(調(diào)用公共模)3函數(shù)聲明:int Admin();4設(shè)計方法:int Admin()/管理員函數(shù)int choose,again;again = 1;while(again)system("cls");printf("nn選擇操作:nn");printf(" 1.城市編輯 2.交通
6、編輯 3.查看交通情況n");scanf("%d",&choose);while(choose!=1 && choose!=2 && choose!=3) printf("選擇錯誤,請重新輸入:");scanf("%d",&choose);switch(choose)case 1:CityEdit(); break;/城市編輯case 2:TrafficEdit();break;/交通編輯case 3:printfcity();printf("飛機航班情況:n&quo
7、t;);printftraffic(Adjplane);printf("列車時刻情況:n");printftraffic(Adjtrain);break;default:printf("未知錯誤n");system("pause");break;/system("cls");加不?printf("n繼續(xù)操作管理員?nn1.yes 2.non");scanf("%d",&again);while(again!=1&&again!=2) printf(&q
8、uot;選擇錯誤,請重新輸入:");scanf("%d",&again);if(again = 2)again = 0;/退出循環(huán),結(jié)束管理員函數(shù)Save();/保存文檔printf("感謝使用。n");system("pause");return 1;5可調(diào)用關(guān)系:交通編輯模塊、城市編輯模塊、公共模塊6出口:遞歸調(diào)用管理員函數(shù)Admin();或主函數(shù)main()的退出1.1交通編輯模塊1被調(diào)用關(guān)系:管理員函數(shù)Admin()調(diào)用2功能:完成管理員規(guī)定的下的子功能-交通編輯包括線路添加、修改、刪除3函數(shù)聲明:int T
9、rafficEdit();4設(shè)計方法:代碼過于冗長,此處用流程圖表示,便于理解交通編輯開始編輯飛機編輯列車添加線路修改線路刪除線路添加線路修改線路刪除線路繼續(xù)操作?退回至管理員函數(shù)NOYES選擇操作選擇操作選擇操作5可調(diào)用關(guān)系:線路添加、修改和刪除、公共模塊6出口:遞歸調(diào)用交通編輯或管理員函數(shù)Admin();附錄:線路添加int AddArc(VNode Adj); 線路修改int ReviseArc(VNode Adj); 線路刪除int DeleteArc(VNode Adj);出于詳細文檔的簡潔性、可讀性,這三個函數(shù)不加詳述1.2城市編輯模塊1被調(diào)用關(guān)系:管理員函數(shù)Admin()調(diào)用2功
10、能:完成管理員規(guī)定的下的子功能-城市編輯包括城市添加和刪除3函數(shù)聲明:int CityEdit();4設(shè)計方法:int CityEdit()打印城市圖選擇功能:1。添加城市2。刪除城市。Switch:1。輸入添加城市名稱查詢最近一個調(diào)用為空的城市編號,插入城市2輸入刪除城市編號 若該編號調(diào)用為真刪除之(使之調(diào)用為假)繼續(xù)操作?:1。繼續(xù),調(diào)用本函數(shù) 2。不繼續(xù),退回管理員函數(shù)5可調(diào)用關(guān)系:公共模塊6出口:遞歸調(diào)用城市編輯CityEdit()或管理員函數(shù)Admin();1.3文檔存儲模塊1被調(diào)用關(guān)系:管理員函數(shù)Admin()調(diào)用2功能:完成管理員規(guī)定的下的子功能-文檔存儲包括城市文檔、飛機和列車
11、的交通文檔3函數(shù)聲明:int Save()4設(shè)計方法:int Save()/保存文檔printf("正在保存信息n");SaveCity();SaveTraffic();printf("保存信息完畢n");return 1;5可調(diào)用關(guān)系:城市文檔存儲、飛機和列車的交通文檔存儲、公共模塊6出口:管理員函數(shù)Admin();附錄:交通文檔存儲函數(shù)int SaveTraffic(); 城市文檔存儲函數(shù)int SaveCity()二 用戶組模塊1被調(diào)用關(guān)系:主函數(shù)main調(diào)用2功能:完成用戶組規(guī)定的下的子功能-查詢最省時、最省錢旅程和打印交通情況3函數(shù)聲明:int
12、 User();4設(shè)計方法:int User()打印城市圖選擇功能:1。最省時旅程 2。最省錢旅程 3。打印交通情況Switch:1。最省時旅程函數(shù)Min_Time()2最省錢旅程函數(shù)Min_Money()3打印城市圖、交通圖。繼續(xù)操作?:1。繼續(xù),調(diào)用本函數(shù) 2。不繼續(xù),退回主函數(shù)5可調(diào)用關(guān)系:省時旅程函數(shù)、省錢旅程函數(shù)和公共模塊6出口:遞歸調(diào)用用戶組函數(shù)User()或主函數(shù)main();1.1最優(yōu)旅程函數(shù)模塊1被調(diào)用關(guān)系:用戶組函數(shù)User();2功能:完成用戶組規(guī)定的下的子功能-查詢最省時、最省錢旅程3函數(shù)聲明:int Min_Money();int Min_Time();4設(shè)計方法:i
13、nt Min_Time()int choose;printf("請選擇交通工具n");printf(" 1.飛機 2.列車n");scanf("%d",&choose);while(choose!=1 && choose!=2) printf("選擇錯誤,請重新輸入:");scanf("%d",&choose);switch(choose)case 1:Minsome_DIJ(Adjplane,1);break;/飛機最短時間case 2:Minsome_DIJ(
14、Adjtrain,1);break;/列車最短時間default:printf("未知錯誤n");system("pause");break;return 1;int Min_Money()int choose;printf("請選擇交通工具n");printf(" 1.飛機 2.列車n");scanf("%d",&choose);while(choose!=1 && choose!=2) printf("選擇錯誤,請重新輸入:");scanf(&qu
15、ot;%d",&choose);switch(choose)case 1:Minsome_DIJ(Adjplane,2);break;/飛機最少金錢case 2:Minsome_DIJ(Adjtrain,2);break;/列車最少金錢default:printf("未知錯誤n");system("pause");break;return 1;5可調(diào)用關(guān)系:最短路徑函數(shù)Minsome_DIJ(VNode Adj,int some)6出口:用戶組函數(shù)User();1.2最短路徑函數(shù)1被調(diào)用關(guān)系:最短時間函數(shù)int Min_Money();
16、最短路徑函數(shù)int Min_Time();2功能:完成用戶規(guī)定的下的子功能-查詢最優(yōu)旅程的兩城市最短路徑3函數(shù)聲明:int Minsome_DIJ(VNode Adj,int some)4設(shè)計方法:代碼過于冗長,此處用流程圖表示,便于理解 必要說明:/以下用DJSILA算法查詢/some控制代價類型(1為時間,2為金錢)/P存儲路徑信息(線路),D存儲代價,final存儲是否入圖S,lasttime記錄最后時間(與新到達線路做比較)最短路徑開始退回至用戶組函數(shù)或主函數(shù)按照交通表Adj初始化代價int DMaxCity、各個城市最后到達時間LastTimeMaxCity,路徑函數(shù)ArcNode
17、*PMaxCityMaxCity打印城市圖輸入出發(fā)、到達城市編號選取最小代價min和對應(yīng)邊vMin=INFINITYv=j按照Adjv更新代價DMaxCity和路徑PMaxCityMaxCity城市i和j不通找到路線,輸出路徑PjNONO YSE YSE5可調(diào)用關(guān)系:打印城市圖函數(shù)6出口:退回至用戶組函數(shù)或主函數(shù)三 公共模塊1.1初始化城市圖1被調(diào)用關(guān)系:主函數(shù) main()2功能:完成主函數(shù)規(guī)定城市圖的初始化3函數(shù)聲明:int InitCity(char *c) /初始化城市cities(按照c串)4設(shè)計方法:int InitCity(char *c)/初始化城市cities(按照c串)in
18、t i=0,j=0,k=0;while(i<3000 && j<MaxCity && *c!='0')k=0;while(*c=' '&& *c!='0') c+;/去空格跳至有內(nèi)容的地方if(*c = '0')continue;j = getint(&c);/取城市編號,調(diào)用為真citiesj.used=1;while(*c=' '&& *c!='0') c+;/去空格while(*c!=' '&a
19、mp;& *c!='0') k+=*(c+);/讀入城市名稱k='0'return 1;5可調(diào)用關(guān)系:得到下一個整數(shù)函數(shù)getint();6出口:主函數(shù)1.2初始化交通圖1被調(diào)用關(guān)系:主函數(shù)main()2功能:完成主函數(shù)規(guī)定交通圖的初始化3函數(shù)聲明:int Initraffic(char *t,VNode Adj)/初始化交通圖Adj(按照s串)4設(shè)計方法:此處使用偽代碼:使用getint函數(shù)得到下一個整數(shù)int Initraffic(char *t,VNode Adj)char *s;s=t;while(
20、s串結(jié)束) 若S串結(jié)束,break;若S串轉(zhuǎn)行,S+,continue;aim = getint(&s); /得到出發(fā)城市如果aim城市不可調(diào)用,轉(zhuǎn)入下一行,continue;While(s串未轉(zhuǎn)行)用getint每讀入4個數(shù)字添加一條Adjaim下路直到轉(zhuǎn)行退出If(S串轉(zhuǎn)行)s+ ;5可調(diào)用關(guān)系:getint函數(shù)6出口:遞歸調(diào)用用戶組函數(shù)User()或主函數(shù)main();1.3打印交通情況1被調(diào)用關(guān)系:任何可以調(diào)用的函數(shù)2功能:完成主函數(shù)規(guī)定城市圖交通圖的打印3函數(shù)聲明:int printftraffic(VNode Adj)/打印Adj交通圖 int printfcity()/打
21、印城市3 設(shè)計方法:int printfcity()/打印城市int i;printf("城市信息如下:nn");for(i=0;i<MaxCity;i+)if(citiesi.used)printf(" %3d.%-10s",citiesi.i,);printf("nn");return 1;int printftraffic(VNode Adj)/打印Adj交通圖int i;ArcNode *next;printf("編號 出發(fā)城市 到達城市 出發(fā)時間 到達時間 票價n");for
22、(i=0;i<MaxCity;i+)if(Adji.used && citiesi.used) /出發(fā)城市且相關(guān)線路可調(diào)用next=Adji.firstarc;while(next)if(next->used && citiesnext->i.used) /到達城市可線路可調(diào)用printf("%-4d %2d.%-6s %2d.%-6s %-8d %-8d %-4dn",next->other,Adji.i,,next->i,citiesnext->,next->Stime,next->Etime,next->ticket);next=next->nexta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 各種合同范本模板
- 廠房購房押金合同范本
- 雙方石子合同范本
- 合同范本 智能
- 取消買賣合同范本
- 書店勞務(wù)合同范本
- 去法國工作合同范本
- 廠房大清包勞務(wù)合同范本
- 返利平臺行業(yè)分析研究報告
- 勞務(wù)公司買房合同范例
- 《配電自動化運維人員培訓(xùn)考核規(guī)范(征求意見意見稿)》
- (中職組)植物病蟲害防治知識競賽考試題庫(含答案)
- 肌肉注射新版本
- 大班語言活動-海豹到哪里去了
- 小班社會《認識家用電器》課件
- 高考概率大題必練20題(理科)-含答案
- 涼水井煤礦礦山地質(zhì)環(huán)境與土地復(fù)墾方案
- 果實酚類和揮發(fā)性物質(zhì)含量特征及其與果實品質(zhì)關(guān)系的研究
- 2023年東華高級中學(xué)中考自招數(shù)學(xué)復(fù)習(xí)題及答案解析
- 結(jié)果比過程重要辯論賽
- JTG C10-2007 公路勘測規(guī)范
評論
0/150
提交評論