C課程設計長途客運售票管理系統(tǒng)_第1頁
C課程設計長途客運售票管理系統(tǒng)_第2頁
C課程設計長途客運售票管理系統(tǒng)_第3頁
C課程設計長途客運售票管理系統(tǒng)_第4頁
C課程設計長途客運售票管理系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 C+程序設計課程設計說明書題 目 長途客運售票管理系統(tǒng)的設計 學號姓名 指導教師 日期內蒙古科技大學課程設計任務書課程名稱面向對象程序設計 A 課程設計設計題目長途客運售票管理系統(tǒng)的設計指導教師時間一、教學要求1. 鞏固和加深學生對 C+語言課程的基本知識的理解和掌握2. 掌握 C+語言編程和程序調試的基本技能3. 利用 C+語言進行基本的軟件設計4. 掌握書寫程序設計說明文檔的能力5. 提高運用 C+語言解決實際問題的能力 二、設計資料及參數(shù)用 C+ 設計一個系統(tǒng),能提供下列服務:( 1)錄入車次信息,格式為:車次開車時間起始終點票價剩余座22120:30包頭北京31087可不定時地增加車

2、次數(shù)據。(2)瀏覽車次信息,可顯示出所有車次,如果當前系統(tǒng)時間超過了某車次的發(fā)車時間,則顯示“此 班車已發(fā)出”的提示信息。(3)查詢路線:可按車次編號查詢,可按起始站,終點站查詢( 4)售票和退票功能A :查詢車次編號或站點。當剩余座位數(shù)大于0,并且當前系統(tǒng)時間小于開車時間時才能售票,售票后自動更新剩余座位數(shù)。B:退票時,輸入退票的車次,當本班車未發(fā)出時才能退票,退票后自動更新剩余座位數(shù)。 三、設計要求及成果根據系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為;(2)根據問題描述,設計系統(tǒng)的類層次;( 3)完成類層次中各個類的描述 (包括屬性和方法

3、);(4)完成類中各個成員函數(shù)的定義;(5)完成系統(tǒng)的應用模塊;(6)功能調試;(7)提交課程設計報告:完成系統(tǒng)總結報告以及系統(tǒng)使用說明書第 1 章 需求分析第 2 章 總體設計第 3 章 類的設計3.1 ××類的設計3.2 ××類的設計第 4 章 詳細設計4.1 工程視圖 4.2 類圖視圖 4.3 函數(shù)的調用關系4.4 主程序流程圖 4.5 主要算法的流程圖第 5 章 測試第 6 章 總結目錄錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。 錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。 錯誤

4、 ! 未指定書簽。 錯誤 ! 未指定書簽。 錯誤 ! 未指定書簽。 錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。錯誤 ! 未指定書簽。附錄: 程序代碼 錯誤 ! 未指定書簽。第1章 需求分析1.1 設計資料及參數(shù)用 C+ 設計一個系統(tǒng),能提供下列服務:1)錄入車次信息,格式為:車次發(fā)車時間起始終點硬座票價剩余座位k26420:30包頭北京110200可不定時地增加車次數(shù)據。(2)瀏覽車次信息,可顯示出所有車次,如果當前系統(tǒng)時間超過了某車次的發(fā)車時間,則顯示“此 班列車已發(fā)出”的提示信息。(3)查詢路線:可按車次編號查詢,可按起始站,終點站查詢( 4)售票和退票功能A :查詢車次或站點。當剩余座

5、位數(shù)大于0,并且當前系統(tǒng)時間小于發(fā)車時間時才能售票,售票后自動更新剩余座位數(shù)。B:退票時,輸入退票的車次,當本班列車未發(fā)出時才能退票,退票后自動更新剩余座位數(shù)。第 2章 總體設計2.1用結構框圖表示各個功能之間的關系2.2 將框圖中系統(tǒng)的各個功能用文字詳細的描述。1.鐵路售票管理系統(tǒng)理解: 系統(tǒng)中必須有車次信息,車次信息應該是由管理員錄入,可由管理員或者乘客查看,定退票及其他操 作。其中要注意的是錄入信息必須是由管理員完成的,所以我會創(chuàng)建一個乘客類,然后創(chuàng)建管理員類繼承 乘客類,進而繼承乘客的所有功能,并添加錄入信息的功能。信息的載體可以使鏈表,也可以是數(shù)組,因為我更加熟悉數(shù)組,所以我用對象數(shù)

