公交線路管理系統(tǒng)的設(shè)計(jì)_第1頁(yè)
公交線路管理系統(tǒng)的設(shè)計(jì)_第2頁(yè)
公交線路管理系統(tǒng)的設(shè)計(jì)_第3頁(yè)
公交線路管理系統(tǒng)的設(shè)計(jì)_第4頁(yè)
公交線路管理系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C+程序設(shè)計(jì)課程設(shè)計(jì)說(shuō)明書(shū)題 目公交線路管理系統(tǒng)的設(shè)計(jì)姓 名賀英杰班 級(jí)軟件 13-1 班指導(dǎo)教師周李涌日 期2014年6月23日內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書(shū)課程名稱C+語(yǔ)言課程設(shè)計(jì)設(shè)計(jì)題目公交線路管理系統(tǒng)的設(shè)計(jì)指導(dǎo)教師周李涌時(shí)間2014春學(xué)期 第18、19周一、教學(xué)要求1. 鞏固和加深學(xué)生對(duì)C+語(yǔ)言課程的基本知識(shí)的理解和掌握2. 掌握C+語(yǔ)言編程和程序調(diào)試的基本技能3. 利用C+語(yǔ)言進(jìn)行基本的軟件設(shè)計(jì)4. 掌握書(shū)寫(xiě)程序設(shè)計(jì)說(shuō)明文檔的能力5. 提高運(yùn)用C+語(yǔ)言解決實(shí)際問(wèn)題的能力二、設(shè)計(jì)資料及參數(shù)用C+設(shè)計(jì)一個(gè)系統(tǒng),能提供下列服務(wù):(1)錄入公交信息,格式為:線路全程站點(diǎn)起始終點(diǎn)途經(jīng)票價(jià)110包

2、頭火車站恰特內(nèi)科大,技校,云龍,包鋼三中,科隆,八一公園,包百,包鋼招待所1可增加線路數(shù)據(jù)。(2)瀏覽線路信息,可顯示出所有公交線路,按照線路編號(hào)由小到大排序。(3)修改路線:可按線路編號(hào)查詢,可按起始站,終點(diǎn)站查詢后進(jìn)行修改。(4)線路查詢。輸入當(dāng)前所在站點(diǎn)和要去的站點(diǎn),找到應(yīng)乘坐的公交線路,如輸入起點(diǎn)=八一公 園,到站=內(nèi)科大,查找后應(yīng)輸出“請(qǐng)乘坐1路公交車”,有多個(gè)查找結(jié)果時(shí),按照線路編號(hào)由小到大輸出。三、設(shè)計(jì)要求及成果根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為;(2)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;(3)完成類層次中各個(gè)類的描述(包

3、括屬性和方法);(4)完成類中各個(gè)成員函數(shù)的定義;(5)完成系統(tǒng)的應(yīng)用模塊;(6)功能調(diào)試;(7)提交課程設(shè)計(jì)報(bào)告:完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書(shū)目錄目錄2第一章 需求分析3第二章 總體設(shè)計(jì)4第三章 bus類的設(shè)計(jì)5第四章 詳細(xì)設(shè)計(jì)64.1工程視圖64.2類圖視圖64.3函數(shù)的調(diào)用關(guān)系74.4主程序流程圖84.5主要算法的流程圖8第五章 測(cè)試10第六章 總結(jié)14附錄:程序代碼15第一章 需求分析以文件操作為基礎(chǔ),完成對(duì)數(shù)據(jù)信息的相關(guān)操作。要求設(shè)計(jì)類(或類模板)來(lái)描述集合,包含必要的構(gòu)造函數(shù)和析構(gòu)函數(shù),以及其他能夠完成如下功能的成員函數(shù):文件的輸入和輸出查詢文件中的元素、數(shù)據(jù)對(duì)文件中進(jìn)行插入

