资源简介
航班订票系统:航空客运订票的业务活动包括查询航线、客票预定和办理退票等,设计航班信息、订票系统的存储结构,完成下面基本要求
基本要求
(1) 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日期(具体时间)、成员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量)
(2) 要求数据等存放在文件中
(3) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(4) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
(5) 可以输入起飞抵达城市,查询飞机航班情况;
(6) 订票:(订票情况可以存在一个数据文件中,结构自己设定),可以订票,如果该航班已经无票,可以提供相关可选择航班;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补;
(7) 退票:可退票,退票后修改相关数据文件;然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为它办理订票手续,否则依次询问其他排队候补的客户
(8) 修改航班信息:当航班信息改变可以修改航班数据文件
代码片段和文件信息
#include
#include
#include
struct Plane //定义航班结构体
{ int num; //航班号
char Sday[20];//起飞日期
char Stime[50];//起飞时间
char Etime[50];//抵达时间
char Start[50];//起点
char Ends[50];//终点
float fPricesPricetPrice;//价格
float Discount;//折扣
int Msum; //该航班最多载人数
int fsum;//1级舱位准载人数
int ssum;//2级舱位准载人数
int tsum;//3级舱位准载人数
Plane *next;
};
Plane *Phead=NULL;
FILE *fp; //定义文件型指针变量
void main();
void fn(); //航班信息函数
Plane * PCreate()//创建航线上的航班链表
{
int k=1;
Plane * ps;
Plane * pEnd;
ps=new Plane;//新链表->ps
cout<<“请输入航班号:“;
cin>>ps->num;
cout<<“请输入起飞日期:“;
cin>>ps->Sday;
cout<<“起飞的时间:“;
cin >>ps->Stime;
cout<<“抵达的时间:“;
cin>>ps->Etime;
cout<<“起点:“;
cin>>ps->Start;
cout<<“终点:“;
cin>>ps->Ends;
cout<<“1级舱位现票价:“;
cin>>ps->fPrice;
cout<<“2级舱位现票价:“;
cin>>ps->sPrice;
cout<<“3级舱位现票价:“;
cin>>ps->tPrice;
cout<<“该票价的折扣:“;
cin>>ps->Discount;
cout<<“准载人数:“;
cin>>ps->Msum;
cout<<“1级舱位准载人数:“;
cin>>ps->fsum;
cout<<“2级舱位准载人数:“;
cin>>ps->ssum;
ps->tsum=ps->Msum-ps->fsum-ps->ssum;
cout< pEnd=ps;//起始地址->终点地址
while(ps->num!=0)
{
if(Phead==NULL)
Phead=ps;
else
pEnd->next=ps;
pEnd=ps;
ps=new Plane;
cout<<“航班号(输入0结束):“;
cin>>ps->num;
}
pEnd->next=NULL;
return Phead;
}
void save(Plane * head1) //保存信息
{
if((fp=fopen(“fly1.txt““ab“))==NULL) //向二进制文件尾增加数据
{
return;
}
for(;head1;head1=head1->next)
fwrite(head1sizeof(Plane)1fp); //写入数据
fclose(fp);
}
void hangxian() //航线
{
Plane * head1=PCreate();
save(head1);
}
void watchP()//功能3:查看全部航班信息
{
Plane *tail *temp=new Plane;
Phead=tail=NULL;
int flag=1;
if((fp=fopen(“fly1.txt““rb“))==NULL) //为输入打开一个二进制文件
{
printf(“出错请检查文件是否存在按任意键返回住菜单\n“);//出错提示
main();
}
while((fread(tempsizeof(struct Plane)1fp))==1)
{
if(Phead==NULL){Phead=tail=temp;Phead->next=NULL;}
else
{
temp->next=NULL;
tail->next=temp;
tail=temp;
}
cout< cout<<“你要查看的信息如下:“< cout<<““< cout<<“航班号:“<num< cout<<“起飞日期:“<Sday< cout<<“起飞时间:“<Stime< cout<<“抵达时间:“<Etime< cout<<“起点站:“<Start< cout<<“终点站:“<Ends< cout<<“1级舱位票价:“<fPrice< cout<<“2级舱位票价:“<sPrice< cout<<“3级舱位票价:“<tPrice< cout<<“票的折扣“<Discount< cout<<“准载人数:“<Msum< cout<<“1级舱位准载人数:“<fsum< cout<<“2级舱位准载人数:“<ssum< cout<<“3级舱位准载人数:“<tsum< cout<<““< temp=new Plane;
}
delete tailtemp;
fclose(fp);
cout<<“谢谢使用!退出!“< }
void search_num() //航班号查找
{
int num;
int k=1;
Plane*tail *temp=new Plane;
Phead=NULL;
if((fp=fopen(“fly1.txt““rb“))==NULL)
{
printf
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 270336 2009-10-15 09:58 200730893024\2007唐.doc
文件 260 2009-09-03 15:31 200730893024\程序\fly1.txt
文件 100 2009-09-03 15:37 200730893024\程序\fly2.txt
文件 14301 2009-09-03 15:36 200730893024\程序\t.cpp
目录 0 2009-10-15 09:59 200730893024\程序
目录 0 2009-10-15 09:58 200730893024
----------- --------- ---------- ----- ----
284997 6
- 上一篇:APK/ROM加密解密工具
- 下一篇:华中科技大学运动码表.circ
评论
共有 条评论