面向對象課程設計--列車車票管理系統_第1頁
面向對象課程設計--列車車票管理系統_第2頁
面向對象課程設計--列車車票管理系統_第3頁
面向對象課程設計--列車車票管理系統_第4頁
面向對象課程設計--列車車票管理系統_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上課 程 設 計 課程名稱面向對象程序設計課程設計題目名稱列車車票管理系統專業班級2010級計算機科學與技術學生姓名學 號指導教師二一一年十二月二十二日專心-專注-專業蚌埠學院計算機科學與技術系課程設計任務書課 程面向對象程序設計課程設計班級2010級計算機科學與技術指導教師題 目列車車票管理系統完成時間2011年11月30日 至2011年12月23日主要內容基本功能要求:實現簡單的列車車票管理系統,可以對列車的車票進行簡單的錄入、刪除、修改和查找等功能,乘客還可以預訂車票,管理員可以查找乘客的信息等功能乘客:1、 查詢車票情況2、 根據車次預定車票3、 顯示全部車票信

2、息管理員:1、 查詢車票情況2、 錄入、修改、刪除車票情況,顯示全部車票3、 刪除乘客的信息,查找乘客的信息和顯示乘客的信息設計報告要求1封面2課程設計任務書3. 分工協作說明4. 成績評定表5課程設計報告 系統總體方案 設計思路和主要步驟 各功能模塊和流程圖 設計代碼 心得體會和參考資料說明:學生完成課程設計后,提交軟件及課程設計電子和紙質版,要求報告文字通暢、字跡工整,文字不少于3000字,并按要求裝訂成冊。版面要求1.題目用黑體三號,段后距18磅(或1行),居中對齊;2.標題用黑體四號,段前、段后距6磅(或0.3行);3.正文用小四號宋體,行距為1.25倍行距;4.標題按“一”、“”、“

3、1”、“”順序編號。蚌埠學院計算機科學與技術系課程設計成績評定表項目權重分值具體要求得分文獻閱讀與調查論證0.20100能獨立查閱文獻和從事其它調研活動;有收集、加工各種信息的能力設計質量0.30100設計合理、功能齊備,程序運行正常,實驗數據準確可靠;有較強的實際動手能力論文撰寫質量0.20100設計說明書完全符合規范化要求,用A4復印紙打印成文學習態度0.20100學習態度認真,科學作風嚴謹,嚴格按要求開展各項工作,按期完成任務學術水平與創新0.10100設計有創意,有一定的學術水平或實用價值總分評語: 這次程序設計試驗增加了我們對程序設計在實踐上的認識,熟練了類和對象還有鏈表的使用,尤其

4、是考慮到大量數據時插入刪除操作此種數據結構對運行時間上的節省和方便。在編譯的過程中有發現一些錯誤,比如沒有定義等眾多錯誤,所以編譯一直不成功,后來經過對程序的仔細閱讀,弄懂了哪里沒有定義上,修改過來后,編譯才成功了;還有,很多地方沒有提示語句,讓人不容易理解;一開始進入頁面也不是很清楚明了,頁面布局也不夠完善,經過老師的指導,后期我們經過了很多的改正,當然還有很多的不足之處,還望老師指正,讓我們能進一步的提高。等級: 指導教師: 年 月 日目錄列車車票管理系統一、需求與功能分析 時代在發展,計算機軟件和系統日趨成熟并應用于各行各業。在中國,火車 票的發售與管理一直是一個難題,而建立一個火車票訂

5、票管理系統是一個很好的解決方法。作為計算機應用的一部分,使用計算機對火車票信息進行管理,具有手工管理所無法比擬的優點,例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、出錯率低等各種優點。這些優點能大大提高列車信息管理的效率,也正體現了火車票的科學化正規管理。  我的這個系統采用的編程語言是C+,實現了以下功能:1、可操作的界面 2、錄入、修改、刪除、查找列車車票信息 3、訂票、退票功能    二、概要設計(一)、系統框架圖 (二)、系統類圖  三、程序運行與測試結果(一)、調試中的問題和解決辦法 在編譯的過程中有發現

6、一些錯誤,比如沒有定義等,所以編譯一直不成功,后來經過對程序的仔細閱讀,弄懂了哪里沒有定義上,修改過來后,編譯就一下成功了。(二)、調試結果1、用戶注冊2、主菜單3、 車票錄入4、車票瀏覽5、車票查詢6、車票刪除7、車票修改8、購票9、保存四、總結與展望 這次課程設計的內容用到了上學期學到的面向對象編程,我選擇的面向對象語言是學過的C+,選擇的題目是列車車票管理系統。一開始選到這個題目,我就初步開始做需求和功能分析,把這個系統的需求和功能劃分為:擁有良好簡易的操作界面、對列車車票信息進行增刪改查等操作和車票的訂購退訂這些功能。定義了存放列車信息的類Bus_infor,用這個類 來完成所需要的需