4、、刪除元素實(shí)現(xiàn)文件元素的并、交、差運(yùn)算并設(shè)計(jì)主函數(shù)測(cè)試該類。設(shè)計(jì)要求及成果根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為;(2)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;(3)完成類層次中各個(gè)類的描述(包括屬性和方法);(4)完成類中各個(gè)成員函數(shù)的定義;(5)完成系統(tǒng)的應(yīng)用模塊;(6)功能調(diào)試;(7)提交課程設(shè)計(jì)報(bào)告:完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書(shū)第二章 總體設(shè)計(jì)系統(tǒng)功能包括:錄入線路信息,顯示所有路線信息,刪除路線,站站查詢(輸入起始站和終點(diǎn)站,查詢經(jīng)過(guò)兩站的路線)。系 統(tǒng) 功 能輸入路線信息顯示所有路線刪除路線站站查詢亂序輸入則按正序錄入亂序輸入

5、則按正序輸出整線刪除后重新錄入并正序錄入任意兩站查詢并顯示提示第三章 bus類的設(shè)計(jì)bus類的設(shè)計(jì):class bus函數(shù)成員:public:void save();/錄入信息void showall();/顯示所有公交路線void searchroute();/根據(jù)起始站和終點(diǎn)站查詢路線void del();/刪除站點(diǎn)void sort();/排序數(shù)據(jù)成員private:int route,station,price;string start;string end;string pass30;對(duì)bus類的說(shuō)明:由于本系統(tǒng)設(shè)計(jì)初衷為的是管理公交系統(tǒng),所以利用C+語(yǔ)言來(lái)編寫(xiě)系統(tǒng)時(shí),來(lái)設(shè)計(jì)一個(gè)bu

6、s類來(lái)管理公交線路信息,bus類中包含5個(gè)成員函數(shù),他們分別或共同來(lái)實(shí)現(xiàn)主程序中的4個(gè)功能:1. void save()和void sort()共同完成信息的錄入功能。2. void showall()來(lái)完成信息的屏幕輸出功能。3. void searchroute()來(lái)完成站點(diǎn)的無(wú)序查詢功能。第四章 詳細(xì)設(shè)計(jì)4.1工程視圖 4.2類圖視圖4.3函數(shù)的調(diào)用關(guān)系main() 主程序顯示菜單 menu()輸入信息Save()清屏根據(jù)起始站和終點(diǎn)站查詢路線void searchroute()顯示所有公交路線void showall()刪除站點(diǎn)void del()排序void sort()排序void

7、 sort()4.4主程序流程圖算法:主程序主要用運(yùn)了switch結(jié)構(gòu),使得主程序更加方便的調(diào)用成員函數(shù),各個(gè)成員函數(shù)間的關(guān)系也清晰明了。開(kāi)始輸入與功能相對(duì)應(yīng)的序號(hào)執(zhí)行功能結(jié)束是否存在否是 4.5主要算法的流程圖 算法:此函數(shù)用運(yùn)了ofstream文件 開(kāi)始 操作,將文件寫(xiě)入到磁盤(pán)中的c1.txt中。是信息輸入保存成功 是否繼續(xù)錄入 否結(jié)束錄入返回主界面 開(kāi)始顯示保存的線路信息結(jié)束返回主界面 算法:此函數(shù)用運(yùn)ifstream函 數(shù)讀取文本文件的內(nèi)容,然后將 其顯示到屏幕上。否輸入刪除輸入要?jiǎng)h除的線路開(kāi)始是否正確輸入函數(shù)結(jié)束 算法:此函數(shù)先通過(guò)ifstream函數(shù)讀取c1.txt中的內(nèi)容,然后修

