




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上C+程序設計課程設計說明書題 目長途客運售票管理系統(tǒng)的設計學 號姓 名指導教師日 期專心-專注-專業(yè)內蒙古科技大學課程設計任務書課程名稱面向對象程序設計A課程設計設計題目長途客運售票管理系統(tǒng)的設計指導教師時間一、教學要求1. 鞏固和加深學生對C+語言課程的基本知識的理解和掌握2. 掌握C+語言編程和程序調試的基本技能3. 利用C+語言進行基本的軟件設計4. 掌握書寫程序設計說明文檔的能力5. 提高運用C+語言解決實際問題的能力二、設計資料及參數用C+設計一個系統(tǒng),能提供下列服務:(1)錄入車次信息,格式為:車次開車時間起始終點票價剩余座位22120:30包頭北京310
2、87可不定時地增加車次數據。(2)瀏覽車次信息,可顯示出所有車次,如果當前系統(tǒng)時間超過了某車次的發(fā)車時間,則顯示“此班車已發(fā)出”的提示信息。(3)查詢路線:可按車次編號查詢,可按起始站,終點站查詢(4)售票和退票功能A:查詢車次編號或站點。當剩余座位數大于0,并且當前系統(tǒng)時間小于開車時間時才能售票,售票后自動更新剩余座位數。B:退票時,輸入退票的車次,當本班車未發(fā)出時才能退票,退票后自動更新剩余座位數。三、設計要求及成果根據系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為;(2)根據問題描述,設計系統(tǒng)的類層次;(3)完成類層次中各個類的描述(包括屬性
3、和方法);(4)完成類中各個成員函數的定義;(5)完成系統(tǒng)的應用模塊;(6)功能調試;(7)提交課程設計報告:完成系統(tǒng)總結報告以及系統(tǒng)使用說明書目錄第1章 需求分析1.1設計資料及參數用C+設計一個系統(tǒng),能提供下列服務:(1)錄入車次信息,格式為:車次發(fā)車時間起始終點硬座票價剩余座位k26420:30包頭北京110200可不定時地增加車次數據。(2)瀏覽車次信息,可顯示出所有車次,如果當前系統(tǒng)時間超過了某車次的發(fā)車時間,則顯示“此班列車已發(fā)出”的提示信息。(3)查詢路線:可按車次編號查詢,可按起始站,終點站查詢(4)售票和退票功能A:查詢車次或站點。當剩余座位數大于0,并且當前系統(tǒng)時間小于發(fā)車
4、時間時才能售票,售票后自動更新剩余座位數。B:退票時,輸入退票的車次,當本班列車未發(fā)出時才能退票,退票后自動更新剩余座位數。第2章 總體設計2.1用結構框圖表示各個功能之間的關系2.2將框圖中系統(tǒng)的各個功能用文字詳細的描述。1.鐵路售票管理系統(tǒng)理解:系統(tǒng)中必須有車次信息,車次信息應該是由管理員錄入,可由管理員或者乘客查看,定退票及其他操作。其中要注意的是錄入信息必須是由管理員完成的,所以我會創(chuàng)建一個乘客類,然后創(chuàng)建管理員類繼承乘客類,進而繼承乘客的所有功能,并添加錄入信息的功能。信息的載體可以使鏈表,也可以是數組,因為我更加熟悉數組,所以我用對象數組。(為了熟悉鏈表,課下自己還建立了以鏈表存放
5、數據的系統(tǒng))系統(tǒng)錄入信息的操作非常枯燥,所以我創(chuàng)建了一個文件,把每次錄入的信息保存入文件,在下一次進入系統(tǒng)是,它會默認讀取文件原有的信息,當然也可以隨時添加錄入車次信息。然后系統(tǒng)的各個功能僅僅是通過查詢找到具體對象的具體數據進行操作。 2.基本功能:錄入次、始發(fā)站、終點站、開車時間(小時、分鐘)、票價、剩余票數等信息。瀏覽車次查看所有的錄入車次其中開車時間小于當前時間的車次則輸出車次已發(fā)出。查詢車次通過搜索車次或站點來快速的查看車輛的信息。定退票車時間大于當前系統(tǒng)時間的前提下才可退票并且在票數大于零的前提下才可定票,票數更新。文件的存儲存儲錄入的車次信息以便下次訪問。文件的讀取讀取文件內的信息
6、方便操作以上的各項功能;。第3章 類的設計3.1 service類的設計(第一個類)1.畫出類圖2.對類的函數成員的說明定義了一個service 類,類中包括以下幾部分:公有繼承了user類私有段:定義車輛的車次、開車時間(小時、分鐘)、始發(fā)站、終點站、票價、票數。公有段依次為輸入函數、輸出函數、定票函數、退票函數。添加設定信息函數。友元函數查詢函數、瀏覽函數、文件存儲函數、文件讀取函數。添加輸入函數。3.2 user類的設計(第二個類)1.畫出類圖2.對類的函數成員的說明定義了一個user 類,類中包括以下幾部分:私有段:定義車輛的車次、開車時間(小時、分鐘)、始發(fā)站、終點站、票價、票數。公
7、有段依次為輸出函數、定票函數、退票函數。友元函數查詢函數、瀏覽函數、文件存儲函數、文件讀取函數。3.3全局變量,重要形式參數、局部變量等等,它們的命名及用途解釋g-num:確定數組對象的個數,也是控制循環(huán)的條件。ticketj:代表具體的某個對象。A: bool型,判斷使用者身份。B: bool型,判斷是否退出程序。t: long型,獲得當前距1970年秒數。pt: tm 指向類的對象的指針,指向當前時間。Functionnumber:整型,選擇功能。第4章 詳細設計4.1 工程視圖說明有幾個源代碼文件,可以截取工程文件視圖表示4.2 類圖視圖4.3 主程序流程圖4.4 主要算法的流程圖第5章
8、 測試5.1驗證身份后登陸5.2錄入信息并保存5.3驗證身份5.4查詢車次5.5查詢子菜單5.6退、訂票第6章 總結課程設計旨在鍛煉學生的實際動手能力和解決真實問題的能力。并在其中掌握和熟練所學的知識,并能夠運用所學知識解決比較簡單的現實模擬問題。在為期兩周的C+課程設計中,我體會頗多,學到了很多東西。我加強了對C+程序設計這門課程的認識,并且復習了以前學到的知識。這些都使得我對計算機語言的學習有了更深入的認識!總之,通過這次課程設計,我收獲頗豐,相信會為自己以后的學習和工作帶來很大的好處。課程設計,有些問題并不是只靠課本的哪些知識就可以輕易解決的。所以,它不僅鍛煉了我們挑戰(zhàn)自己的決心,學會用
9、已掌握的知識去解決我們看似不能解決的問題,同時進一步培養(yǎng)了我們獨立思考問題和解決問題的能力。特別是在C+中如何調試程序的方法。當然,老師的指導以及同學的幫助是不可忽視的,他們給了我提示和幫助,教會了我編譯復雜程序的方法。雖然這次課程設計是在參考程序的基礎之上進行的,但是我覺得不管咋樣來說,對我們學生都是一個挑戰(zhàn)和鍛煉。我很欣賞自己能在程序中加入自己的想法和有關程序的內容,將它進行一番改進,感覺收獲很大。總之,這次的C+課程設計讓我有了一些新的收獲,讓我對計算機語言有了更深體會,祝自己在以后的學習中更上一層樓。附錄:程序代碼#include <iostream>#include &l
10、t;iomanip>#include <stdlib.h>#include<string.h>#include <fstream>#include <ctime>using namespace std;const int N=10;bool A=false,B=true;long t = time(0);tm * pt = localtime(&t);void mainmenu();struct Timeint hour;int minute;class userfriend void save ();friend void sur
11、e_message();friend void browse();friend void ticketmenu();friend void search_train();friend void search_station();protected:char train10;Time time;char start_station20;char end_station20;int ticket_price;int remaind_seats;public:void display()cout<<train<<"t"<<" &quo
12、t;<<setfill('0')<<setw(2)<<time.hour<<":"<<setw(2)<<time.minute<<"tt"<<" "<<start_station<<"t"<<" "<<end_station<<"t"<<" "<<ticket_p
13、rice<<"t"<<" "<<remaind_seats<<"t"t = :time(NULL); tm * pt = localtime(&t);if(time.hour<pt->tm_hour)cout<<" 此班列車已發(fā)出"else if(time.hour=pt->tm_hour&&time.minute<=pt->tm_min)cout<<" 此班列車已發(fā)出"
14、else cout<<"t正常"cout<<endl;void order()if(time.hour<pt->tm_hour)cout<<" 此班列車已發(fā)出,不能訂票,退出!"else if(time.hour=pt->tm_hour&&time.minute<=pt->tm_min)cout<<" 此班列車已發(fā)出,不能訂票,退出!"else if ( remaind_seats = 0 )cout << "此班列車已
15、沒票,不能訂票,退出!" << endl;elseremaind_seats = remaind_seats - 1;cout <<train<<"次列車 "<< "售票一次,現存票量為:" << remaind_seats << endl;void Delete()if(time.hour<pt->tm_hour)cout<<" 此班列車已發(fā)出,不能退票,退出!"else if(time.hour=pt->tm_hour&
16、amp;&time.minute<=pt->tm_min)cout<<" 此班列車已發(fā)出,不能退票,退出!"else remaind_seats = remaind_seats + 1;cout <<train<<"次列車 "<< "退票一次,現存票量為:" << remaind_seats << endl;class service :public userfriend void input();public:void setinfo (ch
17、ar* c, int h, int m, char* q, char* z, int p, int s)strcpy(train,c);time.hour=h;time.minute=m;strcpy(start_station,q);strcpy(end_station,z);ticket_price=p;remaind_seats=s;service ticketN;static int g_num=-1;void save ()ofstream file("數據.txt",ios:out);for(int j=0;j<=g_num;j+)file<<
18、ticketj.train<<" "file<<ticketj.time.hour <<" "file<<ticketj.time.minute<<" "file<<ticketj.start_station <<" "file<<ticketj.end_station <<" "file<<ticketj.ticket_price<<" "fi
19、le<<ticketj.remaind_seats <<endl;file.close();cout<<"信息已存入文件"<<endl;void input()g_num+;char c10;int h;int m;char q20;char z20;int p;int s;cout<<"車次:"cin>>c;cout<<"開車時間hour:"cin>>h;cout<<"開車時間minute:"cin>
20、>m;cout<<"起始:"cin>>q;cout<<"終點:"cin>>z;cout<<"票價:"cin>>p;cout<<"剩余座位:"cin>>s;ticketg_num.setinfo (c, h, m, q, z, p, s);save ();void browse()int j;t = time(NULL); tm * pt = localtime(&t);cout<<"當
21、前時間:"<<setfill('0')<<setw(2)<<pt->tm_hour<<':'cout<<setw(2)<<pt->tm_min<<':'cout<<setw(2)<<pt->tm_sec<<endl<<endl;cout<<"現存車次信息如下:"<<endl<<endl;cout<<"車次t&qu
22、ot;<<"開車時間t"<<"起始t"<<"終點t"<<"票價t"<<"剩余座位t"<<"狀態(tài)t"<<endl;for( j=0;j<=g_num;j+)ticketj.display();void search_train()char train10;cout<<"輸入你要查詢的車次:"cin>>train;cout<<endl&
23、lt;<endl;for(int j=0;j<=g_num;j+)if(strcmp(train,ticketj.train)=0)cout<<"查詢結果:"<<endl;cout<<"車次t"<<"開車時間t"<<"起始t"<<"終點t"<<"票價t"<<"剩余座位t"<<"狀態(tài)t"<<endl;tick
24、etj.display();break;if(j>g_num)cout<<"對不起,沒有這趟車次信息!"void search_station()char station20;cout<<"輸入你要查詢的站點:"cin>>station;cout<<endl<<endl;for(int j=0;j<=g_num;j+)if(strcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)c
25、out<<"查詢結果:"<<endl;cout<<"車次t"<<"開車時間t"<<"起始t"<<"終點t"<<"票價t"<<"剩余座位t"<<"狀態(tài)t"<<endl;ticketj.display();break;if(j>g_num)cout<<"對不起,沒有有關此站點的車次信息!&quo
26、t;void ticketmenu()long t = time(0);tm * pt = localtime(&t);int functionNumber;int j;cout<<" >>>>>> 票務菜單 <<<<<< n"char train10;char station20;cout<<"可按站點或車次查詢訂票(1.按站點,2.按車次)"<<endl;cout<<"選擇你需要的功能:"cin>&
27、gt;functionNumber;getchar();for(;functionNumber!=1&&functionNumber!=2;)cout<<"指令錯誤!請重新輸入!"<<endl;cin>>functionNumber;cout<<endl<<endl;if (functionNumber=1)cout<<"輸入你要訂票或退票的站點:"cin>>station;cout<<endl<<endl;for( j=0;j&l
28、t;=g_num;j+)if(strcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)cout<<"本車次現存信息:"<<endl;cout<<"車次t"<<"開車時間t"<<"起始t"<<"終點t"<<"票價t"<<"剩余座位t"<<"
29、狀態(tài)t"<<endl;ticketj.display();break;if(j>g_num)cout<<"對不起,沒有這趟車次信息!,無法訂退票!"if (functionNumber=2)cout<<"輸入你要訂票或退票的車次:"cin>>train;cout<<endl<<endl;for( j=0;j<=g_num;j+)if(strcmp(train,ticketj.train)=0)cout<<"本車次現存信息:"<
30、;<endl;cout<<"車次t"<<"開車時間t"<<"起始t"<<"終點t"<<"票價t"<<"剩余座位t"<<"狀態(tài)t"<<endl;ticketj.display();break;if(j>g_num)cout<<"對不起,沒有有關此站點的車次信息!無法訂退票!"if(ticketj.time.hour<
31、;pt->tm_hour)cout<<"此班列車已發(fā)出,不能訂退票!"else if(ticketj.time.hour=pt->tm_hour&&ticketj.time.minute<=pt->tm_min)cout<<"此班列車已發(fā)出,不能訂退票!"elsecout<<"n"cout<<" 1.訂票 n"cout<<" 2.退票 n"cout<<" 3.返回主菜單 n&
32、quot;cout<<"n"cout<<"選擇你需要的功能:"cin>>functionNumber;for(;functionNumber!=1&&functionNumber!=2&&functionNumber!=3;)cout<<"指令錯誤!請重新輸入!"<<endl;cin>>functionNumber;cout<<endl<<endl;switch(functionNumber)case 1:t
33、icketj.order();save ();break;case 2:ticketj.Delete();save ();break;case 3:mainmenu();break;/switch endsvoid search_menu()int functionNumber;cout<<" >>>>>> 查詢子菜單 <<<<<< n"cout<<endl;cout<<" 1.按班次查詢 n"cout<<" 2.按站點查詢
34、n"cout<<" 3.返回主菜單 n"cout<<endl;cout<<"請選擇你所需要的功能:"cin>>functionNumber;cout<<endl<<endl;for(;functionNumber!=1&&functionNumber!=2&&functionNumber!=3;)cout<<"指令錯誤!請重新輸入!"<<endl;cin>>functionNumber;
35、cout<<endl<<endl;switch(functionNumber)case 1:search_train();break;case 2:search_station();break;case 3:system("cls");mainmenu();void mainmenu()int functionNumber;cout<<" >>>>>> 歡迎使用車票管理系統(tǒng) <<<<<< n"cout<<endl;cout<<
36、;" 1.錄入班次信息 n"cout<<" 2.瀏覽班次信息 n"cout<<" 3.查詢行車路線 n"cout<<" 4.售票與退票系統(tǒng) n"cout<<" 5.退出系統(tǒng) n"cout<<endl;cout<<"請選擇你所需要的功能:"cin>>functionNumber;cout<<endl<<endl;switch(functionNumber)case 1:
37、char c;if (A)doinput();cout<<"已錄入"<<g_num+1<<"條航班信息(包括已從文件中讀取的),想繼續(xù)錄入嗎(y/n)"<<endl;cin>>c;for(;c!='y'&&c!='n')cout<<"指令錯誤!請重新輸入!"<<endl;cin>>c; while (c='y');else cout<<"對不起,您不是管理
38、員不能進行這項操作!"cout<<endl<<"按任意鍵回主菜單."<<endl;getchar();getchar();system("cls");break;case 2:browse();cout<<endl<<endl<<endl<<"按任意鍵回主菜單."<<endl;getchar();getchar();system("cls");break;case 3:search_menu();cout<
39、;<endl<<"按任意鍵回主菜單."<<endl;getchar();getchar();system("cls");break;case 4:ticketmenu();cout<<endl<<"按任意鍵回主菜單."<<endl;getchar();getchar();system("cls");break;case 5:t = time(NULL);tm* pt = localtime(&t);system("cls"
40、);cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl;cout<<" >>>>>> 謝謝使用車票管理系統(tǒng) <<<<<< n"B=false;break;default:cout<<"輸入錯誤,請確保你的輸入為1-5"<<endl;cout<<"按任意鍵回主菜單."<<endl;getchar();system("cl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年秋季第一學期小學創(chuàng)新思維培養(yǎng)計劃
- 綠色品牌形象塑造-全面剖析
- 醫(yī)療AI技術中的隱私保護與同意權問題
- 煤炭開采過程中的粉塵控制技術-全面剖析
- 數字經濟時代個人學習計劃
- 綠色供應鏈管理在制造業(yè)綠色制造與綠色供應鏈金融報告
- 醫(yī)療影像診斷人工智能輔助系統(tǒng)在神經科的2025年應用研究報告
- 汽車零部件再制造產業(yè)綠色制造技術發(fā)展趨勢與市場應用報告
- 區(qū)塊鏈技術助力構建高效、安全的供應鏈體系
- 綠色建筑認證體系在綠色辦公樓綠色建筑評價標準制定中的應用與發(fā)展趨勢報告
- (四調)武漢市2025屆高中畢業(yè)生四月調研考試 生物試卷(含答案)
- Revision Going to a school fair Lesson 1(教學設計)-2024-2025學年人教PEP版(2024)英語三年級下冊
- 第25課它們吃什么(教學設計)-教科版科學一年級下冊
- 2025年極兔速遞有限公司招聘筆試參考題庫含答案解析
- 春泥(庾澄慶)原版五線譜鋼琴譜正譜樂譜
- 重性精神病個案管理
- 消化性潰瘍英文
- 公路瀝青路面設計規(guī)范算例(較早的算例 采用的參數跟規(guī)范條文可能有不一致 僅參考分析過程)
- ZT-S1-NB藍牙智能云鎖家庭版介紹課件
- 航空煤油MSDS安全技術說明書
- 基金從業(yè)資格考試培訓中歐基金版
評論
0/150
提交評論