7、求功能,可是我很快就發現了,直接用這個類來做按條件查找,刪除、修改、添加這些操作實在太麻煩,于是我想到了數據結構中的鏈表這個數據結構,這個系統用這個結構剛剛好。于是我又編寫了另外一個類Bus_link,在這個類中,我把Bus_infor做成鏈表里的元素,編寫了一系列的函數,這樣增刪改查這些操作就可以在鏈表中實現了。經過仔細地檢查錯誤,修改內容之后,再經過各種測試,總算把這個系統給做完了。但是由于能力有限,還沒有深入學習MFC等圖形界面的知識,所以沒能把整個系統的界面做得更漂亮一點。相信在以后的學習中,我能不斷地提高,做出更好的設計。通過這次課程設計,更加深入對C+方面的程序設計的了解,尤其是它

8、在面向對象的編程思想的應用,并通過這次的不斷發現問題,解決問題的過程,學到了不少東西。五、程序代碼#include<iostream> #include<fstream> #include<iomanip> using namespace std; class Bus_infor/列車信息int No; static int Bus_No;/給錄入的車次默認編號char start20;/起點站char end20;/終點站int Bus_order20;/車次號int all_tickted;/車的額定載量int tickted;/已訂票數int Hour

9、_start, Minute_start, Hour_end, Minute_end;/發車時間,行車時間public:Bus_infor *next; Bus_infor(); Bus_infor(); int Get_no(); int Get_all_tickted(); int Get_tickted(); int Get_bus_order(); char *Get_start(); char *Get_end(); void addr(); void Order_tickt(int n); void Unorder_tickt(int n); void GetTime_start(

10、); void GetTime_end(); void ShowTime(); void input();void input(ifstream & is);void output();void output(ofstream & os);void Bus_infor: input()/錄入車票信息cout<<endl<<"*錄入車票信息*"<<endl;cout<<"t請按提示輸入:"<<endl;cout<<"t把列車的載客量 規定為 車次號"

11、<<endl<<endl;cout<<"輸入車次號/額定載量(數字): " cin>>all_tickted; GetTime_start(); GetTime_end(); addr(); void Bus_infor: input(ifstream & is)/數據流的寫入(主要是列車車票信息) is>>Bus_order20 >>start >>end >>all_tickted >>tickted >>Hour_start >>

12、Minute_start >>Hour_end >>Minute_end; is.get(); void Bus_infor: output()/輸出車票信息cout<<endl<<"*車票信息瀏覽*"<<endl;cout<<"列車車票基本信息如下:"<<endl<<endl; cout<<"車次:"<<Bus_order20<<endl<<"發車時間:"<<

13、Hour_start<<":"<< Minute_start<<endl <<"起點站:"<<start <<endl<<"終點站:"<<end <<endl<<"行車時間:"<<Hour_end<<":"<< Minute_end <<endl<<"額定載量:"<<all_tickte

14、d<<endl<<"已訂票數:"<<tickted<<endl<<endl; void Bus_infor:output(ofstream & os)/數據流的寫出os<<"車次:"<<Bus_order20<<endl <<setw(6)<<"起點站:"<<start<<endl <<setw(6)<<"終點站:"<<end&l

15、t;<endl <<setw(6)<<"發車時間:"<<Hour_start<<":" <<Minute_start<<endl <<setw(6)<<"行車時間:"<<Hour_end<<":" <<Minute_end<<endl <<setw(6)<<"額定載量:"<<all_tickted<<

16、endl <<setw(6)<<"已訂票數:"<<tickted<<endl<<endl; int Bus_infor:Bus_No=1; void Bus_infor:GetTime_start()/輸入發車時間int NewH=0,NewM=0; cout<<"輸入發車時間(數字):"<<endl; cin>>NewH>>NewM; Hour_start=NewH; Minute_start=NewM; void Bus_infor:GetTi

17、me_end()/輸入行車時間 int NewH=0,NewM=0; cout<<"輸入行車時間(數字):"<<endl; cin>>NewH>>NewM; Hour_end=NewH; Minute_end=NewM; void Bus_infor:ShowTime()/顯示時間cout<<Hour_start<<":"<<Minute_start<<" " cout<<Hour_end<<":"

