c++課程設計飛機票管理_第1頁
c++課程設計飛機票管理_第2頁
c++課程設計飛機票管理_第3頁
c++課程設計飛機票管理_第4頁
c++課程設計飛機票管理_第5頁
已閱讀5頁,還剩9頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、計算機科學與技術教研室課程設計說明書(2013 /2014學年第二學期)課程名稱課程設計基礎(二)設計題目飛機訂票管理系統學號姓名小組成員起止時間: 2013年6月28 日 至2014年7月11 日 課程設計評 語該生平時表現良好,參與了課程設計的整個過程,而且完成了飛機訂票管理系統的代碼編寫,運用了類、類的繼承、構造函數等知識,并實現了錄入、刪除、查詢、修改及退出程序運行等基本功能。在此基礎上還實現了訂票,退票功能。課程設計說明書填寫正確,條理清楚,對于課程設計過程介紹詳細,代碼正確。作品演示熟練,能按照設計要求完成指定的功能。答辯過程中,回答問題正確,熟練,對自己的程序描述清楚,條理性強。

2、平時成績報告成績演示與答辯成績成績總評指導教師(簽字)年 月 日注:成績均用百分制。總成績=平時成績*20%+報告成績*40%+演示與答辯成績*40%設計題目: 飛機訂票管理系統1、課程設計目的:(1)熟練掌握,C+語言程序的編寫,調試及運行;(2)熟練掌握C+程序的類的應用。(3)熟練掌握類的繼承、構造函數的應用。(4)熟練掌握文件流的應用。(5)能夠獨立調試程序;(6)學生獨立編程能力,運用所學知識解決問題的能力。2、課程設計正文:2.1系統分析根據圖書管理系統,進行分析,我認為該系統應該分為三大部分功能:第一大部分功能,應該是針對乘客的應用程序;第二大部分功能,應該是針對管理員的應用程序

3、。第三大部分,應該是退出該系統的應用程序。2.1.1分析乘客程序第一大部分功能,還應分為兩小部分功能:第一小部分功能,應該是訂票業務,根據客戶提出的航班號,查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續,輸出座位號;若已滿員或者余票數少于訂票額,則需重新詢問客戶要求,若需要,可登記排隊候補。第二小部分功能,應該是退票業務,根據客戶提供的情況航班號、終點站等信息,為客戶辦理退票手續。2.1.2分析管理員程序然而,第二大部分功能,還應該分為八小部分:第一小部分功能,應該是錄入功能,可以錄入航班信息,如:終點站名、航班號、飛機號、星期幾飛行、乘員定額、余票量等重要信息。然后,把數據存儲在一個數

4、據文件中。第二小部分功能,應該是添加功能,當錄入完之后,還需可以添加一個航班信息,就運用此功能。第三小部分功能,應該是顯示功能,顯示航班信息,如:終點站名、航班號、飛機號、星期幾飛行、乘員定額、余票量、已訂票的客戶名單包括姓名、訂票量、艙位等級,以及等候補替的客戶名單包括姓名、所需票量。第四小部分功能,應該是查詢功能,根據旅客提出的終點站名,查詢出下列信息:航班號、飛機號、星期幾起飛,最近航班的日期和余票量。第五小部分功能,應該是修改功能,如果那條航班信息錄入錯誤可以對其進行修改,把航班信息重新輸入一遍。第六小部分功能,應該是刪除功能,如果那條航班信息錄入錯誤可以對其進行刪除,把航班的所有信息

5、刪除。第七小部分功能,應該是訂票功能,根據類的繼承,繼承乘客類的訂票函數。根據客戶提出的航班號,查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續,輸出座位號;若已滿員或者余票數少于訂票額,則需重新詢問客戶要求,若需要,可登記排隊候補。第八小部分功能,應該是退票功能,根據類的繼承,繼承乘客類的退票函數,然后,在此基礎上,添加上管理員查詢該航班是否有人排隊等候補,首先詢問排在第一的客戶,若剩余票能滿足他的要求,則為他辦理訂票手續,否則依次詢問其他排隊候補的客戶。2.2系統設計2.2.1編寫要求(1)每條航線所涉及的信息有:終點站名、航班號、飛機號、星期幾飛行、乘員定額、余票量、已訂票的客戶名單

6、(包括姓名、訂票量、艙位等級)以及等候補替的客戶名單(包括姓名、所需票量);(2)作為示意系統,全部數據可以只放在內存中;(3)系統能實現的操作和功能如下:錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定);查詢航線:根據旅客提出的終點站名輸入下列信息:航班號、飛機號、星期幾起飛,最近航班的日期和余票量。承辦訂票業務:根據客戶提出的要求(航班號、訂票數額)查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續,輸出座位號;若已滿員或者余票數少于訂票額,則需重新詢問客戶要求,若需要,可登記排隊候補;承辦退票業務:根據客戶提供的情況(日期、航班),為客戶辦理退票手續,然后

