




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
訂票系統(tǒng)1.需求分析任務(wù):通過此系統(tǒng)可以實現(xiàn)如下功能:錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達(dá)城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件要求:根據(jù)以上功能說明,設(shè)計航班信息,訂票信息的存儲結(jié)構(gòu),設(shè)計程序完成功能;2.概要設(shè)計在此說明每個部分的算法設(shè)計說明(可以是描述算法的流程圖),每個程序中使用的存儲結(jié)構(gòu)設(shè)計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義)。主菜單0123456789輸入航班的信息列出航班的信息按航班號查詢航班信息按城市來查詢航班訂票程序退票系統(tǒng)修改飛機(jī)航班的信息保存文件讀取文件 、下載文件退出0.輸入航班的信息航班號起飛城市降落城市出發(fā)時間降落時間剩下的座位價格折扣1.列出航班的信息繼續(xù) y退出 n2.按航班號查詢航班信息輸入所需要查詢的航班號顯示這個航班的的信息3.按城市來查詢航班輸入起飛城市輸入降落城市顯示這個航班的信息4.訂票程序輸入號碼輸入名字輸入ID需要定的票數(shù)航班號5.退票系統(tǒng)輸入航班號輸入你ID確定退票 1否定 06.修改飛機(jī)航班的信息輸入要修改的航班號重新輸入新的航班信息7.保存文件顯示保存成功詳細(xì)設(shè)計3.源程序/*頭文件(.h)*/#include /*I/O函數(shù)*/#include /*其它說明*/#include /*字符串函數(shù)*/#include /*屏幕操作函數(shù)*/#include /*字符操作函數(shù)*/#define N 20#define Q 40 /*定義常數(shù)表示記錄數(shù)*/ /*定義數(shù)據(jù)結(jié)構(gòu)*/*乘客信息*/typedef struct char number10;/*編號*/ char name10; /*姓名*/ char id20; /*證件號*/ int count; /*訂票數(shù)*/ char flightname10;/*乘坐航班號*/GUEST; /*航班信息*/typedef structchar planenumber10;/*航班號*/ char city120; /*起飛城市*/ char city220; /*抵達(dá)城市*/ char time120; /*起飛時間*/ char time220; /*降落時間*/ int room; /*艙位數(shù)*/ char price5; /*票價*/ char discount5; /*折扣*/ GUEST guest25; int sit;FLY;/*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項*/menu_select() char s80; int c; gotoxy(1,25);/*將光標(biāo)定為在第25行,第1列*/ printf(press any key enter menu.n);/*提示壓任意鍵繼續(xù)*/ getch(); /*讀入任意字符*/ clrscr(); /*清屏*/ gotoxy(1,1); printf( Welcome tonn); printf( Tickets Booking Systemnn); printf( *MENU*nn); printf( 0. Enter flight recordn); printf( 1. List the flight informationn); printf( 2. Search flightnumbern); printf( 3. Search cityn); printf( 4. Book the ticketn); printf( 5. Quit the ticketn); printf( 6. Channge the flight informationn); printf( 7. Save the filen); printf( 8. Load the filen); printf( 9. exitn); printf( *n); do printf(n Enter you choice(09):); /*提示輸入選項*/ scanf(%s,s); /*輸入選擇項*/ c=atoi(s); /*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/ while(c9); /*選擇項不在09之間重輸*/ return c; /*返回選擇項,主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/*輸入函數(shù)*/int enter(FLY t) int i,k,n,m,w,j; char *s; clrscr(); /*清屏*/ printf(input the flights count(n40|n0) clrscr(); printf(input error!input again(0n=40):);/*輸入航線總數(shù)*/ scanf(%d,&n); printf( input the flights informationnn);/*提示信息*/ printf(flightname start-city end-city start-time end-time room price discountn); printf(-n); for(i=0;in;i+) scanf(%s,ti.planenumber);/*輸入姓名*/ gotoxy(13,6+i);/*光標(biāo)跳到地址欄*/ scanf(%s,ti.city1);/*輸入起飛城市*/ gotoxy(25,6+i); scanf(%s,ti.city2);/*輸入降落城市*/ gotoxy(36,6+i); scanf(%s,ti.time1);/*輸入起飛時間*/ gotoxy(47,6+i); scanf(%s,ti.time2);/*輸入降落時間*/ gotoxy(57,6+i); scanf(%d,&ti.room);/*輸入艙位數(shù)*/ gotoxy(64,6+i); scanf(%s,ti.price);/*輸入票價*/ gotoxy(73,6+i); scanf(%s,ti.discount);/*輸入折扣*/ printf(-n); for(i=0;in;i+)ti.sit=0; return n; /*返回記錄條數(shù)*/*顯示記錄,參數(shù)為記錄數(shù)組和記錄條數(shù)*/void list(FLY t,int n) int i; clrscr(); printf(flightname start-city end-city start-time end-time room price discountn); printf(-n); for(i=0;in;i+) printf(%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7sn,ti.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,ti.room,ti.price,ti.discount); printf( *end*n);/*按航班號查找記錄*/void search1(FLY t,int n) char s20; /*保存待查找航班名字符串*/ int i; clrscr(); /*清屏*/ printf(please input the flightname that you want to search:); scanf(%s,s); /*輸入待查找航班名*/ for(i=0;in-1) /*如果整數(shù)i值大于n-1,說明沒找到*/ printf(not foundn); else printf(flightname start-city end-city start-time end-time room price discountn); /*顯示記錄*/ printf(-n); printf(%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7sn,ti.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,ti.room,ti.price,ti.discount); /*按起降城市查找記錄*/void search2(FLY t,int n) char s120; char s220; int i; clrscr(); /*清屏*/ printf(please input the start-city:); scanf(%s,s1); /*輸入起飛城市名*/ printf(please input the end-city:); scanf(%s,s2); /*輸入降落城市名*/ for(i=0;in-1) /*如果整數(shù)i值大于n-1,說明沒找到*/ printf(not foundn); else printf(flightname start-city end-city start-time end-time room price discountn); /*找到,顯示記錄*/ printf(-n); printf(%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7sn,ti.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,ti.room,ti.price,ti.discount); /*訂票*/void book(FLY t,int n) char s20,number110,name110,id120,flightname110; int i,j=0,m,k,count1; clrscr(); /*清屏*/ printf(How many tickets do you want to book:); scanf(%d,&m); printf(number name ID book-count flightnamen); /*提示信息*/ printf(-n); for(k=0;km;k+) scanf(%s,number1); gotoxy(13,4+k);/*光標(biāo)跳到地址欄*/ scanf(%s,name1);/*輸入訂票客戶姓名*/ gotoxy(25,4+k); scanf(%s,id1);/*輸入證件號*/ gotoxy(43,4+k); scanf(%d,&count1);/*輸入訂票票數(shù)*/ gotoxy(53,4+k); scanf(%s,flightname1);/*輸入航班號*/ for(i=0;in-1) /*如果整數(shù)i值大于n-1,說明沒找到*/ printf(Sorry!No this flightn); m=m+2; k+; /*退票*/void quit(FLY t,int n) char s120,s220; /*保存待查找航班名和證件號字符串*/ int i,k,j,h,l,ch; clrscr(); /*清屏*/ printf(please input the flightname that you want to quit:); scanf(%s,s1); /*輸入待查找航標(biāo)名*/ printf(please input the your id:); scanf(%s,s2); /*輸入待查找證件號*/ printf(number name ID book-count flightnamen); /*顯示提示*/ printf(-n); for(i=0;in;i+)/*從第一條記錄開始,直到最后一條*/ for(j=0;jn-1) /*如果整數(shù)i值大于n-1,說明沒找到*/ printf(not foundn); else printf(Are you sure delete it(1/0)n); /*確認(rèn)是否要刪除*/ scanf(%d,&ch); /*輸入一個整數(shù)0或1*/ if(ch=1) /*如果確認(rèn)刪除整數(shù)為1*/ for(k=l+1;kti.sit;k+) strcpy(ti.guestk-1.number,ti.guestk.number); /*將后一條記錄的姓名拷貝到前一條*/ strcpy(,); strcpy(ti.guestk-1.id,ti.guestk.id); ti.guestk-1.count=ti.guestk.count; strcpy(ti.guestk-1.flightname,ti.guestk.flightname); ti.sit-; printf(quit success!n);/*提示退票成功*/ /*修改航班信息*/void channge(FLY t,int n) char s20; /*要刪除記錄的姓名*/ int i,j; clrscr(); /*清屏*/ printf(please input the flightname that you want to channge:); /*提示信息*/ scanf(%s,s);/*輸入航班名*/ for(i=0;in-1) /*如果整數(shù)i值大于n-1,說明沒找到*/ printf(not foundn); else printf(flightname start-city end-city start-time end-time room price discountn); /*找到,顯示原先記錄*/ printf(-n); printf(%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7sn,ti.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,ti.room,ti.price,ti.discount); printf(please input the new information:n); scanf(%s,ti.planenumber);/*輸入航班名*/ gotoxy(13,6+i);/*光標(biāo)跳到地址欄*/ scanf(%s,ti.city1);/*輸入起始城市*/ gotoxy(25,6+i); scanf(%s,ti.city2);/*輸入終點城市*/ gotoxy(35,6+i); scanf(%s,ti.time1);/*輸入起飛時間*/ gotoxy(47,6+i); scanf(%s,ti.time2);/*輸入降落時間*/ gotoxy(57,6+i); scanf(%d,ti.room);/*輸入座位號*/ gotoxy(64,6+i); scanf(%s,ti.price);/*輸入票價*/ gotoxy(71,6+i); scanf(%s,ti.discount);/*輸入折扣*/ /*保存資料*/void save(FLY t,int n) int i,j; FILE *fp; /*指向文件的指針*/ if(fp=fopen(record1.txt,wb)=NULL) /*打開文件,并判斷打開是否正常*/ printf(can not open filen);/*沒打開*/ exit(1); /*退出*/ printf(nSaving filen); /*輸出提示信息*/ fprintf(fp,%d,n); /*將記錄數(shù)寫入文件*/ fprintf(fp,rn); /*將換行符號寫入文件*/ for(i=0;in;i+) fprintf(fp,%s %s %s %s %s %d %s %s,ti.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,ti.room,ti.price,ti.discount); fprintf(fp,rn); /*將換行符號寫入文件*/ fprintf(fp,%d,ti.sit); /*將記錄數(shù)寫入文件*/ fprintf(fp,rn); /*將換行符號寫入文件*/ for(j=0;jti.sit;j+) fprintf(fp,%s %s %s %d %s,ti.guestj.number,,ti.guestj.id,ti.guestj.count,ti.guestj.flightname);/*格式寫入記錄*/ fprintf(fp,rn); /*將換行符號寫入文件*/ fclose(fp);/*關(guān)閉文件*/ printf(*save success*n); /*顯示保存成功*/*讀入函數(shù),參數(shù)為結(jié)構(gòu)體數(shù)組*/int load(FLY t) int i,n,j; FILE *fp; /*指向文件的指針*/ if(fp=fopen(record1.txt,rb)=NULL)/*打開文件*/ printf(can not open filen); /*不能打開*/ exit(1); /*退出*/ fscanf(fp,%d,&n); /*讀入記錄數(shù)*/ for(i=0;in;i+) fscanf(fp,%s %s %s %s %s %d %s %s,ti.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,&ti.room,ti.price,ti.discount); fscanf(fp,%d,&ti.sit); /*讀入記錄數(shù)*/ for(j=0;jti.sit;j+) fscanf(fp,%s %s %s %d %s,ti.guestj.number,,ti.guestj.id,&ti.guestj.count,ti.guestj.flightname); /*按格
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防水施工安全教育協(xié)議
- 紅利分享協(xié)議
- 頁巖氣合作協(xié)議
- 返修政策協(xié)議
- 廣告服務(wù)投放協(xié)議詳細(xì)
- 智慧醫(yī)療設(shè)備進(jìn)銷存管理系統(tǒng)合作協(xié)議
- 設(shè)備采購及安裝調(diào)試服務(wù)協(xié)議細(xì)節(jié)
- 農(nóng)村勞務(wù)合作及人力資源配置協(xié)議
- 離婚協(xié)議中財產(chǎn)分割及債務(wù)承擔(dān)細(xì)則樣本
- 文化創(chuàng)意產(chǎn)業(yè)股東投資入股合作協(xié)議書
- 餐飲從業(yè)人員有害生物防治知識培訓(xùn)
- 2025年浙江省交通投資集團(tuán)公司招聘筆試參考題庫含答案解析
- 臨床研究分期介紹
- 《國父孫中山》課件
- 碳碳復(fù)合材料
- 回顧性臨床研究
- 2025年民航氣象中心公開招聘應(yīng)屆畢業(yè)生6人高頻重點提升(共500題)附帶答案詳解
- 2025年上海奉賢區(qū)部分單位招考非編人員高頻重點提升(共500題)附帶答案詳解
- 武昌實驗中學(xué)2025屆高三下第一次測試數(shù)學(xué)試題含解析
- 小學(xué)航空科普類課程設(shè)計
- 【MOOC】儀器分析-北京化工大學(xué) 中國大學(xué)慕課MOOC答案
評論
0/150
提交評論