面向?qū)ο驝++航空售票系統(tǒng)_第1頁
面向?qū)ο驝++航空售票系統(tǒng)_第2頁
面向?qū)ο驝++航空售票系統(tǒng)_第3頁
面向?qū)ο驝++航空售票系統(tǒng)_第4頁
面向?qū)ο驝++航空售票系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大 連 科 技 學 院面向?qū)ο蟪绦蛟O計課程設計題 目 航空售票管理系統(tǒng) 學生姓名 李易霖 專業(yè)班級 計算機10-1 指導教師 劉瑞杰 職 稱講師 所在單位 信息科學系軟件工程教研室 教學部主任 王立娟 完成日期 2012年7月6日課程設計報告單學號1001020112姓名李易霖專業(yè)班級計算機10-1考 核 項 目評分備注1平時工作態(tài)度及遵守紀律情況(10分)2掌握基本理論、關鍵知識、基本技能的程度和閱讀參考資料的水平(10分)3獨立工作能力、綜合運用所學知識分析和解決問題能力及實際工作能力提高的程度(20分)4完成課程設計說明書及軟件的情況與水平(小組分工情況、規(guī)范性、整潔清楚、敘述完整性、思

2、路清晰程度、工作量及實際運行情況和創(chuàng)新性)(60分)總評成績綜 合 評 定:(優(yōu)、良、中、及格、不及格) 指導教師簽字:2012年7月6日面向?qū)ο蟪绦蛟O計課程設計任務書一、課程設計任務及要求:任務:針對小型信息管理系統(tǒng)或若干綜合性設計題目,選擇一種軟件開發(fā)模型,完成從需求分析、系統(tǒng)設計、系統(tǒng)實現(xiàn),軟件測試的全過程。要求: (1) 根據(jù)軟件系統(tǒng)開發(fā)的一般原則,完成相應系統(tǒng)的功能設計,完成主要功能模塊的程序?qū)崿F(xiàn)并進行測試訓練,給出代碼運行結果和相應的設計文檔??梢苑纸M進行,但所有學生必須經(jīng)歷整個系統(tǒng)的開發(fā)全過程,以便加深對系統(tǒng)開發(fā)全過程的認識。(2)提交課程設計報告。(3)指標: 要求完成課程設計

3、報告3000字以上(約二十頁);完成所設計的題目,設計題目的語句行數(shù)的和在200行語句以上。二、工作量2周(10個工作日)時間三、計劃安排第1個工作日:查找相關資料、書籍,閱讀示例文檔,選擇題目。第2個工作日第4個工作日:設計程序結構、模塊圖。第5個工作日第9個工作日:完成程序的編碼,并且自己調(diào)試、測試。穿插進行課程設計報告的撰寫。第10個工作日:上交課程設計報告,由教師檢查軟件測試效果、檢查課程設計報告,給出學生成績。指導教師簽字:2012年6月25日目錄題目:11.需求分析12.概要設計13.詳細設計24.編碼25.調(diào)試分析46.測試結果及運行效果47.系統(tǒng)開發(fā)所用到的技術118.課程設計

4、總結11參考文獻12附錄 全部代碼13題目:航空售票管理系統(tǒng)1.需求分析航空售票管理系統(tǒng)可以根據(jù)乘客和管理人員的要求,進行方便快速的查詢、購票、退票和管理等工作。本系統(tǒng)可以在功能上實現(xiàn)更新航班信息 瀏覽航班信息查詢,以及航班信息訂票和退票這四個主要的功能。2.概要設計程序的結構圖如下讀取文件保存文件刪除全部刪除信息修改信息插入信息重新創(chuàng)建信息庫訂票 和 退票查詢航班信息瀏覽航班信息更新航班信息主函數(shù)圖1流程圖如上圖,程序中各功能模塊所需的數(shù)據(jù)都直接取自文件,這樣保證了各模塊的獨立性和數(shù)據(jù)的安全性。并且只有相應的模塊進行寫的操作,并且數(shù)據(jù)的寫入不必依賴其他模塊,這樣使用戶可以僅使用其中某一項功能