6、組。 (為了熟悉鏈表, 課下自己還建立了以鏈表存放數(shù)據的系統(tǒng))系統(tǒng)錄入信息的操作非??菰铮晕覄?chuàng)建了一個文件,把每次錄入的信息保存入文件,在下一次進 入系統(tǒng)是,它會默認讀取文件原有的信息,當然也可以隨時添加錄入車次信息。然后系統(tǒng)的各個功能僅僅是通過查詢找到具體對象的具體數(shù)據進行操作。2.基本功能 : 錄入 次、始發(fā)站、終點站、開車時間(小時、分鐘) 、票價、剩余票數(shù)等信息。 瀏覽車次 查看所有的錄入車次其中開車時間小于當前時間的車次則輸出車次已發(fā)出。查詢車次 通過搜索車次或站點來快速的查看車輛的信息。定退票 車時間大于當前系統(tǒng)時間的前提下才可退票并且在票數(shù)大于零的前提下才可定票, 票數(shù)更新。

7、文件的存儲 存儲錄入的車次信息以便下次訪問。文件的讀取 讀取文件內的信息方便操作以上的各項功能; 。第3章 類的設計3.1 service 類的設計(第一個類)1.畫出類圖2.對類的函數(shù)成員的說明定義了一個 service 類,類中包括以下幾部分: 公有繼承了 user 類私有段: 定義車輛的車次、開車時間(小時、分鐘)、始發(fā)站、終點站、票價、票數(shù)。 公有段依次為輸入函數(shù)、輸出函數(shù)、定票函數(shù)、退票函數(shù)。添加設定信息函數(shù)。 友元函數(shù)查詢函數(shù)、瀏覽函數(shù)、文件存儲函數(shù)、文件讀取函數(shù)。添加輸入函數(shù)。3.2 user 類的設計(第二個類)1.畫出類圖2.對類的函數(shù)成員的說明定義了一個 user 類,類中

8、包括以下幾部分 : 私有段: 定義車輛的車次、開車時間(小時、分鐘)、始發(fā)站、終點站、票價、票數(shù)。 公有段依次為輸出函數(shù)、定票函數(shù)、退票函數(shù)。友元函數(shù) 查詢函數(shù)、瀏覽函數(shù)、文件存儲函數(shù)、文件讀取函數(shù)。3.3 全局變量,重要形式參數(shù)、局部變量等等,它們的命名及用途解釋g-num:確定數(shù)組對象的個數(shù),也是控制循環(huán)的條件。ticketj: 代表具體的某個對象。A : bool 型,判斷使用者身份。B : bool 型,判斷是否退出程序。t: long 型,獲得當前距 1970 年秒數(shù)。pt: tm 指向類的對象的指針,指向當前時間。Functionnumber :整型,選擇功能。第4章 詳細設計4.

9、1 工程視圖說明有幾個源代碼文件,可以截取工程文件視圖表示4.2 類圖視圖4.3 主程序流程圖4.4主要算法的流程圖第 5章 測試5.1 驗證身份后登陸5.2 錄入信息并保存5.3 驗證身份5.4 查詢車次5.5 查詢子菜單5.6 退、訂票第 6章 總結 課程設計旨在鍛煉學生的實際動手能力和解決真實問題的能力。并在其中掌握和熟練所學的知識,并 能夠運用所學知識解決比較簡單的現(xiàn)實模擬問題。在為期兩周的 C+ 課程設計中,我體會頗多,學到了很多東西。我加強了對C+程序設計這門課程的認識,并且復習了以前學到的知識。這些都使得我對計算機語言的學習有了更深入的認識!總之,通過這 次課程設計,我收獲頗豐,

10、相信會為自己以后的學習和工作帶來很大的好處。課程設計,有些問題并不是 只靠課本的哪些知識就可以輕易解決的。所以,它不僅鍛煉了我們挑戰(zhàn)自己的決心,學會用已掌握的知識 去解決我們看似不能解決的問題,同時進一步培養(yǎng)了我們獨立思考問題和解決問題的能力。特別是在 C+ 中如何調試程序的方法。當然,老師的指導以及同學的幫助是不可忽視的,他們給了我提示和幫助,教會 了我編譯復雜程序的方法。雖然這次課程設計是在參考程序的基礎之上進行的,但是我覺得不管咋樣來說,對我們學生都是一個 挑戰(zhàn)和鍛煉。我很欣賞自己能在程序中加入自己的想法和有關程序的內容,將它進行一番改進,感覺收獲 很大??傊?,這次的 C+ 課程設計讓我

