航空订票系统课程设计_第1页
航空订票系统课程设计_第2页
航空订票系统课程设计_第3页
航空订票系统课程设计_第4页
航空订票系统课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计题目航空订票系统任务:航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。功能要求:(1)录入:可以录入航班情况(2)查询:可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票:可退票,退票后修改相关数据文件;(5)客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;(6)修改航班信息:当航班信息改变可以修改航班数据文件。需求分析本演示程序中,由用户录入或修改航班情况,进行查询,预定及办理退票等业务,用户在菜单中进行各个不同功能的选择,有“输入航班信息”、“列出航班信息”、“按航班号查询航班信息”、“按出发到达城市查询航班信息”、“订票”、“退票”、“修改航班信息”、“退出程序”八个功能。概要设计typedefstruct{doublenumber;//订单编号charname[20];〃姓名charid[20];〃身份证号intcount;//数量charp[20];〃航班号}GUEST;

typedefstruct{charnum[20];〃航班号chardepart[30];〃出发城市chararrive[30];〃到达城市charstart[20];〃起飞时间charend[20];〃到达时间intprice;//价格intdiscount;//折扣率(%)inttotal;//总票数intrest;//剩余票数intt;〃订单数GUESTguest[20];〃乘客}PLANE;PLANEplane[20];intn;//n为航班数voidinputplane()〃输入航班voidlist()//显示voidsearchl()〃按航班号查询voidsearch2()〃按起飞抵达城市查询voidbook()〃订票voidquit()〃退票voidchange()//修改程序调用关系如下:退出修改航班信息输入航班信息列出航班信息退出修改航班信息输入航班信息列出航班信息按航班号1按出发到达查询航班城市查询航订票信息班信息详细设计#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct{doublenumber;//订单编号charname[20];//姓名charid[20];//身份证号intcount;//数量charp[20];//航班号}GUEST;typedefstruct{charnum[20];//航班号chardepart[30];//出发城市chararrive[30];//到达城市charstart[20];//起飞时间charend[20];//到达时间intprice;//价格intdiscount;//折扣率(%)inttotal;//总票数intrest;//剩余票数intt;//订单数GUESTguest[20];//乘客}PLANE;PLANEplane[20];intn;//n为航班数voidinputplane(){//输入航班inti;printf("输入总航班数:");scanf("%d",&n);printf("输入航班信息:\n");printf(“航班号出发城市到达城市起飞时间到达时间价格折扣率总票数剩余票数\n");for(i=0;i<n;i++)scanf("%s%s%s%s%s%d%d%d%d",plane[i].num,plane[i].depart,plane[i].arrive,plane[i].start,plane[i].end,&plane[i].price,&plane[i].discount,&plane[i].total,&plane[i].rest);}voidlist(){//显示inti;printf(“航班号出发城市到达城市起飞时间到达时间价格折扣率总票数剩余票数\n");for(i=0;i<n;i++)printf("%s %s %s %s \t%s\t%d %d\t%d\t%d\n",plane[i].num,plane[i].depart,plane[i].arrive,plane[i].start,plane[i].end,plane[i].price,plane[i].discount,plane[i].total,plane[i].rest);}voidsearchl(){//按航班号查询inti;charnum[20];printf("输入你查询的航班号:");scanf("%s",num);for(i=0;i<n;i++){if(strcmp(num,plane[i].num)==0){printf("航班号出发城市到达城市起飞时间到达时间价格折扣率总票数剩余票数\n");printf("%s%s %s %s\t%s\t%d %d\t%d\t%d\n",plane[i].num,plane[i].depart,plane[i].arrive,plane[i].start,plane[i].end,plane[i].price,plane[i].discount,plane[i].total,plane[i].rest);break;}}if(i==n)printf("没有此航班!\n");}voidsearch2(){//按起飞抵达城市查询inti;chara[50],b[50];printf("输入起飞城市和到达城市:");scanf("%s%s",a,b);printf("航班号出发城市到达城市起飞时间到达时间价格折扣率总票数剩余票数\n");for(i=0;i<n;i++){if((strcmp(a,plane[i].depart)==0)&&(strcmp(b,plane[i].arrive)==0))printf("%s %s %s %s \t%s\t%d %d\t%d\t%d\n",plane[i].num,plane[i].depart,plane[i].arrive,plane[i].start,plane[i].end,plane[i].price,plane[i].discount,plane[i].total,plane[i].rest);}printf("\n");for(i=0;i<n;i++){if((strcmp(a,plane[i].depart)==0)&&(strcmp(b,plane[i].arrive)==0))break;}if(i==n)printf("没有此航班!\n");}voidbook(){//订票charname[20],p[20],id[20];doublenumber;inti,j,k,y,count;for(i=0;i<n;i++)plane[i].t=0;do{printf("输入订单信息:\n");printf("订单编号姓名身份证号订票数航班号\n");scanf("%d%s%s%d%s",&number,name,id,&count,p);for(i=0;i<n;i++){if(strcmp(p,plane[i].num)==0)break;}if(i==n)printf("没有此航班\n");else{if(plane[i].rest>=count){j=plane[i].t;plane[i].guest[j].number=number;strcpy(plane[i].guest[j].name,name);strcpy(plane[i].guest[j].id,id);plane[i].guest[j].count=count;strcpy(plane[i].guest[j].p,p);plane[i].rest-=count;plane[i].t++;}else{printf("很抱歉,该航班剩余票数为%d张\n",plane[i].rest);for(k=0;k<n;k++){if((strcmp(plane[i].depart,plane[k].depart)==0)&&(strcmp(plane[i].depart,plane[k].depart)==0))break;}if(k==n)printf("没有其他从%s到%s 的航班\n",plane[i].depart,plane[i].arrive);else{printf("\n\n",plane[k].depart,plane[k].arrive从 %s 到plane[k].num);%s还有%s航班printf("航班号扣率总票数剩余票数\n");出发城市到达城市起飞时间到达时间价格折printf("%s%s %s %s\t%s\t%d %d\t%d\t%d\n",plane[k].num,plane[k].depart,plane[k].arrive,plane[k].start,plane[k].end,plane[k].price,plane[k].discount,plane[k].total,plane[k].rest);}}}printf("是否继续订票,“是”输入1,“否”输入0\n");scanf("%d",&y);}while(y);}voidquit(){//退票doublenumber;charid[20];inti,j,temp,k,y;temp=0;printf("请输入您的订单编号:\n");scanf("%d",&number);printf("请输入您的身份证:\n");scanf("%s",id);for(i=0;i<n;i++){for(j=0;j<plane[i].t;j++){if(number==plane[i].guest[j].number&&(strcmp(id,plane[i].guest[j].id)==0)){temp=1;}if(temp==1)break;}if(i==n)printf("没有此订单!\n");else{printf("订单编号姓名身份证号订票数航班号\n");printf(" %d",plane[i].guest[j].number);printf(" %s",plane[i].guest[j].name);printf("%s",plane[i].guest[j].id);printf(" %d",plane[i].guest[j].count);printf(" %s\n",plane[i].guest[j].p);printf("您是否确认删除(1/O)\n");scanf("%d",&y);if(y==1){plane[i].rest+=plane[i].guest[j].count;for(k=j+1;k<plane[i].t;k++){plane[i].guest[k-1].number=plane[i].guest[k].number;strcpy(plane[i].guest[k-1].name,plane[i].guest[k].name);strcpy(plane[i].guest[k-1].id,plane[i].guest[k].id);plane[i].guest[k-1].count=plane[i].guest[k].count;strcpy(plane[i].guest[k-1].p,plane[i].guest[k].p);}plane[i].t--;printf("退票成功!!\n");}}}voidchange。//修改{chara[20];inti;printf("请输入你要修改的航班号:");scanf("%s",a);for(i=0;i<n;i++){if(strcmp(a,plane[i].num)==0)}if(i==n)printf("没有此航班!\n");else{printf("原信息:\n");printf("航班号出发城市到达城市起飞时间到达时间价格折扣率总票数剩余票数\n");printf("%s %s %s %s \t%s\t%d %d\t%d\t%d\n",plane[i].num,plane[i].depart,plane[i].arrive,plane[i].start,plane[i].end,plane[i].price,plane[i].discount,plane[i].total,plane[i].rest);printf("请输入修改后的信息:\n");printf("航班号出发城市到达城市起飞时间到达时间价格折扣率总票数剩余票数\n");scanf("%s%s%s%s%s%d%d%d%d",plane[i].num,plane[i].depart,plane[i].arrive,plane[i].start,plane[i].end,&plane[i].price,&plane[i].discount,&plane[i].total,&plane[i].rest);}}voidmain(){inta,b;do{system("cls");for(a=0;a<50;a++)printf("*");printf("\n");printf("\t\t1:输入航班信息\n");printf("\t\t2:列出航班信息\n");printf("\t\t3:按航班号查询航班信息\n");printf("\t\t4:按出发到达城市查询航班信息\n")printf("\t\t5:订票\n");printf("\t\t6:退票\n");printf("\t\t7:修改航班信息\n");printf("\t\t8:退出程序\n");for(a=0;a<50;a++)printf("*");printf("\n");printf("请输入功能选项1-8):\n");scanf("%d",&b);switch(b){case1:inputplane();system("pause");break;case2:list();system("pause");break;case3:search1();system("pause");break;case4:search2();system("pause");break;case5:book();system("pause");break;case6:quit();system("pause");break;case7:change();system("pause");break;case8:break;}}while(1);}调试分析在做“退票"函数(即voidquit())时,系统总是显示没有此订票,最后发现没有跳出其中的一个这个双层for循环,现在通过调试,解决了这个问题。调试后程序会自动判断输入的数字的有效性。

用户手册(1) 演示程序的运行环境为WindowsVista系统,MicrosoftVisualStudio6.0中的MicrosoftVisualC++6.0中运行。执行文件为:航空订票系统.exe(2) 进入演示程序后即显示DOS形式的界面:1:输入航班信恵2:列出航班信息3:按航班号查询航班信息4=拽出发到立城市查询航班信息5:订票6=退票7=修改航祖信息8:退小程序请输入功能选顶1-呂):3) 输入航班信息。4) 由用户在菜单页面选择需要执行的功能,系统会显示相关信息测试结果1)输入航班信息1=21=2:3:4:5:6:7:

a:歹!岀航班信息按航班号查询砌壬信息按岀发到达城市查询航班信息疔票退票修菠航班信息退岀程序1输入总航班数:5输入航犯言息:航班号出发城市到达城市起飞时间到达时间价格折扣玄总票数赛怖票数ML5133上海虹祈北京CA1550上海虹萍j匕京FZ朗7上海虹萍广州HC1341上海浦东青臨31'8964上海蒲茶成都请按任意键继续•••7:0Cg:2)10E3M2C2S:5E11:158E4752C010:3012:5019:F0刀:加15:4519:0560241RC2220112012)列出航班信息245ij73输人航班信息列岀航班信息按航班号查询航班信息按岀发到达城市查询航班信息订票退票修鼓航班信息退出程序剩余票数2IFII17:0C8:5510:3019;5015:45价格1D63幻460S413022折扣率94485657到达时间9:2011:1512:5021;2019:05请输扎功能选顶1-8):2航班号岀发城市到运城市起飞时间MU5103上詹虹桥加止冗上陶吐桥FMj307上海虹侨HO1241丄海浦东3U3964上海浦东请按任意键继续•••3456784)按出发到达城市查询航班信息3)按航班号查询航班信息请输人功自继项1-动:3输人你查询的肮班吕:123没有此舫班!请按任意键继多.•.输入航班信,息列岀航班信.息按航班号查询航班信息按出岌到达城韦查询航班信息订票退票修叢航班信息退岀程序1:输入航班信息2:列岀航班信息3:按航班号查询航班信息4:按出友到达城+>查询航班信息5:订荼G:退票7:修改航班信息R:退出程序请输八功能选项1-刃:4折扣率总票数34 2075 20折扣率总票数34 2075 20剩余票数2航臾号岀发戒方到込戒市起飞刊间到込刊间忻榕MU51C3 上海肛柝 北京 7;0) 9;20 1003Cx\15G0 上;境虹桥 北京 S:55 11:1E S64