8、改之在通過(guò)ofstream函數(shù)將修改過(guò)的數(shù)據(jù)存入c1.txt中。開(kāi)始是 是否輸入數(shù)據(jù)開(kāi)始是否正確執(zhí)行并顯示結(jié)果結(jié)束算法:此函數(shù)先讀取c1.txt中內(nèi)容,然后通過(guò)for循環(huán)找出符合條件的線路,最后將線路輸出到屏幕。第五章 測(cè)試1.主界面:2.輸入路線信息:在主界面輸入1,進(jìn)入“輸入路線信息”功能,按提示依次輸入“線路”、“全程站點(diǎn)”、“起始站”、“終點(diǎn)站”、“票價(jià)”、“途經(jīng)站點(diǎn)”,中間用空格隔開(kāi),回車,則結(jié)束輸入。保存成功后提示是否再次輸入,Y則繼續(xù)輸入,N則結(jié)束到主界面。3.顯示所有路線信息:在主界面時(shí),輸入2,顯示所有路線信息。4刪除路線:在主界面時(shí),輸入3,進(jìn)入刪除界面,輸入要?jiǎng)h除的線路的

9、序號(hào),回車結(jié)束。并提示是否輸入新線路,Y則繼續(xù)輸入,N則結(jié)束到主界面。5.站站查詢: 在主界面,輸入4,進(jìn)入查詢界面。然后按照提示輸入要查詢的兩個(gè)站點(diǎn),回車結(jié)束,結(jié)果如下:第六章 總結(jié)這次課程設(shè)計(jì)花費(fèi)了將近30天時(shí)間,在這期間我第一次體驗(yàn)到編程的困難,但在程序順利運(yùn)行出結(jié)果時(shí)也體驗(yàn)到了很大的成就感,這種成就感讓我興奮不已。這次經(jīng)歷給我感觸最深的地方就是,注重細(xì)節(jié)。在剛閱讀完課程設(shè)計(jì)任務(wù)書(shū)的時(shí)候,我只粗略想了一下總體設(shè)計(jì),感覺(jué)可以輕松完成任務(wù)。但在接下來(lái)的幾十天中,我才感受到什么叫做細(xì)節(jié)決定成敗。就在寫(xiě)第一個(gè)函數(shù)時(shí),我就遇到了不小的麻煩??此撇婚L(zhǎng)的幾十行代碼,寫(xiě)起來(lái)卻十分費(fèi)力。中間不容有一點(diǎn)兒大

10、意,一點(diǎn)小小的錯(cuò)誤會(huì)浪費(fèi)很多的時(shí)間去尋找與改錯(cuò)。而調(diào)試更是花了兩周的時(shí)間,期間不斷地發(fā)現(xiàn)錯(cuò)誤,不斷地改正錯(cuò)誤,在這樣的過(guò)程中收獲也是很多的。雖然寫(xiě)代碼過(guò)程中遇到數(shù)不盡的難題,但在同學(xué)的啟發(fā)與老師的幫助下。我終于克服重重困難完成了設(shè)計(jì),這是我自己努力付出的結(jié)果,也有同學(xué)和老師的熱心幫助的回報(bào),沒(méi)有他們的幫助,我沒(méi)有信心能夠?qū)懗鐾暾某绦颉_@是一次難得的歷練,它讓我認(rèn)識(shí)到編程不盡需要豐富的只是和經(jīng)驗(yàn),更需要認(rèn)真仔細(xì)的態(tài)度去面對(duì)。附錄:程序代碼#include#include#include#include#includevoid menu();using namespace std;class b

