




已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
訂票系統(tǒng)1.需求分析任務(wù):通過(guò)此系統(tǒng)可以實(shí)現(xiàn)如下功能:錄入:可以錄入航班情況(數(shù)據(jù)可以存儲(chǔ)在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)查詢:可以查詢某個(gè)航線的情況(如,輸入航班號(hào),查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉(cāng));可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;訂票:(訂票情況可以存在一個(gè)數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果該航班已經(jīng)無(wú)票,可以提供相關(guān)可選擇航班;退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號(hào),訂票數(shù)量及航班情況,訂單要有編號(hào)。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件要求:根據(jù)以上功能說(shuō)明,設(shè)計(jì)航班信息,訂票信息的存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)程序完成功能;2.概要設(shè)計(jì)在此說(shuō)明每個(gè)部分的算法設(shè)計(jì)說(shuō)明(可以是描述算法的流程圖),每個(gè)程序中使用的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)說(shuō)明(如果指定存儲(chǔ)結(jié)構(gòu)請(qǐng)寫(xiě)出該存儲(chǔ)結(jié)構(gòu)的定義)。主菜單0123456789輸入航班的信息列出航班的信息按航班號(hào)查詢航班信息按城市來(lái)查詢航班訂票程序退票系統(tǒng)修改飛機(jī)航班的信息保存文件讀取文件 、下載文件退出0.輸入航班的信息航班號(hào)起飛城市降落城市出發(fā)時(shí)間降落時(shí)間剩下的座位價(jià)格折扣1.列出航班的信息繼續(xù) y退出 n2.按航班號(hào)查詢航班信息輸入所需要查詢的航班號(hào)顯示這個(gè)航班的的信息3.按城市來(lái)查詢航班輸入起飛城市輸入降落城市顯示這個(gè)航班的信息4.訂票程序輸入號(hào)碼輸入名字輸入ID需要定的票數(shù)航班號(hào)5.退票系統(tǒng)輸入航班號(hào)輸入你ID確定退票 1否定 06.修改飛機(jī)航班的信息輸入要修改的航班號(hào)重新輸入新的航班信息7.保存文件顯示保存成功詳細(xì)設(shè)計(jì)3.源程序/*頭文件(.h)*/#include /*I/O函數(shù)*/#include /*其它說(shuō)明*/#include /*字符串函數(shù)*/#include /*屏幕操作函數(shù)*/#include /*字符操作函數(shù)*/#define N 20#define Q 40 /*定義常數(shù)表示記錄數(shù)*/ /*定義數(shù)據(jù)結(jié)構(gòu)*/*乘客信息*/typedef struct char number10;/*編號(hào)*/ char name10; /*姓名*/ char id20; /*證件號(hào)*/ int count; /*訂票數(shù)*/ char flightname10;/*乘坐航班號(hào)*/GUEST; /*航班信息*/typedef structchar planenumber10;/*航班號(hào)*/ char city120; /*起飛城市*/ char city220; /*抵達(dá)城市*/ char time120; /*起飛時(shí)間*/ char time220; /*降落時(shí)間*/ int room; /*艙位數(shù)*/ char price5; /*票價(jià)*/ char discount5; /*折扣*/ GUEST guest25; int sit;FLY;/*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項(xiàng)*/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):); /*提示輸入選項(xiàng)*/ scanf(%s,s); /*輸入選擇項(xiàng)*/ c=atoi(s); /*將輸入的字符串轉(zhuǎn)化為整型數(shù)*/ while(c9); /*選擇項(xiàng)不在09之間重輸*/ return c; /*返回選擇項(xiàng),主程序根據(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);/*輸入起飛時(shí)間*/ gotoxy(47,6+i); scanf(%s,ti.time2);/*輸入降落時(shí)間*/ gotoxy(57,6+i); scanf(%d,&ti.room);/*輸入艙位數(shù)*/ gotoxy(64,6+i); scanf(%s,ti.price);/*輸入票價(jià)*/ 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);/*按航班號(hào)查找記錄*/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,說(shuō)明沒(méi)找到*/ 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,說(shuō)明沒(méi)找到*/ 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);/*輸入證件號(hào)*/ gotoxy(43,4+k); scanf(%d,&count1);/*輸入訂票票數(shù)*/ gotoxy(53,4+k); scanf(%s,flightname1);/*輸入航班號(hào)*/ for(i=0;in-1) /*如果整數(shù)i值大于n-1,說(shuō)明沒(méi)找到*/ printf(Sorry!No this flightn); m=m+2; k+; /*退票*/void quit(FLY t,int n) char s120,s220; /*保存待查找航班名和證件號(hào)字符串*/ 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); /*輸入待查找證件號(hào)*/ printf(number name ID book-count flightnamen); /*顯示提示*/ printf(-n); for(i=0;in;i+)/*從第一條記錄開(kāi)始,直到最后一條*/ for(j=0;jn-1) /*如果整數(shù)i值大于n-1,說(shuō)明沒(méi)找到*/ printf(not foundn); else printf(Are you sure delete it(1/0)n); /*確認(rèn)是否要?jiǎng)h除*/ scanf(%d,&ch); /*輸入一個(gè)整數(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; /*要?jiǎng)h除記錄的姓名*/ 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,說(shuō)明沒(méi)找到*/ 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);/*輸入終點(diǎn)城市*/ gotoxy(35,6+i); scanf(%s,ti.time1);/*輸入起飛時(shí)間*/ gotoxy(47,6+i); scanf(%s,ti.time2);/*輸入降落時(shí)間*/ gotoxy(57,6+i); scanf(%d,ti.room);/*輸入座位號(hào)*/ gotoxy(64,6+i); scanf(%s,ti.price);/*輸入票價(jià)*/ 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) /*打開(kāi)文件,并判斷打開(kāi)是否正常*/ printf(can not open filen);/*沒(méi)打開(kāi)*/ exit(1); /*退出*/ printf(nSaving filen); /*輸出提示信息*/ fprintf(fp,%d,n); /*將記錄數(shù)寫(xiě)入文件*/ fprintf(fp,rn); /*將換行符號(hào)寫(xiě)入文件*/ 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); /*將換行符號(hào)寫(xiě)入文件*/ fprintf(fp,%d,ti.sit); /*將記錄數(shù)寫(xiě)入文件*/ fprintf(fp,rn); /*將換行符號(hào)寫(xiě)入文件*/ 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);/*格式寫(xiě)入記錄*/ fprintf(fp,rn); /*將換行符號(hào)寫(xiě)入文件*/ 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)/*打開(kāi)文件*/ printf(can not open filen); /*不能打開(kāi)*/ 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025起重機(jī)械租賃合同
- 2025年院線經(jīng)營(yíng)項(xiàng)目建議書(shū)
- 2025網(wǎng)站信息會(huì)員信息服務(wù)合同書(shū)樣本
- 2025企業(yè)辦公場(chǎng)地租賃合同協(xié)議書(shū)
- 2025合同簽訂關(guān)鍵要點(diǎn)全面解析
- 2025年豆腐及豆制品工業(yè)化生產(chǎn)設(shè)備項(xiàng)目建議書(shū)
- 2025年紅外線汽車尾氣分析儀項(xiàng)目合作計(jì)劃書(shū)
- 2025年鉆采裝備合作協(xié)議書(shū)
- 2025年應(yīng)急指示燈具:消防應(yīng)急燈項(xiàng)目合作計(jì)劃書(shū)
- 供水安全施工方案
- 三角堰流量計(jì)算公式
- 用電安全及防雷防靜電知識(shí)考核試卷
- 《成人心肺復(fù)蘇術(shù)》課件
- 低空空域資源的協(xié)調(diào)與管理策略
- 服務(wù)機(jī)器人的智能導(dǎo)航與定位考核試卷
- 3.2.1.1函數(shù)的單調(diào)性課件-高一上學(xué)期數(shù)學(xué)人教A版(2019)必修第一冊(cè)
- 噬血細(xì)胞綜合征并發(fā)患者的個(gè)案護(hù)理課件
- 2024年長(zhǎng)沙市事業(yè)單位招聘計(jì)算機(jī)崗位專業(yè)知識(shí)試題
- 點(diǎn)面結(jié)合寫(xiě)場(chǎng)景公開(kāi)課-(2)省公開(kāi)課獲獎(jiǎng)?wù)n件說(shuō)課比賽一等獎(jiǎng)?wù)n件
- 2023年高考真題-化學(xué)(河北卷) 含答案
- 運(yùn)用PDCA縮短ST段抬高型急性心肌梗死病人在急診停留時(shí)間
評(píng)論
0/150
提交評(píng)論