订票1=输人航班信島2:列出航班信息3:按航班号查询航班信息生:按岀发到达或市登询航班信息5:订票5:退崇7:修谀航跚言息乩退岀程序请输入功能选项1-*):5输入订单信息:订单編号妊容身吩辽号订票数航班号张三丰31D0001213U8964是否堆续订票「遑"输人1:话”输入11输入订单信息:订单編号妊名身吩订号订票数航班号张翠山310000251Hrt9307是苦瞇续订界是马翕人h"杏"输人〕1输入订单信息:订单漏号姐启身吩辽号订票数航班号张兀忌31D0C03B1NU51O3是否瞇续订黑“是''输人1「苗"输入)0谙按汪意键纯结一.一显示退票后航班信息:1:1:2:3:4:5:6:丫:3:列岀航班信息修改航班信息退出程存按航班号查询航班信息按岀发到达城石查询航班信庶修改航班信息退出程存请输入功能选项1-8):2航班号岀发城市到迄城市起飞时问MU5103上海虹桥C?A1590上海虹桥FM?307上海虹袜HA1241上海浦东用阳泅上涯浦东请按任意键继续...7:0C8:5510:501A:cn1S:4S到达时间0:2011:1512:50

刀切|19:05价栓10638646^8412

妙折扣率754SRP.S7总票数2C2C2(剧余票数1C411C6)退票1:输入肮班信見2=列岀航班信息3=按航臾号查询航班佢息4=按岀发到达城市查询航班信息5:订票6:追票7:修敌航班信息8:退卅呈序请输入功能选项1吃):请输入息的订单編号:2请输入您的身优证:31000025订单编号牡名 身悄证号订票数航班号2张翠山31003025 1 FM0337您是否确认删除(1/0)1退票成功!!请按任意键継缘…1:1:2:3:4:x□:7:3=输人航班信息別岀航班信息按航班号查询航班信息按岀友到达戒帀負询航班信息订崇退崇傷五航取信息退岀程序请输入功能选顶1-叮■航班耳出先城市MU5103上瘵虹桥CA1590上海虹桥FM9307上海虹桥HO1241上海浦东:上海浦东到达城市

北官

北京

厂亦|起飞时间7:0C8:551D:EO19:5015:45至!达时间9:2011:1512:5021:2019:05价格1D63854638418922折扣率947548565/豆票数20202020次剧余票数1(|511U请按任意键继续…7)修改:1=输人航班信息2:列岀航班信息3:英顷班号查询航班悟息4:孩岀友到达城市直甸飢土出台息5:-T票G:退票7=修衣航班信息8=退出程底请输入功能选顶1-8L7请输入你要修改的航班号%圧刖4蓟言息.航应#二友城市到达城有起总时同到达时页价格折扌」率忌票数剩余黑翦^U^yb4上海浦余 戒都15:45ly:Jb日眾57HUU请输入修改后的信息:航班弓吕发城市到咗城丙起飞吋■■可至挞叶叵价恪折打率总票数剩宗票鹦3US964上海浦东成都15:4519:0592257203请按任意键继绩.…修改后显示航班信息1:2:3;4:5:1:2:3;4:5:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论