7、查詢該航班是否有人排隊等候補,首先詢問排在第一的客戶,若所有退票額能滿足他的要求,則為他辦理訂票手續否則依次詢問其他排隊候補的客戶。修改航班信息:當航班信息改變可以修改航班數據文件。2.2.2程序流程開始主菜單乘客退出管理員訂票業務退票業務錄入航班添加航班顯示航班查詢航班修改航班刪除航班訂票業務退票業務返回主菜單圖1 程序框圖程序流程如圖1所示。2.2.3總體設計飛機訂票管理系統進行設計:首先,對飛機訂票管理系統進行分類,把它分為兩個類: 1.乘客類 2.管理員類;管理員類繼承乘客類,然后分別編輯這兩個類,有了這幾大部分,然后進行細化。2.2.4乘客類設計根據分析的結果乘客類分為兩個小部分功能

8、:(1)對其訂票功能設計首先,定義一個訂票函數的函數,進行訂票時,先進行查詢,當余票為0時,詢問乘客是否進行候補排隊,如果排隊則錄入候補人員的姓名、需求量,當余票不為零時,乘客訂票輸入自己的姓名、需求量和艙位等級等信息。(2)對其退票功能設計如果乘客進行退票,退票成功,余票加1,則管理員詢問候補人員是否訂閱此票,這個訂票流程和訂票功能一樣。2.2.5管理員程序設計根據分析的結果面對讀者系統分為6個小部分功能:(1)對錄入功能進行設計進行錄入,先錄入終點站名,當終點站錄入為0時停止錄入,錄入的數據儲存在“plane.txt”文件中。(2) 對添加功能進行設計進行添加時,在原有的數據中,繼續添加相

9、應的數據,并把著這數據儲存在“plane.txt”文件中。能夠一同顯示出來。(3) 對顯示功能進行設計調用“plane.txt”文件中的所有數據,把他們按照一定格式顯示出來。(4)對查詢功能進行設計輸入要查詢的終點站的名字,然后進行搜尋,把對應的所有相關的數據輸出出來。(5)對修改功能進行設計把所有的數據顯示出來,然后,選擇要修改的數據,然后重新輸入,并替換它。(6)對刪除功能進行設計把所有的數據顯示出來,然后,選擇要刪除的數據,對其進行刪除對應的“plane.txt”文件中的數據。2.3系統實施2.3.1錄入功能其主要代碼為:for(i=0;i<M;i+) cout<<&q

10、uot;友情提示:當終點站輸入為0事停止輸入。"<<endl;cout<<"終點站:"<<endl;cin>>destination;if(destination="0") break;if(destination!="0") N+;outfile<<destination<<" "cout<<"航班號:"<<endl;cin>>flight_number;outfile<

11、<flight_number<<" "cout<<"飛機號:"<<endl;cin>>plane_number;outfile<<plane_number<<" "cout<<"星期:"<<endl;cin>>week;outfile<<week<<" "cout<<"乘客定額:"<<endl;cin>>

12、passenger_number;outfile<<passenger_number<<" "cout<<"余票:"<<endl;cin>>remain_ticket;outfile<<remain_ticket<<" "其錄入執行結果如圖2所示。圖2錄入功能2.3.2添加功能其主要代碼為: N=N+1;cout<<"請輸入您要添加的航班信息"<<endl;cout<<"終點站:&quo

13、t;<<endl;cin>>destination;outfile<<destination<<" "cout<<"航班號:"<<endl;cin>>flight_number;outfile<<flight_number<<" "cout<<"飛機號:"<<endl;cin>>plane_number;outfile<<plane_number<<

14、" "cout<<"星期:"<<endl;cin>>week;outfile<<week<<" "cout<<"乘客定額:"<<endl;cin>>passenger_number;outfile<<passenger_number<<" "cout<<"余票:"<<endl;cin>>remain_ticket;outf

15、ile<<remain_ticket<<" "outfile.close();cout<<"已添加成功!"<<endl;其添加執行結果如圖3所示。圖3添加功能2.3.3顯示功能其主要代碼為:for(k=0;k<N;k+)infile>>destination;cout<<" 終點站:"<<setw(4)<<destination;infile>>flight_number;cout<<" 航班號:&q

16、uot;<<setw(4)<<flight_number;infile>>plane_number;cout<<" 飛機號:"<<setw(4)<<plane_number;infile>>week;cout<<" 星期:"<<setw(4)<<week;infile>>passenger_number;cout<<" 乘客定額:"<<setw(4)<<passenge

