數(shù)據(jù)結(jié)構(gòu)課程設(shè)計源代碼_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計源代碼_第2頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 算法與數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計報告 設(shè)計題目 專 業(yè) _ 班 級 學(xué) 生 _ 學(xué) 號 _ 指導(dǎo)教師 _ 衣球 YANGTZE UNIVERSFY 下載可編輯 .專業(yè).整理. 2014 年第 1 學(xué)期 第一部分:需求分析 1、系統(tǒng)名稱:航空客運(yùn)訂票系統(tǒng) 航空客運(yùn)訂票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)定和辦理退票等。要求在 TC或 VC 環(huán)境下設(shè)計一個航空客運(yùn)訂票系統(tǒng),以使上述業(yè)務(wù)可以借助計算機(jī)來完 成。 2、要求: (1) 每條航線所涉及的信息有:終點(diǎn)站名、航班號、飛機(jī)號、 飛行日期(星 期幾)、乘員定額、余票量、已經(jīng)訂票的客戶(包括、訂票量)以及等候替補(bǔ)的客 戶(包括、所需票量)。 (2) 作為模擬

2、系統(tǒng),全部數(shù)據(jù)可以只存放在存中。 (3) 通過此系統(tǒng)可以實(shí)現(xiàn)如下功能: 錄入功能:可以錄入航班情況 查詢功能:根據(jù)客戶提供的終點(diǎn)站名進(jìn)行查詢, 可以輸出以下信息:航班 號、飛機(jī)號、星期幾飛行和余票量等。也可以根據(jù)航班號,查詢飛機(jī)某個航線的 情況。 訂票功能:根據(jù)客戶提出的要求(、終點(diǎn)站名、訂票數(shù)量)查詢該航班的余 票量情況。如尚有足夠的余票,則為客戶辦理訂票手續(xù);若已滿員或余票量少于 訂票數(shù)量,則需要重新詢問客戶要求,如需要,可登記排隊(duì)候補(bǔ)。 退票功能:根據(jù)客戶提供的情況(、日期、航班號),為客戶辦理退票手續(xù), 然后查詢該航班是否有人排隊(duì)候補(bǔ), 若有人排隊(duì),則為排在第一位的客戶辦理訂 票手續(xù)。

3、下載可編輯 .專業(yè).整理. 第二部分:系統(tǒng)設(shè)計圖樣 添加航班 :設(shè)計說明 1:添加航班: 整個航班的信息保存在一個結(jié)構(gòu)體 flight 中,采用結(jié)構(gòu)體數(shù)組,每一個 航班信息包含航班號、起飛時間、起飛城市、降落時間、降落城市、余票數(shù)量。 航班信息通過 lulu ()函數(shù)進(jìn)行添加。添加的信息保存在航班 flight 結(jié)構(gòu)體數(shù) 組中。 2:查詢航班:查詢板塊分為兩個部分,按查找和按站名查找。 按查找:通過所輸入的和已定客戶的相匹配,匹配成功則查找成功。 按站名查找:通過所輸入的起始站名和終點(diǎn)站名進(jìn)行匹配, 匹配成功則查找 成功。 3:訂票功能:根據(jù)用戶的和航班號進(jìn)行訂票,如果所查找的航班號的余票 滿

4、足用戶需要的票數(shù),則訂票成功,該信息保存在 Customer 中,才用結(jié)構(gòu)體數(shù) 組,包含已定客戶的、客戶 ID、訂的票數(shù)、起飛時間、起飛城市、降落時間、 降落城市、航班號。若所查找的航班的余票不滿足客戶的需求, 則提醒用戶是否 需要進(jìn)入到等候用戶的里,等候用戶信息保存在 Wait 結(jié)構(gòu)體數(shù)組中,每添加一 個信息,該數(shù)組則會生成一個記錄。 4:退票功能:根據(jù)用戶的和航班號進(jìn)行退票,如果用戶輸入的和航班號在 已定查詢航班 下載可編輯 .專業(yè).整理. 客戶的結(jié)構(gòu)體數(shù)組中能找到該記錄,則在已定客戶的數(shù)組中刪除此條記錄, 并且將該條記錄的票數(shù)添加到 flight 中該航班的余票中去。 5:瀏覽航班:該功

