航空订票系统课程设计.docx

上传人:聆听****声音 文档编号:728924 上传时间:2023-04-29 格式:DOCX 页数:16 大小:214.78KB
下载 相关 举报
航空订票系统课程设计.docx_第1页
第1页 / 共16页
航空订票系统课程设计.docx_第2页
第2页 / 共16页
航空订票系统课程设计.docx_第3页
第3页 / 共16页
航空订票系统课程设计.docx_第4页
第4页 / 共16页
航空订票系统课程设计.docx_第5页
第5页 / 共16页
航空订票系统课程设计.docx_第6页
第6页 / 共16页
航空订票系统课程设计.docx_第7页
第7页 / 共16页
航空订票系统课程设计.docx_第8页
第8页 / 共16页
航空订票系统课程设计.docx_第9页
第9页 / 共16页
航空订票系统课程设计.docx_第10页
第10页 / 共16页
航空订票系统课程设计.docx_第11页
第11页 / 共16页
航空订票系统课程设计.docx_第12页
第12页 / 共16页
航空订票系统课程设计.docx_第13页
第13页 / 共16页
航空订票系统课程设计.docx_第14页
第14页 / 共16页
航空订票系统课程设计.docx_第15页
第15页 / 共16页
航空订票系统课程设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

航空订票系统课程设计.docx

《航空订票系统课程设计.docx》由会员分享,可在线阅读,更多相关《航空订票系统课程设计.docx(16页珍藏版)》请在冰点文库上搜索。

航空订票系统课程设计.docx

设计题目

航空订票系统

任务:

航空客运定票的业务活动包括:

查询航线、客票预定和办理退票等。

试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。

功能要求:

(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()//显示

voidsearch1()//按航班号查询

voidsearch2()//按起飞抵达城市查询

voidbook()//订票

voidquit()//退票

voidchange()//修改

程序调用关系如下:

开始

输入操作编号(1-10)?

12345678

修改航班信息

退出

订票

退票

按出发到达城市查询航班信息

按航班号查询航班信息

列出航班信息

输入航班信息

详细设计

#include

#include

#include

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

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

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);

}

voidsearch1(){//按航班号查询

inti;

charnum[20];

printf("输入你查询的航班号:

");

scanf("%s",num);

for(i=0;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

{

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

{

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

plane[i].t=0;

do

{

printf("输入订单信息:

\n");

printf("订单编号姓名身份证号订票数航班号\n");

scanf("%d%s%s%d%s",&number,name,id,&count,p);

for(i=0;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

{

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("从%s到%s还有%s航班\n\n",plane[k].depart,plane[k].arrive,plane[k].num);

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

{

for(j=0;j

{

if(number==plane[i].guest[j].number&&(strcmp(id,plane[i].guest[j].id)==0))

{

temp=1;

break;

}

}

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/0)\n");

scanf("%d",&y);

if(y==1)

{

plane[i].rest+=plane[i].guest[j].count;

for(k=j+1;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

{

if(strcmp(a,plane[i].num)==0)

break;

}

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);

}

调试分析

a.在做“退票”函数(即voidquit())时,系统总是显示没有此订票,最后发现没有跳出其中的一个这个双层for循环,现在通过调试,解决了这个问题。

b.调试后程序会自动判断输入的数字的有效性。

用户手册

(1)演示程序的运行环境为WindowsVista系统,MicrosoftVisualStudio6.0中的MicrosoftVisualC++6.0中运行。

执行文件为:

航空订票系统.exe

(2)进入演示程序后即显示DOS形式的界面:

(3)输入航班信息。

(4)由用户在菜单页面选择需要执行的功能,系统会显示相关信息

测试结果

(1)输入航班信息

(2)列出航班信息

(3)按航班号查询航班信息

(4)按出发到达城市查询航班信息

(5)订票

显示退票后航班信息:

(6)退票

显示退票后航班信息:

(7)修改:

修改后显示航班信息

对于特殊情况的处理

(1)输入不存在的航班号进行查询

(2)输入不存在的出发到达城市进行查询

(3)剩余票数不足

(4)修改时输入不存在的航班号

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2