版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、PAGE PAGE 46 1內(nèi)蒙古科技大學(xué)本科生C+程序設(shè)計課程設(shè)計說明書 題 目: 鐵路售票管理系統(tǒng) 學(xué)生姓名:范振輝 學(xué) 號:1067111204 專 業(yè):計算機(jī)科學(xué)與技術(shù) 班 級:計10-2班 指導(dǎo)教師:孫濤成績評定標(biāo)準(zhǔn)課程設(shè)計的驗收答辯采取“講解程序+提問+即時編程”的方式。考核項目評價質(zhì)量成績程序功能完全實現(xiàn),并能通過答辯。(60%)A能完全正確回答提問;B問題回答的基本意思正確;C不能回答或回答錯誤,抽取程序小的功能即時編程,能完成;D不能回答或回答錯誤,即時編程無法完成;程序設(shè)計符合面向?qū)ο蟮乃枷牒驮瓌t,結(jié)構(gòu)合理(15)A程序結(jié)構(gòu)層次分明,提取出各個實體類,類的設(shè)計合理;B程序結(jié)
2、構(gòu)層次分明,具有客戶類和服務(wù)類;C類的設(shè)計基本正確;D幾乎在一個類或者方法中實現(xiàn)了大部分的邏輯,結(jié)構(gòu)不夠清晰;程序的風(fēng)格(10%)A遵守編碼規(guī)范,有良好的風(fēng)格; 以下問題每出現(xiàn)一項成績降一個等級: 1類、方法和變量命名不符合規(guī)范; 2方法和屬性前缺少注釋; 3程序沒有適當(dāng)縮進(jìn);設(shè)計說明書(15%)從以下幾方面考核: 1結(jié)構(gòu)完整 2圖表正確 3文字通順 4版面工整 摘要本系統(tǒng)是一個鐵路售票管理系統(tǒng),可以滿足購票者,票務(wù)工作人員和票務(wù)系統(tǒng)管理員等多方面的需要。根據(jù)開發(fā)的要求,它主要應(yīng)用于交通系統(tǒng),可實現(xiàn)集票務(wù)信息錄入、售票、退票、查詢等功能進(jìn)行現(xiàn)代化的信息管理。本售票管理系統(tǒng)可自主服務(wù)乘客,加快查
3、詢、買票的速度,減輕客運(yùn)工作人員工作壓力。進(jìn)而提高勞動生產(chǎn)力,降低成本,提高服務(wù)質(zhì)量和管理水平,促進(jìn)經(jīng)濟(jì)效益。本系統(tǒng)功能比較簡單,容易實現(xiàn),整個系統(tǒng)力求做到操作 簡便,界面友好,靈活,實用和安全。 目錄 TOC o 1-3 h z u HYPERLINK l _Toc312331970 第一章 成績評定標(biāo)準(zhǔn) PAGEREF _Toc312331970 h 2 HYPERLINK l _Toc312331971 1.1 摘要 PAGEREF _Toc312331971 h 3 HYPERLINK l _Toc312331972 第二章 問題描述 PAGEREF _Toc312331972 h 6
4、 HYPERLINK l _Toc312331973 第三章 問題分析 PAGEREF _Toc312331973 h 7 HYPERLINK l _Toc312331974 3.1 闡述你對問題的理解、解決問題的方案說明 PAGEREF _Toc312331974 h 7 HYPERLINK l _Toc312331975 3.2 系統(tǒng)功能模塊的劃分 PAGEREF _Toc312331975 h 8 HYPERLINK l _Toc312331976 第四章 數(shù)據(jù)模型 PAGEREF _Toc312331976 h 9 HYPERLINK l _Toc312331977 4.1 相關(guān)數(shù)據(jù)結(jié)
5、構(gòu)的說明 PAGEREF _Toc312331977 h 9 HYPERLINK l _Toc312331978 4.2 類的設(shè)計 PAGEREF _Toc312331978 h 9 HYPERLINK l _Toc312331979 4.3 程序結(jié)構(gòu)說明,即程序各個部分之間如何協(xié)調(diào)來完成任務(wù) PAGEREF _Toc312331979 h 11 HYPERLINK l _Toc312331980 4.4 全局變量,重要形式參數(shù)、局部變量等等,它們的命名及用途解釋 PAGEREF _Toc312331980 h 12 HYPERLINK l _Toc312331981 第五章 算法描述 PAG
6、EREF _Toc312331981 h 13 HYPERLINK l _Toc312331982 5.1 測試結(jié)果 PAGEREF _Toc312331982 h 13 HYPERLINK l _Toc312331983 5.1.1 1:驗證身份: PAGEREF _Toc312331983 h 13 HYPERLINK l _Toc312331984 5.1.2 2:管理員登陸 PAGEREF _Toc312331984 h 14 HYPERLINK l _Toc312331985 5.1.3 乘客登錄 PAGEREF _Toc312331985 h 15 HYPERLINK l _Toc
7、312331986 5.1.4 不是管理員,不能錄入車次信息 PAGEREF _Toc312331986 h 16 HYPERLINK l _Toc312331987 5.1.5 讀文件 PAGEREF _Toc312331987 h 17 HYPERLINK l _Toc312331988 5.1.6 3:錄入信息并存入文件 PAGEREF _Toc312331988 h 17 HYPERLINK l _Toc312331989 5.1.7 4:瀏覽 PAGEREF _Toc312331989 h 19 HYPERLINK l _Toc312331990 5.1.8 5:查詢子菜單 PAGE
8、REF _Toc312331990 h 20 HYPERLINK l _Toc312331991 5.1.9 6:查詢車次 PAGEREF _Toc312331991 h 21 HYPERLINK l _Toc312331992 5.1.10 7:訂票 PAGEREF _Toc312331992 h 22 HYPERLINK l _Toc312331993 5.1.11 8:退票 PAGEREF _Toc312331993 h 23 HYPERLINK l _Toc312331994 5.1.12 退出系統(tǒng) PAGEREF _Toc312331994 h 24 HYPERLINK l _Toc
9、312331996 第六章 代碼,加上詳細(xì)的注釋 PAGEREF _Toc312331996 h 25 HYPERLINK l _Toc312331997 第七章 設(shè)計總結(jié) PAGEREF _Toc312331997 h 43 HYPERLINK l _Toc312331998 第八章 參考文獻(xiàn) PAGEREF _Toc312331998 h 44問題描述。1.用C+設(shè)計一個系統(tǒng),能提供下列服務(wù):(1)錄入車次信息,格式為:車次發(fā)車時間起始終點硬座票價剩余座位k26420:30包頭北京110200可不定時地增加車次數(shù)據(jù)。(2)瀏覽車次信息,可顯示出所有車次,如果當(dāng)前系統(tǒng)時間超過了某車次的發(fā)車時
10、間,則顯示“此班列車已發(fā)出”的提示信息。(3)查詢路線:可按車次編號查詢,可按起始站,終點站查詢(4)售票和退票功能A:查詢車次或站點。當(dāng)剩余座位數(shù)大于0,并且當(dāng)前系統(tǒng)時間小于發(fā)車時間時才能售票,售票后自動更新剩余座位數(shù)。B:退票時,輸入退票的車次,當(dāng)本班列車未發(fā)出時才能退票,退票后自動更新剩余座位數(shù)。2.設(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)完成系
11、統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書。問題分析闡述你對問題的理解、解決問題的方案說明鐵路售票管理系統(tǒng)理解:系統(tǒng)中必須有車次信息,車次信息應(yīng)該是由管理員錄入,可由管理員或者乘客查看,定退票及其他操作。其中要注意的是錄入信息必須是由管理員完成的,所以我會創(chuàng)建一個乘客類,然后創(chuàng)建管理員類繼承乘客類,進(jìn)而繼承乘客的所有功能,并添加錄入信息的功能。信息的載體可以使鏈表,也可以是數(shù)組,因為我更加熟悉數(shù)組,所以我用對象數(shù)組。(為了熟悉鏈表,課下自己還建立了以鏈表存放數(shù)據(jù)的系統(tǒng))系統(tǒng)錄入信息的操作非常枯燥,所以我創(chuàng)建了一個文件,把每次錄入的信息保存入文件,在下一次進(jìn)入系統(tǒng)是,它會默認(rèn)讀取文件原有的信息,當(dāng)然也可以隨時
12、添加錄入車次信息。然后系統(tǒng)的各個功能僅僅是通過查詢找到具體對象的具體數(shù)據(jù)進(jìn)行操作。 基本功能:錄入次、始發(fā)站、終點站、開車時間(小時、分鐘)、票價、剩余票數(shù)等信息。瀏覽車次查看所有的錄入車次其中開車時間小于當(dāng)前時間的車次則輸出車次已發(fā)出。查詢車次通過搜索車次或站點來快速的查看車輛的信息。定退票車時間大于當(dāng)前系統(tǒng)時間的前提下才可退票并且在票數(shù)大于零的前提下才可定票,票數(shù)更新。文件的存儲存儲錄入的車次信息以便下次訪問。文件的讀取讀取文件內(nèi)的信息方便操作以上的各項功能;。系統(tǒng)功能模塊的劃分?jǐn)?shù)據(jù)模型相關(guān)數(shù)據(jù)結(jié)構(gòu)的說明車次:變量 train 定義為字符型。發(fā)車時間:time 結(jié)構(gòu)體。始發(fā)站:變量 sta
13、r-station 字符型。終點站:變量end-station 字符型。開車的間: :變量 time 整型、變量 time1 整型。票價 :變量 ticket-price 實型。剩余票數(shù) :變量remaind_seats 整型。類的設(shè)計定義了一個user 類,類中包括以下幾部分:私有段:定義車輛的車次、開車時間(小時、分鐘)、始發(fā)站、終點站、票價、票數(shù)。公有段依次為輸出函數(shù)、定票函數(shù)、退票函數(shù)。友元函數(shù)查詢函數(shù)、瀏覽函數(shù)、文件存儲函數(shù)、文件讀取函數(shù)。定義了一個service 類,類中包括以下幾部分:公有繼承了user類私有段:定義車輛的車次、開車時間(小時、分鐘)、始發(fā)站、終點站、票價、票數(shù)。
14、公有段依次為輸入函數(shù)、輸出函數(shù)、定票函數(shù)、退票函數(shù)。添加設(shè)定信息函數(shù)。友元函數(shù)查詢函數(shù)、瀏覽函數(shù)、文件存儲函數(shù)、文件讀取函數(shù)。添加輸入函數(shù)。程序結(jié)構(gòu)說明,即程序各個部分之間如何協(xié)調(diào)來完成任務(wù)全局變量,重要形式參數(shù)、局部變量等等,它們的命名及用途解釋g-num:確定數(shù)組對象的個數(shù),也是控制循環(huán)的條件。ticketj:代表具體的某個對象。A: bool型,判斷使用者身份。B: bool型,判斷是否退出程序。t: long型,獲得當(dāng)前距1970年秒數(shù)。pt: tm 指向類的對象的指針,指向當(dāng)前時間。Functionnumber:整型,選擇功能。算法描述測試結(jié)果1:驗證身份:2:管理員登陸乘客登錄不是
15、管理員,不能錄入車次信息讀文件3:錄入信息并存入文件4:瀏覽5:查詢子菜單6:查詢車次7:訂票8:退票退出系統(tǒng)序代碼,代碼,加上詳細(xì)的注釋#include #include /格式控制#include /清屏文件的聲明#include#include #include /獲取時間的文件的聲明using namespace std;const int N=10;/創(chuàng)建車次信息對象的個數(shù)bool A=false,B=true;long t = time(0);tm * pt = localtime(&t);void mainmenu();struct Timeint hour;int minute
16、; ;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 remaind_seats;public:void display() couttra
17、int setfill(0)setw(2)time.hour:setw(2)time.minutett start_stationt end_stationt ticket_pricet remaind_seatst;t = :time(NULL); tm * pt = localtime(&t);if(time.hourtm_hour)couttm_hour&time.minutetm_min)cout 此班列車已發(fā)出;else coutt正常;coutendl;/*定退票模塊*/void order()if(time.hourtm_hour)couttm_hour&time.minutet
18、m_min)cout 此班列車已發(fā)出,不能訂票,退出!;else if ( remaind_seats = 0 ) cout 此班列車已沒票,不能訂票,退出! endl;elseremaind_seats = remaind_seats - 1;cout train次列車 售票一次,現(xiàn)存票量為: remaind_seats endl;void Delete() if(time.hourtm_hour)couttm_hour&time.minutetm_min)cout 此班列車已發(fā)出,不能退票,退出!;else remaind_seats = remaind_seats + 1;cout tr
19、ain次列車 退票一次,現(xiàn)存票量為: 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;stat
20、ic int g_num=-1;/*存儲模塊*/void save ()ofstream file(數(shù)據(jù).txt,ios:out);for(int j=0;j=g_num;j+)fileticketj.train ;fileticketj.time.hour ;fileticketj.time.minute ;fileticketj.start_station ;fileticketj.end_station ;fileticketj.ticket_price ;fileticketj.remaind_seats endl;file.close();cout信息已存入文件endl;/*錄入模塊
21、*/void input()g_num+;char c10;int h;int m;char q20;char z20;int p;int s;coutc;couth;coutm;coutq;coutz;coutp;couts;ticketg_num.setinfo (c, h, m, q, z, p, s);save ();/*瀏覽模塊*/void browse()int j;t = time(NULL); tm * pt = localtime(&t);cout當(dāng)前時間:setfill(0)setw(2)tm_hour:;coutsetw(2)tm_min:;coutsetw(2)tm_s
22、ecendlendl;cout現(xiàn)存車次信息如下:endlendl;cout車次t開車時間t起始t終點t票價t剩余座位t狀態(tài)tendl;for( j=0;j=g_num;j+)ticketj.display();/*查詢模塊之車次查詢*/void search_train()char train10;couttrain;coutendlendl;for(int j=0;j=g_num;j+)if(strcmp(train,ticketj.train)=0)cout查詢結(jié)果:endl;cout車次t開車時間t起始t終點t票價t剩余座位t狀態(tài)tg_num)cout對不起,沒有這趟車次信息!;/*查詢
23、模塊之站點查詢*/void search_station()char station20;coutstation;coutendlendl;for(int j=0;j=g_num;j+)if(strcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)cout查詢結(jié)果:endl;cout車次t開車時間t起始t終點t票價t剩余座位t狀態(tài)tg_num)cout對不起,沒有有關(guān)此站點的車次信息!;/*票務(wù)菜單模塊*/void ticketmenu()long t = time(0);tm * pt =
24、 localtime(&t);int functionNumber;int j;cout 票務(wù)菜單 n;char train10;char station20;cout可按站點或車次查詢訂票(1.按站點,2.按車次)endl;coutfunctionNumber;getchar();for(;functionNumber!=1&functionNumber!=2;) cout指令錯誤!請重新輸入!functionNumber; coutendlendl;if (functionNumber=1)coutstation;coutendlendl;for( j=0;j=g_num;j+)if(st
25、rcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)cout本車次現(xiàn)存信息:endl;cout車次t開車時間t起始t終點t票價t剩余座位t狀態(tài)tg_num)cout對不起,沒有這趟車次信息!,無法訂退票!;if (functionNumber=2)couttrain;coutendlendl;for( j=0;j=g_num;j+)if(strcmp(train,ticketj.train)=0)cout本車次現(xiàn)存信息:endl;cout車次t開車時間t起始t終點t票價t剩余座位t狀態(tài)tg_
26、num)cout對不起,沒有有關(guān)此站點的車次信息!無法訂退票!;if(ticketj.time.hourtm_hour)couttm_hour&ticketj.time.minutetm_min)cout此班列車已發(fā)出,不能訂退票!;else coutn;cout 1.訂票 n;cout 2.退票 n;cout 3.返回主菜單 n;coutn;coutfunctionNumber;for(;functionNumber!=1&functionNumber!=2&functionNumber!=3;) cout指令錯誤!請重新輸入!functionNumber; coutendlendl;swi
27、tch(functionNumber)case 1:ticketj.order();save ();break;case 2:ticketj.Delete();save ();break;case 3:mainmenu();break;/switch ends/*查詢模塊*/void search_menu()int functionNumber;cout 查詢子菜單 n;coutendl;cout 1.按班次查詢 n;cout 2.按站點查詢 n;cout 3.返回主菜單 n;coutendl;coutfunctionNumber;coutendlendl;for(;functionNumb
28、er!=1&functionNumber!=2&functionNumber!=3;) cout指令錯誤!請重新輸入!functionNumber;coutendlendl; 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;coutendl;cout 1.錄入班次信息 n;cout 2.瀏覽班次信息 n;co
29、ut 3.查詢行車路線 n;cout 4.售票與退票系統(tǒng) n;cout 5.退出系統(tǒng) n;coutendl;coutfunctionNumber;coutendlendl;switch(functionNumber)case 1: char c;if (A)do input();cout已錄入g_num+1條航班信息(包括已從文件中讀取的),想繼續(xù)錄入嗎(y/n)c; for(;c!=y&c!=n;) cout指令錯誤!請重新輸入!c; while (c=y);else cout對不起,您不是管理員不能進(jìn)行這項操作!;coutendl按任意鍵回主菜單endl;getchar();getchar
30、();system(cls);break;case 2:browse();coutendlendlendl按任意鍵回主菜單endl;getchar();getchar();system(cls);break;case 3:search_menu();coutendl按任意鍵回主菜單endl;getchar();getchar();system(cls);break;case 4:ticketmenu();coutendl按任意鍵回主菜單endl;getchar();getchar();system(cls);break;case 5:t = time(NULL);tm* pt = localt
31、ime(&t);system(cls);coutendlendlendlendlendlendlendl;cout 謝謝使用車票管理系統(tǒng) n;coutendlendlendlendlendlendlendlendlendlendlendl ttttttt制作:范振輝endlendl;cout ttttttt日期:setfill(0)tm_year-;coutsetw(2)tm_mon + 1-;coutsetw(2)tm_mday ;coutsetw(2)tm_hour:;coutsetw(2)tm_min:;coutsetw(2)tm_secn;B=false;break;default: cout輸入錯誤,請確保你的輸入為1-5endl;cout按任意鍵回主菜單endl;getchar();system(cls);/switch ends/*開始保證系統(tǒng)中存有信息模塊*/void sure_message()cout 歡迎使用車票管理系統(tǒng) nendlendl;ifstream file ( 數(shù)據(jù).txt ,ios:in) ;if ( !file ) if (A)cout 從沒錄入過信息,請您先錄入信息 endl;input();coutendl按任意鍵回主菜單endl;getchar();s
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 取用水領(lǐng)域信用評價指標(biāo)及評分標(biāo)準(zhǔn)
- 《水文分析與計算》本科題集
- 班子領(lǐng)導(dǎo)在新單位見面會上的講話
- 石淋與現(xiàn)代藝術(shù)融合
- 江蘇省蘇州市姑蘇區(qū)2024-2025學(xué)年九年級上學(xué)期10月月考?xì)v史卷(含答案)
- 2024年電銀項目資金需求報告代可行性研究報告
- 2023年帶鋼傳輸自動糾偏裝置資金申請報告
- 2023年自動絡(luò)筒機(jī)投資申請報告
- 2024年實驗室儀器裝置項目資金籌措計劃書代可行性研究報告
- 強(qiáng)化現(xiàn)場6S管理-推進(jìn)班組建設(shè)
- GB/T 14048.2-2008低壓開關(guān)設(shè)備和控制設(shè)備第2部分:斷路器
- Formel-Q第八版培訓(xùn)資料全課件
- 主題班會為什么我們要努力讀書課件
- 第十三章-體育經(jīng)紀(jì)人-(《文化經(jīng)紀(jì)概論》課件)
- 網(wǎng)絡(luò)安全教育課件PPT(30張)
- 政協(xié)委員提案案例3篇
- 《傳播學(xué)概論》考試復(fù)習(xí)題庫大全(含答案)
- 關(guān)愛青少年心理健康 課件(共18張ppt) 心理健康
- 放射科技能考核評分表
- isae3402如何做--dmla訪問控制
- 部編版三年級語文(上冊)標(biāo)點符號專項訓(xùn)練題(含答案)
評論
0/150
提交評論