5、,而不必進行多余的操作。3.詳細設計首先根據(jù)問題描述抽象出一個航班類,封裝了航班的數(shù)據(jù)信息和方法。數(shù)據(jù)里主要有航班的航班號、起飛時間、站點等信息,方法主要是對該類中數(shù)據(jù)的值的輸入、輸出對本班次機票的管理,對時間、站名等的核對,另外為了方便對文件的輸出和讀取,還以友元的形式重載了提取和插入運算符。該系統(tǒng)總共包含四大功能模塊:1更新航班信息功能模塊該模塊為對航班信息的操作,僅向管理員開放使用,普通用戶不能使用該功能對航班信息進行操作,故進入該功能需進行身份驗證??刹欢〞r地增加航班數(shù)據(jù)。該模塊又被分為五個子功能模塊信息庫的重建、信息的插入、修改、刪除和清空數(shù)據(jù)。2瀏覽航班信息瀏覽航班信息,可顯示出所

6、有航班,如果當前系統(tǒng)時間超過了某航班的起飛時間,則顯示“此次航班已發(fā)出”的提示信息,完成將文件中的航班信息按照要求格式全部輸出。3查詢航班信息可以實現(xiàn)按航班號和按站點的查詢并將查詢到的信息輸出。4訂票和退票系統(tǒng)A:查詢航班編號或站點。當剩余座位數(shù)大于0,并且當前系統(tǒng)時間小于起飛時間時才能售票,售票后自動更新剩余座位數(shù)。B:退票時,輸入退票的班次,當本班航班未發(fā)出時才能退票,退票后自動更新剩余座位數(shù)。該模塊根據(jù)訂票和退票操作的相似性,將這兩種操作放在一起。另外,由于各模塊函數(shù)是直接對文件進行操作,所以各功能模塊是相互獨立的。4.編碼int main()Traffic_system civil_a

7、viation;/若文件不存在,則新建文件ofstream newfile( "flight information.txt", ios:app );if (!newfile)cerr << "文件"flight information.txt"無法打開!n"exit(2);newfile.close();int tab;while(1)cout << "n>>>>>>>>>>>>>>>>>>&

8、gt;>>>>>>>歡迎進入航空售票管理系統(tǒng)<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << "* 主菜單: *" << "* 1更新航班信息(需管理員身份驗證) 2瀏覽航班信息 *" << "* 3查詢航班信息 4訂票 和 退票 *" <<