17、r_number;infile>>remain_ticket;cout<<" 余票:"<<setw(4)<<remain_ticket<<endl;其顯示執行結果如圖4所示。圖4顯示功能2.3.4查詢功能其主要代碼為:cout<<"請輸入終點站!"<<endl;cin>>search_destination;for(i=0;i<N;i+)if(destinationi=search_destination)cout<<" "

18、;cout<<setw(4)<<" 終點站:"<<destinationi;cout<<setw(4)<<" 航班號:"<<flight_numberi;cout<<setw(4)<<" 飛機號:"<<plane_numberi;cout<<setw(4)<<" 星期:"<<weeki;cout<<setw(4)<<" 乘客定額:"

19、;<<passenger_numberi;cout<<setw(4)<<" 余票:"<<remain_ticketi<<endl;else cout<<"無到達此地的航班!"<<endl;其查詢執行結果如圖5所示。圖5查詢功能2.3.5修改功能其主要代碼為:cout<<"你想修改第幾個航班信息?"<<endl;cin>>k;k=k-1;cout<<"請輸入新的數據:"<<e

20、ndl;cout<<"終點站:"<<endl;cin>>destinationk;cout<<"航班號:"<<endl;cin>>flight_numberk;cout<<"飛機號:"<<endl;cin>>plane_numberk;cout<<"星期:"<<endl;cin>>weekk;cout<<"乘客定額:"<<endl

21、;cin>>passenger_numberk;cout<<"余票:"<<endl;cin>>remain_ticketk;其修改執行結果如圖6所示。圖6修改功能2.3.6刪除功能其主要代碼為:cout<<"您想刪除第幾個?"<<endl;cin>>k;k=k-1;infile.close();ofstream outfile("plane.txt",ios:out);if(!outfile)cerr<<" open error&

22、quot;<<endl; exit(1); for(i=0;i<N;i+)if(i!=k)outfile<<destinationi<<" "outfile<<flight_numberi<<" "outfile<<plane_numberi<<" "outfile<<weeki<<" "outfile<<passenger_numberi<<" "outfi

23、le<<remain_ticketi<<" "<<endl;outfile.close();N=N-1;cout<<"已刪除成功!"<<endl;其刪除執行結果如圖7所示。圖7刪除功能2.3.7訂票功能其主要代碼為:if(remain_ticketi=0)char b;cout<<"該票已售完!"<<endl;cout<<"是否排隊候補?"<<endl;cout<<"a.是 b.否&qu

24、ot;<<endl;if(b='a')cout<<"請輸入您的姓名:"<<endl;cin>>name2;cout<<"需要票量:"<<endl;cin>>need_number;cout<<"補替人姓名:"<<name2<<" 所需票量:"<<need_number<<endl;if(b='b')cout<<"抱歉未能

25、幫您訂票!"<<endl;elsecout<<"請輸入您的姓名:"<<endl;cin>>name1;cout<<"需要艙位等級:"<<endl;cin>>shipping_grade;cout<<"訂票人姓名:"<<name1<<" 艙位等級:"<<shipping_grade<<endl; remain_ticketi=remain_ticketi-1;其訂票

26、執行結果如圖8所示。圖8訂票功能2.3.8退票功能其主要代碼為:cout<<" "cout<<setw(4)<<" 終點站:"<<destinationi;cout<<setw(4)<<" 航班號:"<<flight_numberi;cout<<setw(4)<<" 飛機號:"<<plane_numberi;cout<<setw(4)<<" 星期:"&l

27、t;<weeki;cout<<setw(4)<<" 乘客定額:"<<passenger_numberi;cout<<setw(4)<<" 余票:"<<remain_ticketi<<endl;cout<<"是否退訂此票!"<<endl;cout<<"1.是 2.否"<<endl;cin>>a;if(a=1)cout<<"您退訂成功!"&

28、lt;<endl;remain_ticketi=remain_ticketi+1;其錄入執行結果如圖3所示。圖9退票功能3、課程設計總結在此次的程序設計過程中,我收獲頗多,對程序設計基礎知識的掌握更加扎實,同時提高了自己獨立編程的能力、靈活運用知識點的能力。在該飛機訂票管理系統中,主要運用了類的繼承、構造函數和文件流等知識;功能實現則通過函數來完成。但是我的工作還是有很多的不足,例如:在退票和訂票功能實現詢問排隊人員時,遇到了大量困難和問題。例如,退票后余票增加,訂票后余票減少,問問他人是否排隊等,然后經過老師的輔導和查閱書籍把問題一一解決。通過這次的課程設計,讓我們充分感到了獨自設計一個程序是多么的困難,沒有團隊是不行的,和同學們相互探討,相互學習,相互監督。促進自己,學會了合作,學會了運籌帷幄。在這個程序的

溫馨提示

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

評論

0/150

提交評論