交通咨詢(xún)模擬系統(tǒng)軟件詳細(xì)說(shuō)明_第1頁(yè)
交通咨詢(xún)模擬系統(tǒng)軟件詳細(xì)說(shuō)明_第2頁(yè)
交通咨詢(xún)模擬系統(tǒng)軟件詳細(xì)說(shuō)明_第3頁(yè)
交通咨詢(xún)模擬系統(tǒng)軟件詳細(xì)說(shuō)明_第4頁(yè)
交通咨詢(xún)模擬系統(tǒng)軟件詳細(xì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Good is good, but better carries it.精益求精,善益求善。交通咨詢(xún)模擬系統(tǒng)軟件詳細(xì)說(shuō)明詳細(xì)設(shè)計(jì)說(shuō)明書(shū)的編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)目錄詳細(xì)設(shè)計(jì)說(shuō)明書(shū)11.引言12. 系統(tǒng)的結(jié)構(gòu)23模塊說(shuō)明51. 引言1.1編寫(xiě)目的為軟件設(shè)計(jì)者提供全國(guó)交通咨詢(xún)模擬系統(tǒng)軟件的需求分析說(shuō)明預(yù)期讀者:1 開(kāi)發(fā)人員 2 審查人員 3 后續(xù)開(kāi)發(fā)1.2背景a 待開(kāi)發(fā)的軟件系統(tǒng)的名稱(chēng):全國(guó)交通咨詢(xún)模擬b 本項(xiàng)目任務(wù)提出者:段毅 開(kāi)發(fā)者:李鳳忠,孫希展,趙大輝,田佳林用戶(hù):需要查詢(xún)?nèi)珖?guó)交通狀況的旅游者 實(shí)現(xiàn)該軟件的計(jì)算中心或計(jì)算機(jī)網(wǎng)絡(luò):交通查詢(xún)終端/互聯(lián)網(wǎng)2. 系統(tǒng)的結(jié)構(gòu)21IPO圖開(kāi)始公共復(fù)用模塊用戶(hù)

2、組模塊管理員模塊交通編輯城市編輯文檔存儲(chǔ)初始化城市圖交通圖打印交通情況查詢(xún)最省時(shí)旅程查詢(xún)最省錢(qián)旅程Ps:其中任何模塊具有任何權(quán)限調(diào)用公共模塊以完成本模塊的需求22大致流程圖開(kāi)始用戶(hù)管理員結(jié)束交通編輯城市編輯最省時(shí)旅程最省錢(qián)旅程選擇用戶(hù)組選擇功能選擇功能添加線(xiàn)路修改線(xiàn)路刪除線(xiàn)路添加城市刪除城市輸入始末城市編號(hào)、出發(fā)到達(dá)時(shí)間、票價(jià)輸入始末城市編號(hào)、出發(fā)到達(dá)時(shí)間、票價(jià)輸入始末城市編號(hào)輸入城市名稱(chēng)、及與舊城市交通信息輸入城市編號(hào)按要求修改城市、飛機(jī)、列車(chē)文檔繼續(xù)操作?輸入出發(fā)、到達(dá)城市編號(hào)輸入出發(fā)、到達(dá)城市編號(hào)系統(tǒng)輸出最優(yōu)策略:出發(fā)城市、中轉(zhuǎn)城市、到達(dá)城市及其兩兩出發(fā)到達(dá)時(shí)間繼續(xù)查詢(xún)?選擇子功能NON

3、OYES顯示城市、交通信息顯示城市、交通信息初始化交通圖顯示全部交通情況顯示全部交通情況3模塊說(shuō)明統(tǒng)一規(guī)則統(tǒng)一數(shù)據(jù)結(jié)構(gòu)在概要設(shè)計(jì)里有提及,再此重述,并進(jìn)一步細(xì)化城市結(jié)構(gòu)交通圖結(jié)構(gòu)表結(jié)點(diǎn)交通圖結(jié)構(gòu)頭結(jié)點(diǎn)struct city/城市結(jié)構(gòu)體int i;/城市編號(hào)int used; /調(diào)用標(biāo)志char name20;/城市名稱(chēng)otherinfo other; /其他信息citiesMaxCity;typedef struct ArcNode/表結(jié)點(diǎn)int i;/到達(dá)城市編號(hào)Int Stime;/出發(fā)時(shí)間int Etime;/到達(dá)時(shí)間int ticket;/票價(jià)int used; /調(diào)用標(biāo)志struct

4、ArcNode *nextarc;/下一條線(xiàn)路指針otherinfo other; /其他信息做線(xiàn)路編號(hào)ArcNode;typedef struct VNode/頭結(jié)點(diǎn)int i; /出發(fā)城市編號(hào)int used; /調(diào)用標(biāo)志ArcNode *firstarc;/第一條線(xiàn)路otherinfo other; /其他信息VNode;飛機(jī)交通圖、列車(chē)交通圖VNode AdjplaneMaxCity,AdjtrainMaxCity;文檔規(guī)則在概要設(shè)計(jì)里已詳細(xì)解釋?zhuān)颂幉辉儋樖觥V档靡惶岬氖牵? 表結(jié)點(diǎn)的其他信息(other)做線(xiàn)路編號(hào),讓管理員修改和刪除命令更加人性化,操作更加簡(jiǎn)單2 交通圖的第一個(gè)結(jié)

