




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、訂票系統(tǒng)1 .需求分析任務:通過此系統(tǒng)可以實現如下功能:錄入:可以錄入航班情況(數據可以存儲在一個數據文件中,數據結構、具體數據自定)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市,查詢飛機航班情況;訂票: (訂票情況可以存在一個數據文件中,結構自己設定)可以訂票,如果該航班已經無票,可以提供相關可選擇航班;退票: 可退票,退票后修改相關數據文件;客戶資料有姓名,證件號,訂票數量及航班情況,訂單要有編號。修改航班信息:當航班信息改變可以修改航班數據文件要求:根據以上功能說明,設計航班信息,訂票信息的存儲結構
2、,設計程序完成功能;2 .概要設計在此說明每個部分的算法設計說明(可以是描述算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義)。主菜單0123456789輸列出按航按訂票退票修改保存讀取退出入航班班號城程序系統(tǒng)飛機文件文航的信查詢市航班件、班息航班來的信下載的信息查息文件信詢息航班0.輸入航班的信息航班號起飛城市降落城市出發(fā)時間降落時間剩下的座位價格折扣1.列出航班的信息繼續(xù) y退出n2.按航班號查詢航班信息輸入所需要查詢的航班號顯示這個航班的的信息3.按城市來查詢航班輸入起飛城市輸入降落城市顯示這個航班的信息4.訂票程序輸入號碼輸入名字輸入ID需要定的
3、票數航班號5.退票系統(tǒng)輸入航班號輸入你ID確定退票1否定 06.修改飛機航班的信息輸入要修改的航班號重新輸入新的航班信息7.保存文件顯示保存成功詳細設計3.源程序/*頭文件(.h)*#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#include <ctype.h>/*I/O 函數*/*其它說明*/*字符串函數*/*屏幕操作函數*/*字符操作函數*/#define N 20#define Q 40 /*定義常數表示記錄數*/*定義數據結
4、構*/*乘客信息*/typedef structchar 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;/*
5、折扣*/GUEST guest25;int sit;FLY;*/*菜單函數,函數返回值為整數,代表所選的菜單項menu_select()char s80;int c;gotoxy(1,25);/*將光標定為在第25行,第1列*/printf("press any key enter menun");/*fel示壓任意鍵繼續(xù) */getch(); /*讀入任意字符*/clrscr(); /*清屏 */gotoxy(1,1);printf("Welcome tonn");printf("Tickets BookingSystemnn");
6、printf("*MENU*nn");printf("printf("printf("printf("printf("printf("printf("informationn");printf("0. Enter flight recordn");1. List the flight informationn");2. Search flightnumbern");3. Search cityn");4. Book the ticketn&quo
7、t;);5. Quit the ticketn");6. Channge the flight7. Save the filen");printf("8. Load the filen");printf("9. exitn");printf("*n");doprintf("n Enter you choice(09):"); /*提示輸入選項*/scanf("%s",s); /*輸入選擇項*/c=atoi(s); /*將輸入的字符串轉化為整型數*/while(c<0|c
8、>9); /* 選擇項不在09之間重輸*/return c; /*返回選擇項,主程序根據該數調用相應的函數*/*輸入函數 */int enter(FLY t)int i,k,n,m,w,j;char *s;clrscr(); /*清屏 */printf("input the flight's count(n<=40):");/* 輸入航線總數*/scanf("%d",&n);while(n>40|n<0)clrscr();printf("input error!input again(0<n<
9、=40):");/* 輸入航線總數*/scanf("%d",&n);printf("input the flight's informationnn");/* 提示信息 */printf("flightname start-city end-city start-time end-time room price discountn");n");for(i=0;i<n;i+)scanf("%s",ti.planenumber);/* 輸入姓名 */gotoxy(13,6+i)
10、;/* 光標跳到地址欄*/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)
11、;scanf("%s",ti.price);/* 輸入票價*/gotoxy(73,6+i);scanf("%s",ti.discount);/* 輸入折扣*/printf("n");for(i=0;i<n;i+)ti.sit=0;return n; /*返回記錄條數*/*顯示記錄,參數為記錄數組和記錄條數*/void list(FLY t,int n)int i;clrscr();printf("flightname start-city end-city start-time end-timeroomprice di
12、scountn");n");for(i=0;i<n;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(&
13、quot;please input the flightname that you want to search:");scanf("%s",s); /*輸入待查找航班名*/for(i=0;i<n;i+)/* 從第一條記錄開始,直到最后一條*/if(strcmp(s,ti.planenumber)=0) /* 記錄中的航班名和待比較*/break;/*相等,則返回該記錄的下標號,程序提前結結束*/if(i>n-1) /*如果整數i值大于n-1,說明沒找到*/printf("not foundn");elseprintf("
14、flightname start-city end-city start-time end-time room price discountn"); /* 顯示記錄*/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
15、;clrscr(); /*清屏 */printf("please input the start-city:");scanf("%s",s1); /*輸入起飛城市名*/printf("please input the end-city:");scanf("%s",s2); /*輸入降落城市名*/for(i=0;i<n;i+)/* 從第一條記錄開始,直到最后一條*/if(strcmp(s1,ti.city1)=0)&&(strcmp(s2,ti.city2)=0)/* 記錄中的城市和待比較的是否
16、相等*/break; /*相等,則返回該記錄的下標號,程序提前結結束*/if(i>n-1)/*如果整數i值大于n-1,說明沒找到*/printf("not foundn");elseprintf("flightname start-city end-city start-time end-timeroomprice discountn"); /* 找到,顯示記錄*/n");printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7sn",ti.planenumber,ti.city1,ti
17、.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 nameIDbook-countflightnam
18、en"); /* 提示信息*/printf("n");for(k=0;k<m;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&qu
19、ot;,flightname1);/* 輸入航班號 */for(i=0;i<n;i+)/* 從第一條記錄開始,直到最后一條*/if(strcmp(flightname1,ti.planenumber)=0) /* 記錄中的航班名和待比較的是否相等*/j=ti.sit;strcpy(ti.guestj.number,number1);strcpy(,name1);strcpy(ti.guestj.id,id1);ti.guestj.count=count1;strcpy(ti.guestj.flightname,flightname1);ti.room=ti.r
20、oom-count1;ti.sit+;break; /*相等,則返回該記錄的下標號,程序提前結結束*/if(i>n-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:"
21、);scanf("%s",s1); /*輸入待查找航標名*/printf("please input the your id:");scanf("%s",s2); /*輸入待查找證件號*/printf("numbernameIDbook-countprintf("n");for(i=0;i<n;i+)/* 從第一條記錄開始,直到最后一條*/for(j=0;j<ti.sit;j+)if(strcmp(s1,ti.guestj.flightname)=0)&&(strcmp(s2,
22、ti.guestj.id)=0)printf("%-11s%-16s%-16s%-14d%-10sn",ti.guestj.number,,ti.guestj.id,ti.guestj.count,ti.guestj.flightname);ti.room=ti.room+ti.guestj.count;l=j;h=i;break;i=h;if(i>n-1)/*如果整數i值大于n-1,說明沒找到*/printf("not foundn");elseprintf("Are you sure delete it(1
23、/0)n"); /*確認是否要刪除*/scanf("%d",&ch); /* 輸入一個整數0 或 1*/if(ch=1) /*如果確認刪除整數為1*/for(k=l+1;k<ti.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
24、(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
25、=0;i<n;i+)/* 從第一條記錄開始,直到最后一條*/if(strcmp(s,ti.planenumber)=0) /* 記錄中的航班名和待比較的是否相等*/break; /*相等,則返回該記錄的下標號,程序提前結結束*/if(i>n-1) /*如果整數i值大于n-1,說明沒找到*/printf("not foundn");elseprintf("flightname start-city end-city start-time end-timeroom price discountn"); /* 找到,顯示原先記錄*/n")
26、;printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7sn",ti.planenumb er,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
27、);/* 輸入起始城市*/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
28、(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"); /* 輸出提示信息*/fpr
29、intf(fp,"%d",n); /*將記錄數寫入文件*/fprintf(fp,"rn"); /*將換行符號寫入文件*/for(i=0;i<n;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);
30、 /* 將記錄數寫入文件*/fprintf(fp,"rn");/*將換行符號寫入文件*/for(j=0;j<ti.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&
31、quot;); /* 顯示保存成功*/*讀入函數,參數為結構體數組*/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;i<n;i+)fscanf(fp,"%s %s %s
32、%s %s %d %s %s",t i.planenumber,ti.city1,ti.city2,ti.time1,ti.time2,&ti.room,ti.pric e,ti.discount);fscanf(fp,"%d",&ti.sit); /* 讀入記錄數*/for(j=0;j<ti.sit;j+)fscanf(fp,"%s %s %s %d %s",ti.guestj.number,ti.gues ,ti.guestj.id,&ti.guestj.count,ti.guestj.fligh
33、tname); /*按 格式讀入記錄*/fclose(fp); /* 關閉文件*/printf("You have success read data from file!nnnn"); /* 顯示保存成功 */ return n; /*返回記錄數*/*主函數 */ main() int i;FLY flightQ;int length; /*保存記錄長度*/clrscr(); /*清屏 */textcolor(YELLOW); /* 字體顏色*/textbackground(BLUE);/* 背景顏色*/for(;)/* 無限循環(huán)*/switch(menu_select(
34、) /*調用主菜單函數,返回值整數作開關語句的條件*/case 0:length=enter(flight);break;/*輸入記錄 */case 1:list(flight,length);break; /*顯示全部記錄*/case 2:search1(flight,length);break; /*查找記錄*/case 3:search2(flight,length);break; /*查找記錄*/case 4:book(flight,length);break;/*訂票*/case 5:quit(flight,length);break;/*退票*/case 6:channge(flig
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國閥門鑄件市場運行狀況及前景趨勢分析報告
- 2025-2030年中國鐵路設備行業(yè)發(fā)展狀況及營銷戰(zhàn)略研究報告
- 2025-2030年中國調節(jié)閥產業(yè)運行態(tài)勢及發(fā)展前景分析報告
- 2025-2030年中國蘋果汁市場發(fā)展規(guī)模及前景預測分析報告
- 中如何制作電子印章
- 2025-2030年中國福建燃氣市場運行狀況與前景趨勢分析報告
- 新疆工業(yè)職業(yè)技術學院《酒店服務技能實訓》2023-2024學年第二學期期末試卷
- 齊齊哈爾工程學院《空竹》2023-2024學年第二學期期末試卷
- 廣東技術師范大學《文字與版式設計》2023-2024學年第二學期期末試卷
- 吉林師范大學《城市公用事業(yè)管理理論與實踐》2023-2024學年第二學期期末試卷
- 第1.1課-七律二首-送瘟神-【中職專用】高二語文同步備課課件(高教版2023職業(yè)模塊)
- (滬教牛津版)深圳市小學1-6年級英語單詞默寫表(英文+中文+默寫)
- 初中語文跨學科資源融合教學研究
- 慢病管理課件-高血壓、糖尿病等慢性病的護理和管理
- 英語教學方法與策略
- 春秋季六年級奧數培訓教材全0
- 【實用資料】食物中毒現場衛(wèi)生學采樣PPT
- 抗原 抗原(免疫學檢驗課件)
- 《撰寫演講稿》-省賽一等獎-完整版課件
- 運輸車輛衛(wèi)生安全檢查記錄表
- 民航概論PPT全套教學課件
評論
0/150
提交評論