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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、uspublic:void save();/錄入信息void showall();/顯示所有公交路線void searchroute();/根據(jù)起始站和終點站查詢路線void del();/刪除站點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); /-打開文件-if(!outfile)cerr open errorendl; exit(1);/=按照提示錄入路線信息=docout=endl;cout線路 全程站點 起始站 終點站 票價 途經(jīng)站點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();/-對站點信息進(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路線 全程站點 起始站 終點站 票價 途經(jīng)站點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= 終點站=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、程站點 起始站 終點站 票價 途經(jīng)站點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 請乘坐route路車!endl;cout *endl;break;a=0;b=0;getline(infile,str);if(flag)cout系統(tǒng)未收錄此站點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序號:aendl;coutstraendl;a+;cout請輸入需要的刪除的路線序號:k;infile.close();ofstream outfile(c1.txt,ios:out);if(!outfile)cer

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論