數據結構課程設計飛機訂票系統(tǒng)_第1頁
數據結構課程設計飛機訂票系統(tǒng)_第2頁
數據結構課程設計飛機訂票系統(tǒng)_第3頁
數據結構課程設計飛機訂票系統(tǒng)_第4頁
數據結構課程設計飛機訂票系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

訂票系統(tǒng)1.需求分析任務:通過此系統(tǒng)可以實現如下功能:錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;訂票:(訂票情況可以存在一個數據文件中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班;退票: 可退票,退票后修改相關數據文件;客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。修改航班信息:當航班信息改變可以修改航班數據文件要求:根據以上功能說明,設計航班信息,訂票信息的存儲結構,設計程序完成功能;2.概要設計在此說明每個部分的算法設計說明(可以是描述算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義)。主菜單0123456789輸入航班的信息列出航班的信息按航班號查詢航班信息按城市來查詢航班訂票程序退票系統(tǒng)修改飛機航班的信息保存文件讀取文件 、下載文件退出0.輸入航班的信息航班號起飛城市降落城市出發(fā)時間降落時間剩下的座位價格折扣1.列出航班的信息繼續(xù) y退出 n2.按航班號查詢航班信息輸入所需要查詢的航班號顯示這個航班的的信息3.按城市來查詢航班輸入起飛城市輸入降落城市顯示這個航班的信息4.訂票程序輸入號碼輸入名字輸入ID需要定的票數航班號5.退票系統(tǒng)輸入航班號輸入你ID確定退票 1否定 06.修改飛機航班的信息輸入要修改的航班號重新輸入新的航班信息7.保存文件顯示保存成功詳細設計3.源程序/*頭文件(.h)*/#include /*I/O函數*/#include /*其它說明*/#include /*字符串函數*/#include /*屏幕操作函數*/#include /*字符操作函數*/#define N 20#define Q 40 /*定義常數表示記錄數*/ /*定義數據結構*/*乘客信息*/typedef struct char number10;/*編號*/ char name10; /*姓名*/ char id20; /*證件號*/ int count; /*訂票數*/ char flightname10;/*乘坐航班號*/GUEST; /*航班信息*/typedef structchar planenumber10;/*航班號*/ char city120; /*起飛城市*/ char city220; /*抵達城市*/ char time120; /*起飛時間*/ char time220; /*降落時間*/ int room; /*艙位數*/ char price5; /*票價*/ char discount5; /*折扣*/ GUEST guest25; int sit;FLY;/*菜單函數,函數返回值為整數,代表所選的菜單項*/menu_select() char s80; int c; gotoxy(1,25);/*將光標定為在第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); /*將輸入的字符串轉化為整型數*/ while(c9); /*選擇項不在09之間重輸*/ return c; /*返回選擇項,主程序根據該數調用相應的函數*/*輸入函數*/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):);/*輸入航線總數*/ 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);/*光標跳到地址欄*/ 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);/*輸入艙位數*/ 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; /*返回記錄條數*/*顯示記錄,參數為記錄數組和記錄條數*/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) /*如果整數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) /*如果整數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);/*光標跳到地址欄*/ scanf(%s,name1);/*輸入訂票客戶姓名*/ gotoxy(25,4+k); scanf(%s,id1);/*輸入證件號*/ gotoxy(43,4+k); scanf(%d,&count1);/*輸入訂票票數*/ gotoxy(53,4+k); scanf(%s,flightname1);/*輸入航班號*/ for(i=0;in-1) /*如果整數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); /*輸入待查找航標名*/ 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) /*如果整數i值大于n-1,說明沒找到*/ printf(not foundn); else printf(Are you sure delete it(1/0)n); /*確認是否要刪除*/ scanf(%d,&ch); /*輸入一個整數0或1*/ if(ch=1) /*如果確認刪除整數為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) /*如果整數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);/*光標跳到地址欄*/ 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); /*將記錄數寫入文件*/ 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); /*將記錄數寫入文件*/ 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);/*關閉文件*/ printf(*save success*n); /*顯示保存成功*/*讀入函數,參數為結構體數組*/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); /*讀入記錄數*/ 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); /*讀入記錄數*/ 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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論