18、;<<Minute_end<<" " Bus_infor:Bus_infor()/列車車票信息No=Bus_No+; tickted=0; Bus_infor:Bus_infor()Bus_No-; void Bus_infor:addr()/起點站與終點站 cout<<"輸入起點站與終點站(數字或字母):"<<endl; char a20;char b20; cin>>a;cin>>b; strcpy(start,a);strcpy(end,b); char *Bus_infor:

19、Get_start()/返回起點站 return start; char *Bus_infor:Get_end()/返回終點站 return end; int Bus_infor:Get_no()/返回某一張票信息return No; int Bus_infor:Get_all_tickted()/返回車次額定載客量 return all_tickted; int Bus_infor:Get_tickted() /返回已訂車票return tickted; int Bus_infor:Get_bus_order()/返回車票信息return Bus_order20; void Bus_info

20、r:Order_tickt(int n)/訂票tickted=tickted+n; void Bus_infor:Unorder_tickt(int n) /退票tickted=tickted-n; class Bus_link public: Bus_link()head=new Bus_infor;head->next=NULL;key=0;void input();/ 輸入void mend();/ 修改void del();/ 刪除int find(Bus_infor *p,int num,char *pn);/查詢車票信息int find1(Bus_infor *p,int n

21、um,char *pn);/退票查找void found(); void show(); void Order();/訂購車票void Unorder(); /退還車票void save();/保存信息void begin(); void clear(); char mainmenu(); int getkey()return key; void setkey(int k) key=k; private: Bus_infor *head;/類對象作為鏈表的頭指針int key; ; void Bus_link:input() /輸入車票信息Bus_infor *p,*p2=NULL; p=he

22、ad; int n; while(p->next) p=p->next;/令p指向其前驅while(n) p2=new Bus_infor; p2->input(); p->next=p2; p2->next=NULL; p=p->next; Bus_link:setkey(1); cout<<"tt按1繼續,按0返回 : " cin>>n; void Bus_link:Order() /購票Bus_infor *p; cout<<endl<<"*車票預訂*"<&l

23、t;endl;cout<<"確定購票(y/n)?"<<endl; char X;cin>>X; if(X='y') int num; cout<<"t輸入車次號(數字): " cin>>num; if( !find1(&p,num,"") ) cout<<"tt找不到您要訂的車票的信息!"<<endl; return; cout<<"t輸入要訂的票數(數字):" int n;c

24、in>>n; p=p->next;if(p->Get_tickted()+n)<=p->Get_all_tickted() p->Order_tickt(n); cout<<"t預訂成功,謝謝使用"<<endl; else cout<<"t對不起,沒有足夠的票數。"<<endl; else if(X='n') cout<<"t謝謝使用"<<endl; else cout<<"t輸入字符

25、不確定"<<endl; Bus_link:setkey(1); void Bus_link:Unorder()/退票Bus_infor *p;cout<<endl<<"*退還車票*"<<endl;cout<<"確定退票(y/n)?"<<endl; char X;cin>>X; if(X='y') int num; cout<<"t輸入車次號:(數字) " cin>>num; if( !find1(&am

26、p;p,num,"") ) cout<<"tt找不到您要退的車票的信息!"<<endl; return; cout<<"t輸入要退的票數(數字):" int n;cin>>n; p=p->next; if(p->Get_tickted()-n)>=0) p->Unorder_tickt(n);cout<<"t退票成功,謝謝使用"<<endl;else cout<<"t對不起,數據出錯!。"

27、<<endl; else if(X='n') cout<<"t謝謝使用"<<endl; else cout<<"t輸入字符不確定"<<endl; Bus_link:setkey(1); void Bus_link:found() /查尋車票 Bus_infor *p; int num=-1,n=0;char name20="" cout<<endl<<"*車票信息查詢*"<<endl;cout<&l