5、能分為三個板塊:顯示已定客戶信息,顯示等候客戶, 顯示所有航班信息。 顯示已定客戶信息:通過格式化輸出,將已定客戶 Customer 結(jié)構(gòu)體數(shù)組中 的信息利用一個循環(huán)輸出。 顯示等候客戶:通過格式化輸出,將等候客戶 Wait 結(jié)構(gòu)體數(shù)組中的信息利 用一個循環(huán)進(jìn)行輸出。 顯示所有航班信息:銅鎖格式化輸出,將所有航班信息 flight 結(jié)構(gòu)體數(shù)組 中的信息利用一個循環(huán)進(jìn)行輸出。 6:安全退出:通過 exit 函數(shù)進(jìn)行退出程序。 第三部分:實(shí)現(xiàn) 1、 頭文件部分 #i nclude stdafx.h #i nclude #i nclude #include #include #include #i

6、nclude #in clude #include 2、 函數(shù)體部分 const int MAX_POSSIBILITY = 100; using n amespace std; static string title6= 航班號,起飛時間,降落時間,起飛城市, 降落城市,余票量; static int wid 6=8,10,10,10,10,8; static string title19= 客戶,座位號,航班號,證件號,訂票數(shù), 降落時間,起飛時間,起飛城市,降落城市; static int wid19=8,9,8,8,8,11,11,11,11; static string title2

7、5= 客戶,起飛城市,降落城市,客戶 ID,預(yù)訂 票數(shù); static int wid25=8,10,10,10,10; 下載可編輯 .專業(yè).整理. exter n int len=0; exter n int A=0;下載可編輯 .專業(yè).整理. exter n int max1=0; struct flight / 航班號 int a1; / 航班號 stri ng a2; / 起飛時間 stri ng a3; / 降落時間 stri ng a4; / 起飛城市 stri ng a5; / 降落城市 int a6; / 余票 fl50; struct customer -/ 客戶信息 str

8、i ng n ame; / 客戶 int seat; / 座位號 int num; / 航班號 stri ng no; / 證件號 int ps; / 訂票數(shù) stri ng jls; / 降落時間 stri ng qfs; / 起飛時間 stri ng qfd; / 起飛城市 stri ng jld; / 降落城市 cu100; struct wait r stri ng b1; / 客戶 stri ng b2; / 起飛城市 stri ng b3; / 降落城市 stri ng no; / 客戶 ID int num; / 訂票數(shù) Wa50; void luru(); / 聲明錄入航班信息

9、函 void chax un(); / 聲明查詢函數(shù) void din gpiao(); :/ 聲明訂票函數(shù) bool tuipiao(); / 聲明退票函數(shù) void tuichu(); / 聲明退出函數(shù) void menu(); / 聲明主菜單函數(shù) void chax un 1(); :/ 聲明按航班號查詢 void chax un 2(); :/ 聲明按城市查詢 void visit(); / 聲明預(yù)覽菜單 void visit1(); void visit2(); void visit3(); void fresh(); 下載可編輯 .專業(yè).整理. void luru() 下載可編輯

10、.專業(yè).整理. cout* 請輸入航班信息 * flle n.a1; cout起飛時間:; cin flle n.a2; cout降落時間:; cin flle n.a3; cout起飛城市:; cin flle n.a4; cout降落城市:; cin flle n.a5; coutvv剩余票量:; cin flle n.a6; len+; coutvv請選擇所要進(jìn)行的操作endl; 下載可編輯 .專業(yè).整理. menu(); void visit() cout1: cout2: cout3: 顯示已定航班信息endl; 顯示等候客戶信息endl; 顯示所有航班信息 s; switch(s)