11、有了一些新的收獲,讓我對計算機語言有了更深體會,祝自己在以后 的學習中更上一層樓。附錄: 程序代碼#include <iostream>#include <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 ma

12、inmenu();struct Timeint hour;int minute;class user friend void save ();friend void sure_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 remain

13、d_seats;public:void display()cout<<train<<"t"<<""<<setfill('0')<<setw(2)<<time.hour<<":"<<setw(2)<<time.minute<<"tt"<<""<<end_station<<"t"<<" &

14、quot;<<ticket_price<<"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<<

15、;" 此班列車已發(fā)出 "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 =

16、0 )cout << " 此班列車已沒票,不能訂票,退出!" << endl;elseremaind_seats = remaind_seats - 1;cout <<train<<" 次列車 "<< "售票一次,現(xiàn)存票量為: " <<"<<start_station<<"t"<<"remaind_seats << endl;void Delete()if(time.hour&

17、lt;pt->tm_hour)cout<<" 此班列車已發(fā)出 ,不能退票,退出! "else if(time.hour=pt->tm_hour&&time.minute<=pt->tm_min)cout<<" 此班列車已發(fā)出 ,不能退票,退出! "else remaind_seats = remaind_seats + 1;cout <<train<<" 次列車 "<< " 退票一次,現(xiàn)存票量為: " <<

18、; remaind_seats << endl; ;class service :public userfriend void input();public:void setinfo (char* 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

19、g_num= void save ()ofstream file(" 數(shù)據 .txt",ios:out);for(int j=0;j<=g_num;j+)file<<ticketj.train<<" " file<<ticketj.time.hour <<" " file<<ticketj.time.minute<<" " file<<ticketj.start_station <<" " fi

20、le<<ticketj.end_station <<" " file<<ticketj.ticket_price<<" " file<<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<<"

21、 車次 :"cin>>c;cout<<" 開車時間 hour:"cin>>h;cout<<" 開車時間 minute:"cin>>m;cout<<" 起始 :"cin>>q;cout<<" 終點 :"cin>>z;cout<<" 票價 :"cin>>p;cout<<" 剩余座位 :"cin>>s;ticketg_

22、num.setinfo (c, h, m, q, z, p, s);save ();void browse()int j;t = time(NULL);tm * pt = localtime(&t);cout<<" 當前時間: "<<setfill('0')<<setw(2)<<pt->tm_hour<<':' cout<<setw(2)<<pt->tm_min<<':'cout<<setw(2)&l

23、t;<pt->tm_sec<<endl<<endl;cout<<" 現(xiàn)存車次信息如下: "<<endl<<endl;cout<<" 車次t"<<" 開車時間 t"<<" 起始t"<<" 終點t"<<" 票價t"<<" 剩余座位 t"<<" 狀態(tài)t"<<endl; for(

24、 j=0;j<=g_num;j+)ticketj.display();void search_train()char train10;cout<<" 輸入你要查詢的車次: "cin>>train;cout<<endl<<endl;for(int j=0;j<=g_num;j+)if(strcmp(train,ticketj.train)=0)cout<<" 查詢結果: "<<endl;cout<<" 車次 t"<<"

25、開車時間 t"<<" 起始 t"<<" 終點 t"<<" 票價 t"<<"剩余座位 t"<<" 狀態(tài) t"<<endl; ticketj.display();break;if(j>g_num)cout<<" 對不起,沒有這趟車次信息! "void search_station()char station20;cout<<" 輸入你要查詢的站點: "

26、;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) cout<<" 查詢結果: "<<endl;cout<<" 車次 t"<<" 開車時間 t"<<" 起始 t"<<"

27、 終點 t"<<" 票價 t"<<" 剩余座位t"<<endl;ticketj.display();break;if(j>g_num)cout<<" 對不起,沒有有關此站點的車次信息!"void ticketmenu()long t = time(0);tm * pt = localtime(&t);int functionNumber;int j;cout<<" >>>>>> 票務菜單 <<&

28、lt;<<<char train10;char station20;cout<<" 可按站點或車次查詢訂票( 1.按站點, 2.按車次) "<<endl;cout<<" 選擇你需要的功能 :"cin>>functionNumber;getchar();for(;functionNumber!=1&&functionNumber!=2;)t"<<" 狀態(tài)n"cout<<" 指令錯誤!請重新輸入! "&l

29、t;<endl;cin>>functionNumber;cout<<endl<<endl;if (functionNumber=1)cout<<" 輸入你要訂票或退票的站點: "cin>>station;cout<<endl<<endl;for( j=0;j<=g_num;j+) if(strcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)cout<<"