9、; "* 5清 屏 0退 出 系 統(tǒng) *" << "*" << "你需要做什么?(選擇04)" << endl;cin >> tab;while(!(tab = 1 | tab = 2 | tab = 3 | tab = 4 | tab = 5 | tab = 0)cout << "請輸入正確選擇(04):"cin >> tab;switch(tab)case 1:civil_aviation.Manage();break; /航線管理case

10、 2:civil_aviation.Scan();break; /訂票辦理case 3:civil_aviation.Search();break; /退票辦理case 4:civil_aviation.BookRefund();break;case 5: system("cls"); break;case 0:return 0; /退出系統(tǒng)5.調(diào)試分析程序編寫完成后,主要出現(xiàn)的是各種語法錯誤,如字母打錯了,字母少打了,字母大小寫錯了,符號錯了或少打了等等一系列錯誤。有時候一個小小的錯誤會讓程序運行不了,在反復的調(diào)試檢查的過程中,我把這些細小的錯誤全部都找出來,最后程序終于

11、能執(zhí)行了。還有就是存儲問題了。在開始的時候我一直按照書上的直接用輸出流對象來存儲到文件里面,后來打開文件,里面確實有數(shù)據(jù),但是在調(diào)出數(shù)據(jù),也就是在查詢客戶信息的時候,盡管我輸入的是已經(jīng)存在的客戶姓名,但是系統(tǒng)卻找不到客戶信息。我存儲的時候數(shù)據(jù)間沒有間隔,在讀取的時候就不能分別數(shù)據(jù)了,應該在存儲的時候在每個數(shù)據(jù)間加入一個空格符號,來分開每一個數(shù)據(jù)。系統(tǒng)能正常識別數(shù)據(jù)了。6.測試結果及運行效果1、首先進入系統(tǒng)提示是否是第一次進入,如果是第一次就進行初始化,講預先的幾個乘客信息存檔。否則直接進入主菜單:圖2登錄界面第一次進入,初始化!并且進入主菜單:提示輸入業(yè)務代碼,如果輸入的不是以上業(yè)務代碼則提示

12、輸入錯誤:圖3 輸入代碼圖4 輸入錯誤2、進行第一個功能選項:訂票業(yè)務:如果已經(jīng)存在此客戶的信息則會出現(xiàn)下面情況:圖5 客戶重復則提示已經(jīng)定過航班,問是否進入主菜單。如果輸入的客戶在檔案里面沒有則進行正常訂票:圖6 訂票成功3、第二項功能:退票業(yè)務:輸入客戶姓名和航班,將其信息刪除。并提示是否返回主菜單。圖7 成功退票為了驗證是否刪除了客戶信息,可以進行查詢客戶信息業(yè)務和查詢?nèi)啃畔I(yè)務:圖8 查詢信息確認顯示沒有剛剛已經(jīng)退訂客戶的信息。顯示出沒有剛剛已退訂客戶的信息,并且航班的信息隨之調(diào)整,訂票數(shù)和余票數(shù)自動修改為正確值。圖9 查詢信息確認4、下面為第三個功能選項:查詢客戶信息,輸入客戶姓名

13、,就會自動輸出客戶的相關信息。圖10 輸入姓名圖11 所要查找的信息如果沒有客戶信息則輸出以下內(nèi)容,并且提示是否進入到主菜單。圖12 沒有查找的信息5、查詢?nèi)啃畔ⅲ喊ㄋ锌蛻粜畔⒑退泻桨嗟男畔D13 全部信息 6、退出系統(tǒng):退出:7.系統(tǒng)開發(fā)所用到的技術這個航空售票管理系統(tǒng)中,應用的是C+程序設計語言。C+和C的不同在于C+的功能更強大更完善,支持中文輸入,是兼顧面向?qū)ο蟮奶攸c的程序設計語言。為了方便編寫程序,我采用了比較簡單的方法,從main主函數(shù)中指向5個函數(shù),并且全部定義為void型,可以指向任意類型的數(shù)據(jù),提高兼容性。用switch選擇語句來指向調(diào)用函數(shù),再對5個調(diào)用函數(shù)進行定義

14、。這樣函數(shù)之間彼此循環(huán)構成了一個完整的函數(shù)。8.課程設計總結經(jīng)過這次的課程設計,我認識到把課堂上老師講的知識運用到實際操作中的重要性。我這次課程設計的題目是航空訂票系統(tǒng),在開始階段,根本無從下手,后來通過查閱一些相關資料和老師的耐心講解,最終成功完成整個程序的設計。通過這次課設我對C+語言中的類的定義、運算符重載等知識有了進一步的理解,對流程圖的畫法更加熟練,對程序的開發(fā)思路有了一定的理解,我想這在以后的學習和工作中都會有幫助的,更使我意識到了學習C+語言的重要性。另外,對程序的不斷調(diào)試,是我的查錯能力有了很大的提高。本次程序設計所用時間較長,工作量很飽滿,而且所用的知識很多,但是我們平常在課