11、 case 1:visit1(); break; case 2:visit2(); break; case 3:visit3(); break; default:cout* goto end; /break; return; void visit1() coutvv* 已 定 客 戶 信 息 *end|; for(int i=0;iv9;i+) / / / 顯示已定客戶信息 顯示等候客戶信息 顯示所有航班信息 請重新輸入*endl; 下載可編輯 .專業(yè).整理. coutsetw(wid1i)vvtitle1i; coute ndl; for(i nt j=O;jA;j+) coutsetw(w

12、id10)cuj. name; coutsetw(wid11)cuj.seat; coutsetw(wid12)cuj. num; coutsetw(wid13)cuj. no; coutsetw(wid14)vvcuj.ps; coutsetw(wid15)vvcuj.jls; coutsetw(wid16)vvcuj.qfs; coutsetw(wid17)vvcuj.qfd; coutsetw(wid18)vvcuj.jld; coute ndl; menu(); void visit2() /* for(i nt i=0;i5;i+) coutsetw(wid2i)vvtitle2i;

13、 coute ndl; for(i nt j=0;jmax1;j+) coutsetw(wid20)vvWaj.b1; coutsetw(wid21)vvWaj.b2; coutsetw(wid22)vvWaj.b3; coutsetw(wid23)vvWaj. no; coutsetw(wid24)Waj. num; coute ndl; menu(); void visit3() /* for(int i=0;i6;i+) coutsetw(widi)titlei; coute ndl; for(i nt j=0;jle n;j+) coutsetw(wid0)vvflj.a1; cout

14、setw(wid1)vvflj.a2;等候客戶信息*endl; 所有航班信息*endl; 下載可編輯 .專業(yè).整理. coutsetw(wid2)vvflj.a3; coutsetw(wid3)vvflj.a4; coutsetw(wid4)vvflj.a5; coutsetw(wid 5)flj.a6; coute ndl; menu(); void fresh() if(tuipiao()=true) coutvv*退票成功,等候客戶可以進(jìn)行購票 din gpiao(); menu(); void menu() cout e ndl; cout* 歡迎來到航空訂票系統(tǒng) *endl; cou

15、t e ndl; cout cout*1 coutv*2 cout*3 cout*4 cout*5 coutv*6 cout*7 cout cout i; switch(i) case 1: *e ndl; *ve ndl; 錄入航班信息*endl; 查詢航班信息*endl; 訂 票 *e ndl; 退 i 票 *e ndl; 瀏覽航班信息*endl; 退出系統(tǒng)*endl; 刷*e ndr 下載可編輯 .專業(yè).整理. luru(); break; case 2: chax un(); break; case 3:下載可編輯 .專業(yè).整理. din gpiao(); menu(); case 4

16、:tuipiao(); break; case 5:visit(); break; case 6:tuichu(); exit(1); /case 7:fresh(); / break; default :coutvv 輸入的選項(xiàng)不合法, 請重新輸入e ndl; system (cls); / 清屏 /me nu(); void chax un() system(cls); cout請選擇查詢方式endl; cout1.按航班號查詢endl; cout2.按城市查詢 t; switch(t) case 1:chax un 1(); break; case 2:chax un 2(); brea

17、k; default :coutvv 輸入的數(shù)據(jù)有誤,請重新輸入!e ndl; menu(); break; void chaxu n1() / 按航班號查詢 int n; coutvv請輸入要查詢的航班號:n; for(i nt j=O;j=le n;j+) if(flj.a1=n) coutvv* 該次航班信息為 *endl;下載可編輯 .專業(yè).整理. coutvv航班號:vvflj.a1vvendl; cout起飛時間:flj.a2endl; cout降落時間:flj.a3endl; cout起飛城市:flj.a4endl; cout降落城市:flj.a5endl; cout剩余票量:f

18、lj.a6endl; menu(); return; cout沒有對應(yīng)的航班! ml; coutvv請輸入要查詢的降落城市:; cin m2; en d:if(jle n) if(flj.a4=m1 & flj.a5=m2) coutvv* 該次航班信息為 * Name; coutvv請輸入航班號:; cinfn; coutvv請輸入預(yù)定票數(shù):; cin ydps; coutvv請輸入身份證號:; cin ID; for(i nt i=0;i0 &fli.a6=ydps) / 判斷票數(shù)是否滿足條件 cuA. name=Name; cuA. num=fn; cuA.ps=ydps; cuA.jl

19、d=fli.a5; cuA.jls=fli.a3; cuA. no=ID; cuA.qfd=fli.a4; cuA.qfs=fli.a2; srand( (unsigned)time( NULL ); cuA.seat= ran d() % MAX_POSSIBILITY; 產(chǎn)生一個隨機(jī)數(shù) A+; fli.a6=fli.a6-ydps; sig n=1; coutvv訂票成功!endl; coutvv vve ndl; break; else char r; 下載可編輯 .專業(yè).整理. coutvv該航班余票不足!;下載可編輯 .專業(yè).整理. coutvv是否愿意盤對等候? (Y/N); r=

20、getchar(); cinr; if(r=Y | r=y) queue M; Wamax1.b仁Name; Wamax1.b2=fli.a4; Wamax1.b3=fli.a5; Wamax1. no=ID; Wamax1. num=ydps; M.push(Wamax1); max1+; coutvv客戶,您好!您的信息我們已經(jīng)記錄,請等候通 知!e ndl; break; sig n=1; if(sig n) break; /if(i=le n) /coutvv航班號有誤! Name; coutvv請輸入航班號:; cinfn; for(int i=0;ivlen;i+) if(fn=f

21、li.a1) / 航班號匹配 for(i nt j=0;jvA;j+) if(cuj. name=Name) 下載可編輯 .專業(yè).整理. 下載可編輯 .專業(yè).整理. cout退票成功!endl; fli.a6+=cuj.ps; int s=j; for(s;s=le n) coutvv輸入信息有誤!退票失敗endl; menu(); return true; void tuichu() cout* 歡迎下次光臨 * -. L*. 呂 七 占-Z- -V- 4 a 占JL 占-Z- -V_ 護(hù)十 I * 弋 氣=7 r -腎-十1 弋 JT- y- 7- T * F -嚀1 士 , T T-卄*

22、 治*爭*J *車*宰申百 中卓斗.:斗車*專*6 *皋靱*粘*: -Cr Z 2 心 - 占 - 占.、心 占 - 七 - 占.A. 占.-J. p np w? r !S s rep p np i i ? aro js is JS si r ;s aro Ji IT- !f- 溝選擇操匚: 1、打開界面 . .141 | 息票票息統(tǒng)新 晰 頤出 蛋訂退黑*塞*年歩*爭* 牢幸半*半*2 卓* *4*4*3 常*學(xué)*卡4 斗 La/m 4:- ta 占 t 亡 斗 嚴(yán)幸*宰*字*雜甲電皋平寫旱事握甲客卓皐辛孚字賽*寫來生*電*字*巧來舉*:半*爭卓 EM C:- Ar -H& . j&tt-n

23、i j,cxl-1 :卅牛和*榊襯讀兩來劉號空訂 殺系旣卅林拜* * * *:* 下載可編輯 .專業(yè).整理. 2、錄入界面 錄入航班信息神神* 査詢就班信息* 訂 1 *#* j 亙 票 *拿* 瀏覽航班信息* *+* 謂出 系統(tǒng)*宰*林 刷 * i青選抒揮作:1 *+*+*請輸入航班信息* 請輸班號: 8857 I起飛時間:12; 32 降蔣時間;1& &0 皚飛城審:荊州 虺落城市:莎市 半: 3、按航班號查找界面下載可編輯 .專業(yè).整理. 卡*林*鉗拿*吹迎來到航空訂票畚統(tǒng)*$* 4、按城市查找界面 請輸入靈查詢的起始城市劑州 請輸入要查詢的降落城市:沙市 林林卡林*林該次.1牡坯G息為

24、* 航班號:8BS7 起飛時間:1仝32 降落時間:1(5* 50 起飛城市:荊州 常落城市:沙市 剌余烹量:血 *查找戰(zhàn)功* 總粧相卒代煒皈十:!來亍匕壬空訂決東軌糾辛代*旨籽卡 H*H* 申林卓 * 艸腹贈艸申*.錄入航班伯慝榊*半*鮒申* 號間間加市量 33503350 幘選擇查詢方式 1*按航班號查詢 工按城幣查詢 戶*辛*牢* *+*+*1.錄入航班 !,*+* * + + *2音詢掰班佶顯字*學(xué)*4:*爭* 半: 請選琴查詢方式 1 按航班呂查詢 N按城市査詢 半: 下載可編輯 .專業(yè).整理. 5:訂票界面下載可編輯 .專業(yè).整理. u 創(chuàng) 請選擇操作:3 請輸入你的姓名;髙曉波 請輸入航班號:閱茁 請輸入預(yù)定票歎:1 請輸入身份證號J112 訂票成功! *+*Sc 迎束到航空訂 5!S3t* u 心七亠 4 gJ /- 各 心心亠,斗 二;心厶 4 FJS rp tfi ifi if) rjs rfi rr ifi s rfi ryi r1 *y r

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論