30、 本車次現(xiàn)存信息 :"<<endl;cout<<" 車次 t"<<" 開車時間 t"<<" 起始 t"<<" 終點 t"<<" 票價 t"<<" 剩余座位 t"<<" 狀 態(tài)t"<<endl;ticketj.display();break;if(j>g_num)cout<<" 對不起,沒有這趟車次信息! ,無法訂

31、退票! "if (functionNumber=2)cout<<" 輸入你要訂票或退票的車次: "cin>>train;cout<<endl<<endl;for( j=0;j<=g_num;j+)if(strcmp(train,ticketj.train)=0)cout<<" 本車次現(xiàn)存信息 :"<<endl;cout<<" 車次 t"<<" 開車時間 t"<<" 起始 t"

32、;<<" 終點 t"<<" 票價 t"<<" 剩余座位 t"<<" 狀態(tài)t"<<endl;ticketj.display();break;if(j>g_num)cout<<" 對不起,沒有有關此站點的車次信息!無法訂退票! if(ticketj.time.hour<pt->tm_hour)cout<<" 此班列車已發(fā)出 ,不能訂退票! "else if(ticketj.time.hou

33、r=pt->tm_hour&&ticketj.time.minute<=pt->tm_min)cout<<" 此班列車已發(fā)出 ,不能訂退票! "elsecout<<"n"cout<<"1.訂票n"cout<<"2.退票n"cout<<"3.返回主菜單n"cout<<"n"cout<<" 選擇你需要的功能 :"cin>>funct

34、ionNumber;for(;functionNumber!=1&&functionNumber!=2&&functionNumber!=3;)cout<<" 指令錯誤!請重新輸入! "<<endl;cin>>functionNumber;cout<<endl<<endl;switch(functionNumber)case 1:ticketj.order();save ();break;case 2:ticketj.Delete();save ();break;case 3:mai

35、nmenu();break;/switch endsvoid search_menu()int functionNumber;cout<<">>>>>> 查詢子菜單 <<<<<<ncout<<endl;cout<<"1.按班次查詢n"cout<<"2.按站點查詢n"cout<<"3.返回主菜單n"cout<<endl;cout<<" 請選擇你所需要的功能 :&q

36、uot;cin>>functionNumber;cout<<endl<<endl;for(;functionNumber!=1&&functionNumber!=2&&functionNumber!=3;)cout<<" 指令錯誤!請重新輸入! "<<endl;cin>>functionNumber; cout<<endl<<endl;switch(functionNumber)case 1:search_train();break;case 2:

37、search_station();break;case 3:system("cls");mainmenu();void mainmenu()int functionNumber;cout<<" >>>>>> 歡迎使用車票管理系統(tǒng) <<<<<< n" cout<<endl;cout<<"1.錄入班次信息n"cout<<"2.瀏覽班次信息n"cout<<"3.查詢行車路線n&qu

38、ot;cout<<"4.售票與退票系統(tǒng)n"cout<<"5.退出系統(tǒng)n"cout<<endl;cout<<" 請選擇你所需要的功能 :"cin>>functionNumber;cout<<endl<<endl;switch(functionNumber)case 1: char c;if (A)doinput();cout<<" 已錄入 "<<g_num+1<<" 條航班信息(包括已從文

39、件中讀取的) ,想繼續(xù)錄入嗎 (y/n)"<<endl;cin>>c;for(;c!='y'&&c!='n')cout<<" 指令錯誤!請重新輸入! "<<endl;cin>>c; while (c='y');else cout<<" 對不起,您不是管理員不能進行這項操作! "cout<<endl<<" 按任意鍵回主菜單 "<<endl;getchar()

40、;getchar();system("cls");break;case 2:browse();"<<endl;cout<<endl<<endl<<endl<<" 按任意鍵回主菜單getchar();getchar();system("cls");break;case 3:search_menu();cout<<endl<<" 按任意鍵回主菜單 "<<endl;getchar();getchar();system(&quo

41、t;cls");break;case 4:ticketmenu();cout<<endl<<" 按任意鍵回主菜單 "<<endl;getchar();getchar();system("cls");break;case 5:t = time(NULL);tm* pt = localtime(&t);system("cls");cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl;cout<<" >>>>>> 謝謝使用車票管理系統(tǒng) <<<<<< B=false;break;default:cout<<" 輸入錯誤 ,請確保你的輸入為 1-5"<<endl;cout<<" 按任意鍵回主菜單 "<<endl;getcha

溫馨提示

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

評論

0/150

提交評論