11、uspublic:void save();/錄入信息void showall();/顯示所有公交路線void searchroute();/根據(jù)起始站和終點(diǎn)站查詢路線void del();/刪除站點(diǎn)void sort();/排序private:int route,station,price;string start;string end;string pass30;/-錄入路線信息-void bus:save()string pass30,busstart,busend;int busroute,busstation,busprice,i;char x;ofstream outfile(c1.

12、txt,ios:app); /-打開(kāi)文件-if(!outfile)cerr open errorendl; exit(1);/=按照提示錄入路線信息=docout=endl;cout線路 全程站點(diǎn) 起始站 終點(diǎn)站 票價(jià) 途經(jīng)站點(diǎn)busroute;route=busroute;if(route=0)break;outfileleftsetw(10)busstation;station=busstation;outfileleftsetw(10)busstart;start=busstart;outfileleftsetw(10)busend;end=busend;outfileleftsetw(

13、10)busprice;price=busprice;outfileleftsetw(10)price;for(i=0;i30,ipassi;outfileleftsetw(10)passi;outfilern;cout路線信息已成功保存!endl;cout是否繼續(xù)錄入路線信息:endl;couty.是n.否x;while(x=y|x=Y);outfile.close();/=關(guān)閉文件=sort();/-對(duì)站點(diǎn)信息進(jìn)行排序-struct fbrstring buspass30,busstart,busend;int busstation,busprice;void bus:sort()stru

14、ct fbr fbr2100;int busroute100,i,j;ifstream infile(c1.txt,ios:in);if(!infile)cerr Open errorbusrouteifbr2i.busstationfbr2i.busstartfbr2i.busendfbr2i.busprice)for(j=0;jfbr2i.buspassj;if(fbr2i.buspassj=fbr2i.busend)break;i+;for(int m=0;mi-1;m+)int br=m,br2;struct fbr fbr3;for(int n=m+1;nbusrouten)br=n

15、;if(m!=br)br2=busroutem;busroutem=busroutebr;busroutebr=br2;fbr3=fbr2m;fbr2m=fbr2br;fbr2br=fbr3;infile.close();ofstream outfile(c1.txt,ios:out);if(!outfile)cerr Open errorendl;exit(1);for(int ii=0;iii;ii+)route=busrouteii;outfileleftsetw(10)route;station=fbr2ii.busstation;outfileleftsetw(10)station;

16、start=fbr2ii.busstart;outfileleftsetw(10)start;end=fbr2ii.busend;outfileleftsetw(10)end;price=fbr2ii.busprice;outfileleftsetw(10)price;for(int kl=0;kl30,klstation;kl+)passkl=fbr2ii.buspasskl;outfileleftsetw(10)passkl;outfilern;cout完成!endl;outfile.close();/-顯示所有路線-void bus:showall()string buspass,bus

17、start,busend,str;ifstream infile(c1.txt,ios:in); if(!infile)cerr 0pen errorendl;exit(1);cout路線 全程站點(diǎn) 起始站 終點(diǎn)站 票價(jià) 途經(jīng)站點(diǎn)endl;while(getline(infile,str)cout=endl;coutstrendl;cout=endl;infile.close();/-站站查詢-void bus:searchroute()system(cls);bool flag=true;string pass30,start,end,ch1,ch2,a,b,str;int station,

18、price;ifstream infile(c1.txt,ios:in); if(!infile)cerr open errorendl;/fopenexit(1);cout=endl;cout= 起始站=endl;cout=ch1;cout=endl;cout= 終點(diǎn)站=endl;cout=ch2;while(infileroutestationstartendprice)for(int i=0;ipassi;if(passi=ch1)a=passi;if(passi=ch2)b=passi;if(passi=end)if(a=ch1&b=ch2)coutendl-endl;cout路線 全

19、程站點(diǎn) 起始站 終點(diǎn)站 票價(jià) 途經(jīng)站點(diǎn)endl;coutendl-endl;coutroute station start end price ;for(int j=0;j=i;j+)coutpassj;if(j!=i)cout-;flag=false;coutendl *endl;cout 請(qǐng)乘坐route路車!endl;cout *endl;break;a=0;b=0;getline(infile,str);if(flag)cout系統(tǒng)未收錄此站點(diǎn)endl;infile.close();void bus:del()string str100;int k,i=1,a=1;char l;string start100,end100,pass100;ifstream infile(c1.txt,ios:in);if(!infile)cerr open errorendl;exit(1);while(getline(infile,stra)cout序號(hào):aendl;coutstraendl;a+;cout請(qǐng)輸入需要的刪除的路線序號(hào):k;infile.close();ofstream outfile(c1.txt,ios:out);if(!outfile)cer

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論