15、堂上所學的知識很有限,這就需要我大量的自學書本和課外的其他書籍上的知識。C+設計實踐是對之前學過的知識的加深和鞏固,之前學得較淺,實踐的機會不多,這次實踐讓我對C+程序有了更加深入的了解,心理也由原來的不喜歡到喜歡,感覺很有意思也很有用,可也設計一些有用的或者是自己喜歡的程序。最令我收益的是寫程序的過程和調(diào)試修改的過程,因為之前我們就學了幾章,沒有把知識學習全面,因此編寫起來是有難度的,在預先想好程序結構后,就開是卡看書,一個函數(shù)一個函數(shù)來編寫,不懂的地方就上網(wǎng)搜或是請教一下同學,當終于把程序?qū)懗鰜淼臅r候,內(nèi)心里又有一種說不出來的激動,我感覺這很符合大學的教育觀念,是對個人自主學習能力的一個鍛

16、煉。在接下來就是調(diào)試,雖然出了很多的錯誤。但在我不斷找錯下現(xiàn)在程序終于能較好的運行出來了,當然,還存在一些瑕疵,但通過這近兩周的實踐學習,我收獲的不僅僅是這一個程序,我的自學能力,以及尋找問題解決問題的能力也得到了很好的鍛煉,使我的專業(yè)水平提高了不少。從這次課程設計中我付出了很多也收獲了很多。參考文獻1C+程序設計譚浩強,清華大學出版社2Visual C+面向?qū)ο蟪绦蛟O計程劉瑞新主編,曹建春,沈淑娟,張連堂等編著,機械工業(yè)出版社3 C+程序設計吳乃陵,況迎輝北京:高等教育出版社附錄 全部代碼#include <iostream>#include<string>#incl

17、ude <fstream>using namespace std;struct flightint fligh;int num;char place10;int dticket;int yticket;fl10=101,01,"北京",1,99,102,02,"上海",1,99,103,03,"廣州",1,99;struct customerchar name10; int seat; int num;cu300="張三",01,101,"李四",01,102,"王麻子&q

18、uot;,01,103; /定義結構體int cnum=3; /定義客戶編號void list();void dingpiao();void tuipiao();void chaxun(); void chaxun();void chaxunquanbu();void caidan1(); /函數(shù)聲明void caidan2();void chushi();void main()cout<<"歡迎使用航空訂票系統(tǒng) 制作者 李易霖版權所有,盜版必究"<<endl<<endl; caidan2(); /主函數(shù)void caidan1()int

19、 i; cout<<"* 航空訂票系統(tǒng)v2012 *"<<endl; cout<<"* *"<<endl; cout<<"* 1.訂票業(yè)務 2.退票業(yè)務 *"<<endl; cout<<"* 3.查詢客戶信息 4.查詢?nèi)啃畔?*"<<endl; cout<<"* 5.退出系統(tǒng) *"<<endl; cout<<"* *"<<endl;

20、 cout<<"* 如果是第一次使用本系統(tǒng),請載入初始信息謝謝 *"<<endl; cout<<"*"<<endl;ifstream infile1("airline.dat");ifstream infile2("customer.dat");for(i=0;i<3;i+) infile1>>fli.fligh>>fli.num>>fli.place>>fli.dticket>>fli.yticket

21、;for(i=0;i<300;i+) infile2>>>>cui.num>>cui.seat>>cnum; infile1.close();infile2.close(); /讀取數(shù)據(jù)cout<<"請輸入業(yè)務代碼:"list(); /菜單1void caidan2()int t; cout<<"第一次啟動本軟件請輸入1,否則請輸入2:"cin>>t; if(t=1)chushi();else caidan1(); /菜單2void chushi()

22、int i; ofstream outfile("airline.dat"); ofstream file("customer.dat"); for (i=0;i<3;i+) outfile<<fli.fligh <<" " <<fli.num<<" " <<fli.place<<" " <<fli.dticket<<" " <<fli.yticket<&l

23、t;endl;file<<<<" "<<cui.num<<" "<<cui.seat<<" "<<cnum<<endl; outfile.close();file.close();cout<<"初始化已完畢!"<<endl<<endl;caidan1(); /存儲數(shù)據(jù)void list()int a;cin>>a;cout<<endl;switc