5、點(diǎn)其他信息(Adj0.other)記錄總線(xiàn)路數(shù),及圖中邊數(shù),有利于添加線(xiàn)路,讓添加線(xiàn)路有新的線(xiàn)路編號(hào)3.1模塊描述基于IPO圖和大致流程圖,有如下模塊描述:一 管理員模塊1被調(diào)用關(guān)系:主函數(shù)main()調(diào)用2功能:完成管理員規(guī)定的功能-城市編輯、交通編輯和打印交通情況(調(diào)用公共模)3函數(shù)聲明:int Admin();4設(shè)計(jì)方法: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("選擇錯(cuò)誤,請(qǐng)重新輸入:");scanf("%d",&choose);switch(choose)case 1:CityEdit(); break;/城市編輯case 2:TrafficEdit();break;/交通編輯case 3:printfcity();printf("飛機(jī)航班情況:n&quo

7、t;);printftraffic(Adjplane);printf("列車(chē)時(shí)刻情況:n");printftraffic(Adjtrain);break;default:printf("未知錯(cuò)誤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;選擇錯(cuò)誤,請(qǐng)重新輸入:");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ī)定的下的子功能-交通編輯包括線(xiàn)路添加、修改、刪除3函數(shù)聲明:int T

9、rafficEdit();4設(shè)計(jì)方法:代碼過(guò)于冗長(zhǎng),此處用流程圖表示,便于理解交通編輯開(kāi)始編輯飛機(jī)編輯列車(chē)添加線(xiàn)路修改線(xiàn)路刪除線(xiàn)路添加線(xiàn)路修改線(xiàn)路刪除線(xiàn)路繼續(xù)操作?退回至管理員函數(shù)NOYES選擇操作選擇操作選擇操作5可調(diào)用關(guān)系:線(xiàn)路添加、修改和刪除、公共模塊6出口:遞歸調(diào)用交通編輯或管理員函數(shù)Admin();附錄:線(xiàn)路添加int AddArc(VNode Adj); 線(xiàn)路修改int ReviseArc(VNode Adj); 線(xiàn)路刪除int DeleteArc(VNode Adj);出于詳細(xì)文檔的簡(jiǎn)潔性、可讀性,這三個(gè)函數(shù)不加詳述1.2城市編輯模塊1被調(diào)用關(guān)系:管理員函數(shù)Admin()調(diào)用2功