28、t;setw(20)<<"請輸入車次(數字): " cin>>num; if(!find(&p,num,name) cout<<"tt找不到您要查詢的信息!"<<endl; return; int Bus_link:find(Bus_infor *p1,int num,char *pn) /查找車票 Bus_infor *p; p=head; int t=0; while(p->next) (*p1)=p; if( (p->next)->Get_bus_order()=num|!s

29、trcmp( (p->next)->Get_end(),pn ) ) (p->next)->output(); t=1; break; p=p->next; return t; int Bus_link:find1(Bus_infor *p1,int num,char *pn) Bus_infor *p; p=head; int t=0; while(p->next) (*p1)=p; if( (p->next)->Get_bus_order()=num|!strcmp( (p->next)->Get_end(),pn ) ) ret

30、urn 1; p=p->next; return 0; void Bus_link:del()/刪除車票信息 cout<<endl<<"*刪除車票信息*"<<endl;Bus_infor *p,*p2; int num; cout<<"t輸入車次號(數字): " cin>>num; if( !find(&p,num,"") ) cout<<"tt找不到您要刪除的內容!"<<endl; return; p2=p->

31、next; p->next=p2->next;/刪除并釋放結點delete p2; Bus_link:setkey(1); cout<<"t車票信息刪除成功"<<endl; void Bus_link:show() /顯示信息 Bus_infor *p; p=head; while(p->next) (p->next)->output(); p=p->next; void Bus_link:mend() /修改車票信息cout<<endl<<"*車票信息修改*"<&

32、lt;endl;Bus_infor *p; int num=-1; char name20="" cout<<"t輸入車次號(數字): " cin>>num; if( !find1(&p,num,name) ) cout<<"tt找不到您要修改的內容!"<<endl; return; (p->next)->output(); (p->next)->input(); Bus_link:setkey(1); void Bus_link:save() /保存文件

33、cout<<endl<<"*保存文件*"<<endl;Bus_infor *p; p=head; ofstream os("bus.txt",ios:out); if (Bus_link:getkey()=1) while(p->next) (p->next)->output(os); p=p->next; cout<<"t文件已保存至bus.txt中! nt謝謝使用"<<endl; Bus_link:setkey(0); void Bus_link:

34、begin() Bus_infor *p,*p2; p=head; clear(); long t; ifstream is("bus.txt",ios:in); if(!is) ofstream os("bus.txt",ios:out); os.close(); return ; int num=-1; while(1) num=-1; t=is.tellg(); is>>num; is.seekg(t); if(num<0) is.close(); return; p2=new Bus_infor; p2->input(is

35、); p->next=p2; p2->next=NULL; p=p->next; void Bus_link:clear() /清空Bus_infor *p,*p2; p=head->next; while( p ) p2=p; p=p->next; delete p2; char Bus_link:mainmenu() /返回主菜單 system("color 3E");/DOS顏色變換cout<<endl<<endl;cout<<"-歡迎使用車票管理系統-"<<endl&l

36、t;<endl; cout<<setw(48)<<"1. 錄入車票信息 2. 瀏覽車票信息"<<endl <<setw(48)<<"3. 查詢車票信息 4. 刪除車票信息"<<endl <<setw(48)<<"5. 修改車票信息 6. 訂購車票信息"<<endl <<setw(48)<<"7. 退還車票信息 8. 保存車票信息"<<endl <<setw

37、(27)<<"0: 退出系統"<<endl<<endl<<endl <<" 請選擇功能按鈕(0-8):" return 0; int main() /主函數Bus_link pp; system("color 2E");char r20;/用戶名char s20;/密碼char S20;/密碼確認cout<<endl;cout<<setw(22)<<""<<"歡迎使用列車車票管理系統"&l

38、t;<""<<endl<<endl;cout<<setw(28)<<"*"<<"用戶注冊"<<"*"<<endl<<endl;cout<<"t請輸入注冊用戶名(以字母或數字組成):"cin>>r;cout<<"t請填寫注冊密碼(以字母或數字組成):"cin>>s;cout<<"t請再次輸入密碼以確認:&qu

39、ot;cin>>S;if(strcmp(s,S)!=0)cout<<"t密碼輸入不符,注冊失敗,謝謝使用!"<<endl;exit(0);if(strcmp(s,S)=0)system("cls");cout<<endl;cout<<""<<"恭喜你注冊成功"<<""<<endl;char wo;cout<<endl<<endl<<endl;cout<<

40、"按任意字母鍵進入登陸界面"<<endl;cin>>wo;system("cls");char h20;char t20;for(int m=0;m<3;m+)cout<<endl;cout<<setw(24)<<""<<"歡迎使用列車車票管理系統"<<""<<endl<<endl;cout<<"t請輸入用戶名(以字母或數字組成):"cin>&g

41、t;h;cout<<"t請輸入密碼(以字母或數字組成):"cin>>t;system("cls");if(strcmp(r,h)=0&&strcmp(s,t)=0)cout<<endl<<endl; cout<<" "<<"登陸中,請稍等."<<endl;for(int k=0;k<k+) system("cls");cout<<endl;cout<<"t登陸成功!"<<endl;cout&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論