24、h(a)case 1:dingpiao();break; case 2:tuipiao();break; case 3:chaxun();break; case 4:chaxunquanbu();break; case 5:;break; default:cout<<"輸入錯誤,請重新輸入正確的代碼:"list(); /輸入代碼void dingpiao()/ 訂票char name10;int num,i,t,j,k,temp;int x;cout<<"請輸入你的姓名和想訂的航班號:"<<endl<<en

25、dl;cout<<"姓名:"cin>>name;cout<<endl;cout<<"航班號:"cin>>num;for(i=0;i<300;i+)if(strcmp(name,)=0)cout<<"您已經(jīng)定過航班,要返回主菜單嗎?(1.返回/2.退出)" cin>>t;switch(t) case 1:caidan1();break; default :break; for(i=0;i<300;i+)if (name!=cu

26、)for(j=0;j<10;j+)if(flj.fligh=num)temp=j; if(fltemp.yticket<=100) cout<<"此航班還有余票,要訂票嗎?(1.是/2.否)" cin>>x; switch(x) case 1: for (k=0;k<3;k+) if (flk.fligh=num) flk.dticket=flk.dticket+1;flk.yticket=flk.yticket-1;cnum=cnum+1; strcpy(,name);cucnum.num=num

27、; cucnum.seat=flk.dticket; ofstream outfile1("airline.dat"); for(j=0;j<3;j+) outfile1<<flj.fligh<<" "<<flj.num<<" "<<flj.place<<" "<<flj.dticket<<" "<<flj.yticket<<endl; ofstream outfile2

28、("customer.dat",ios:app); outfile2<<<<" "<<cucnum.num<<" "<<cucnum.seat<<" "<<cnum<<endl; /打開文件并存儲數(shù)據(jù)cout<<"訂票成功!"<<endl<<endl<<"客戶信息:"<<<

29、<'t'<<"航班號:"<<cucnum.num<<'t'<<"座位號:"<<cucnum.seat<<endl;outfile1.close();outfile2.close();cout<<" 1.返回主菜單 2.退出 :"cin>>temp;if(temp=1) caidan1();else; ;break; default :caidan1();break;else cout<<&q

30、uot;此航班票已經(jīng)售完,請訂其他航班次的票" / /訂票void tuipiao()/ 退票char name10;int i,temp,t,num,a,j;struct tmp;cout<<"請輸入您的姓名和航班號:"<<endl;cout<<"姓名:"cin>>name;cout<<"航班號:"cin>>num;cout<<endl;for(i=0;i<300;i+)if (strcmp(,name)=0)a=0;

31、cout<<"確定退訂嗎?(1.是 2.否):"cin>>temp; if(temp=1) ofstream outfile1("airline.dat"); ofstream outfile2("customer.dat");for(j=0;j<=i;j+) outfile2<<<<" "<<cuj.num<<" "<<cuj.seat<<" "<&l

32、t;j<<endl; for(t=0;t<3;t+)if(flt.fligh=num) flt.dticket=flt.dticket-1;flt.yticket=flt.yticket+1; for(t=0;t<3;t+) outfile1<<flt.fligh<<" "<<flt.num<<" "<<flt.place<<" "<<flt.dticket<<" "<<flt.yti

33、cket<<endl; else a!=0; if (a!=0) cout<<"沒有你的信息,請查證后再操作!"cout<<"返回主菜單?1.是2.否:"cin>>temp;if(temp=1)caidan1();/ 退票void chaxun()char name10;int temp,i,a;cout<<"請輸入你的姓名:"cin>>name;for(i=0;i<300;i+)if (strcmp(,name)=0)temp=i;a=0;cout<<"*乘客信息*"<<endl<<"姓名:"<<<<

溫馨提示

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

評論

0/150

提交評論