10、能:完成管理員規(guī)定的下的子功能-城市編輯包括城市添加和刪除3函數(shù)聲明:int CityEdit();4設(shè)計(jì)方法:int CityEdit()打印城市圖選擇功能:1。添加城市2。刪除城市。Switch:1。輸入添加城市名稱(chēng)查詢(xún)最近一個(gè)調(diào)用為空的城市編號(hào),插入城市2輸入刪除城市編號(hào) 若該編號(hào)調(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文檔存儲(chǔ)模塊1被調(diào)用關(guān)系:管理員函數(shù)Admin()調(diào)用2功能:完成管理員規(guī)定的下的子功能-文檔存儲(chǔ)包括城市文檔、飛機(jī)和列車(chē)

11、的交通文檔3函數(shù)聲明:int Save()4設(shè)計(jì)方法:int Save()/保存文檔printf("正在保存信息n");SaveCity();SaveTraffic();printf("保存信息完畢n");return 1;5可調(diào)用關(guān)系:城市文檔存儲(chǔ)、飛機(jī)和列車(chē)的交通文檔存儲(chǔ)、公共模塊6出口:管理員函數(shù)Admin();附錄:交通文檔存儲(chǔ)函數(shù)int SaveTraffic(); 城市文檔存儲(chǔ)函數(shù)int SaveCity()二 用戶(hù)組模塊1被調(diào)用關(guān)系:主函數(shù)main調(diào)用2功能:完成用戶(hù)組規(guī)定的下的子功能-查詢(xún)最省時(shí)、最省錢(qián)旅程和打印交通情況3函數(shù)聲明:int

12、 User();4設(shè)計(jì)方法:int User()打印城市圖選擇功能:1。最省時(shí)旅程 2。最省錢(qián)旅程 3。打印交通情況Switch:1。最省時(shí)旅程函數(shù)Min_Time()2最省錢(qián)旅程函數(shù)Min_Money()3打印城市圖、交通圖。繼續(xù)操作?:1。繼續(xù),調(diào)用本函數(shù) 2。不繼續(xù),退回主函數(shù)5可調(diào)用關(guān)系:省時(shí)旅程函數(shù)、省錢(qián)旅程函數(shù)和公共模塊6出口:遞歸調(diào)用用戶(hù)組函數(shù)User()或主函數(shù)main();1.1最優(yōu)旅程函數(shù)模塊1被調(diào)用關(guān)系:用戶(hù)組函數(shù)User();2功能:完成用戶(hù)組規(guī)定的下的子功能-查詢(xún)最省時(shí)、最省錢(qián)旅程3函數(shù)聲明:int Min_Money();int Min_Time();4設(shè)計(jì)方法:i

13、nt Min_Time()int choose;printf("請(qǐng)選擇交通工具n");printf(" 1.飛機(jī) 2.列車(chē)n");scanf("%d",&choose);while(choose!=1 && choose!=2) printf("選擇錯(cuò)誤,請(qǐng)重新輸入:");scanf("%d",&choose);switch(choose)case 1:Minsome_DIJ(Adjplane,1);break;/飛機(jī)最短時(shí)間case 2:Minsome_DIJ(

14、Adjtrain,1);break;/列車(chē)最短時(shí)間default:printf("未知錯(cuò)誤n");system("pause");break;return 1;int Min_Money()int choose;printf("請(qǐng)選擇交通工具n");printf(" 1.飛機(jī) 2.列車(chē)n");scanf("%d",&choose);while(choose!=1 && choose!=2) printf("選擇錯(cuò)誤,請(qǐng)重新輸入:");scanf(&qu

15、ot;%d",&choose);switch(choose)case 1:Minsome_DIJ(Adjplane,2);break;/飛機(jī)最少金錢(qián)case 2:Minsome_DIJ(Adjtrain,2);break;/列車(chē)最少金錢(qián)default:printf("未知錯(cuò)誤n");system("pause");break;return 1;5可調(diào)用關(guān)系:最短路徑函數(shù)Minsome_DIJ(VNode Adj,int some)6出口:用戶(hù)組函數(shù)User();1.2最短路徑函數(shù)1被調(diào)用關(guān)系:最短時(shí)間函數(shù)int Min_Money();

16、最短路徑函數(shù)int Min_Time();2功能:完成用戶(hù)規(guī)定的下的子功能-查詢(xún)最優(yōu)旅程的兩城市最短路徑3函數(shù)聲明:int Minsome_DIJ(VNode Adj,int some)4設(shè)計(jì)方法:代碼過(guò)于冗長(zhǎng),此處用流程圖表示,便于理解 必要說(shuō)明:/以下用DJSILA算法查詢(xún)/some控制代價(jià)類(lèi)型(1為時(shí)間,2為金錢(qián))/P存儲(chǔ)路徑信息(線(xiàn)路),D存儲(chǔ)代價(jià),final存儲(chǔ)是否入圖S,lasttime記錄最后時(shí)間(與新到達(dá)線(xiàn)路做比較)最短路徑開(kāi)始退回至用戶(hù)組函數(shù)或主函數(shù)按照交通表Adj初始化代價(jià)int DMaxCity、各個(gè)城市最后到達(dá)時(shí)間LastTimeMaxCity,路徑函數(shù)ArcNode

17、*PMaxCityMaxCity打印城市圖輸入出發(fā)、到達(dá)城市編號(hào)選取最小代價(jià)min和對(duì)應(yīng)邊vMin=INFINITYv=j按照Adjv更新代價(jià)DMaxCity和路徑PMaxCityMaxCity城市i和j不通找到路線(xiàn),輸出路徑PjNONO YSE YSE5可調(diào)用關(guān)系:打印城市圖函數(shù)6出口:退回至用戶(hù)組函數(shù)或主函數(shù)三 公共模塊1.1初始化城市圖1被調(diào)用關(guān)系:主函數(shù) main()2功能:完成主函數(shù)規(guī)定城市圖的初始化3函數(shù)聲明:int InitCity(char *c) /初始化城市cities(按照c串)4設(shè)計(jì)方法: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);/取城市編號(hào),調(diào)用為真citiesj.used=1;while(*c=' '&& *c!='0') c+;/去空格while(*c!=' '&a

19、mp;& *c!='0') k+=*(c+);/讀入城市名稱(chēng)k='0'return 1;5可調(diào)用關(guān)系:得到下一個(gè)整數(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è)計(jì)方法:此處使用偽代碼:使用getint函數(shù)得到下一個(gè)整數(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個(gè)數(shù)字添加一條Adjaim下路直到轉(zhuǎn)行退出If(S串轉(zhuǎn)行)s+ ;5可調(diào)用關(guān)系:getint函數(shù)6出口:遞歸調(diào)用用戶(hù)組函數(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è)計(jì)方法: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("編號(hào) 出發(fā)城市 到達(dá)城市 出發(fā)時(shí)間 到達(dá)時(shí)間 票價(jià)n");for

22、(i=0;i<MaxCity;i+)if(Adji.used && citiesi.used) /出發(fā)城市且相關(guān)線(xiàn)路可調(diào)用next=Adji.firstarc;while(next)if(next->used && citiesnext->i.used) /到達(dá)城市可線(xiàn)路可調(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論