⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xiao123.c

📁 航空售票系统:基本的定 售票等等。希望多大家能有帮助
💻 C
📖 第 1 页 / 共 2 页
字号:
char hangbancode[10];
int flycode;
cout<<"请你输入你要查询的航班号: ";
cin>>hangbancode;
cout<<endl;
cout<<"请输入你要查询的飞机号: ";
cin>>flycode;
flymess=new flymessage;
flymess=readalldata();

p=flymess->next;
while(p!=NULL)
{
if((!strcmp(p->hangbancode,hangbancode))&&(p->flycode==flycode))
{
showmessage(p);
break;
}
else
p=p->next;
}
system("cls");
if(p==NULL)
cout<<"你所查询的信息不存在!"<<endl;

}
else if(a==2)
{
char names[20];
int i=0;
cout<<"你要查询客户的姓名为:";
cin>>names;
cout<<"名为"<<names<<"的客户有以下"<<endl;
guest=readguest(); 
q=guest->next;
while(q!=NULL)
{
if(!strcmp(q->name,names))
{
cout<<endl;
cout<<"姓名: "<<q->name<<" 客户ID: "<<q->ID<<endl;
cout<<"所乘航班的航班号为: "<<q->hangbancode<<" 飞机号: "<<q->flycode<<endl;
cout<<"舱位等级: "<<q->dengji<<" 预订票数: "<<q->total<<endl;
cout<<"座位:"<<endl;
for(int set=0;set<q->total;set++)
cout<<q->seats[set]<<"号 ";
cout<<endl;
cout<<"航班于周"<<q->lefttime.weekday<<"日"<<q->lefttime.hour<<"时"<<q->lefttime.minute<<"分, 从"<<q->begcity<<" 飞往 "<<q->arrivecity<<",到达时间为: 周"<<q->arrivetime.weekday<<"日"<<q->arrivetime.hour<<"时"<<q->arrivetime.minute<<"分"<<endl;
cout<<endl;
i++;
}
q=q->next;

}
if(i==0)
cout<<"你查找的姓名不存在与数据库中!"<<endl;

}
else if(a==3)
{ 
char cityarr[20],citybeg[20];
flymessage *lookup,*p;
cout<<"请输入你想查询飞机起飞的城市: ";
cin>>citybeg;
cout<<"请输入你想查询飞机抵达的城市: ";
cin>>cityarr;
cout<<endl;
int n=0;
lookup=readalldata(); 
p=lookup->next;
while(p!=NULL)
{
if((!strcmp(p->arrivecity,cityarr))&&(!strcmp(p->begcity,citybeg)))
{
showmessage(p);
n++;
cout<<endl;
}
p=p->next;
} 
if(n==0)
cout<<"对不起,你查询的城市没有直达航班!"<<endl; 
}
else 
{
cout<<"输入错误,请重新输入"<<endl;
goto CX;
}

}

blackseat *getblack()
{
blackseat *head,*p,*q;
fstream fin;
q=head=new blackseat;
head->next=NULL;
fin.open("退票的位子信息.txt",ios::out);
fin>>head->counter;
for(int i=0;i<head->counter;i++)
{
p=new blackseat;
p->next=NULL;
fin>>*p;
q->next=p;
q=p; 
}
fin.close();
return head; 
}


void setblack(blackseat * hblack)
{
fstream fout;
blackseat *p;
p=hblack->next;
fout.open("退票的位子信息.txt",ios::out);
fout<<hblack->counter;
if(hblack->counter==1)
fout<<*hblack;
else
{
while(p!=NULL)
{
fout<<*p;
p=p->next;
}
}
fout.flush();
fout.close();
}
//------------------------------------------------------------------------------------
void bookticket() // 客户订票操作
{

flymessage *p,*lookup,*front;
fstream bookt,reflesh;
int choice;
int getcode2;
char city[20],getcode1[10];
fstream flashdata,flashdata2;
char nch[20];
int dj,id,tt;
B: cout<<"请输入你订票方式 1 为按航班号和飞机号订票,2 为按抵达城市订票"<<endl;
cin>>choice;

switch(choice)
{
case 1:
{
cout<<"请你输入你想预定航班的航班号: ";
cin>>getcode1;
cout<<"请输入飞机号: ";
cin>>getcode2;

break;
}
case 2:
{

cout<<"请你输入你想预定航班抵达的城市!"<<endl<<"你输入的是: ";
cin>>city;
lookup=readalldata();
p=lookup->next;
while(p!=NULL)
{
if(!strcmp(p->arrivecity,city))
showmessage(p);
p=p->next;
}
cout<<"请在以上的航班中选取你想预订的航班的航班号: ";
cin>>getcode1;
cout<<"输入飞机号: ";
cin>>getcode2;

break;
}
default :
{
cout<<"输入错误,请重新输入!"<<endl;
goto B;
}
}
cout<<"你所选择的是: "<<endl;
guestmessage *guest,*s,*hguest,*pre;
guest=new guestmessage;

lookup=readalldata();
p=lookup;
front=lookup->next;
while(front!=NULL)
{
p->next=front;
p=front;
if((!strcmp(front->hangbancode,getcode1))&&(front->flycode==getcode2))
{
break;
}
front=front->next;
}

cout<<"请输入客户的姓名:";
cin>>nch;
cout<<"请输入客户的ID号:";
cin>>id;
sb: cout<<"请输入客户要求的机舱等级,1 为一等舱,2为二等舱,3为三等舱 :";
cin>>dj;
if((dj<0)||(dj>4))
{
cout<<"请重新输入!";
goto sb;
}

bool full=true;
while(full)
{
if(p->seats[dj].leftseat>0)
full=false;
else 
{
cout<<dj<<"等舱已满,请选择另外的座舱!"<<endl;
goto sb;
}
}
cout<<"客户定票数:";
cin>>tt;
guest->dengji=dj;
guest->linedata=p->didbook+1;
blackseat *bseat,*x;
bseat=new blackseat;
bseat->next=NULL;
bseat=getblack();
x=bseat->next;
int il;
cout<<"请付: "<<p->seats[dj].price*tt<<" 元, 谢谢!"<<endl;
if(bseat->next!=NULL)
{ 
int j=0;
while(x!=NULL)
{
if((!strcmp(getcode1,x->hangbancode))&&(getcode2==x->flycode)&&(j<tt))
guest->seats[j++]=x->position;
else
x=x->next; 
}
if(--j<tt-1)
{
for(int n=0;n<tt-j+1;n++)
guest->seats[n]=++p->didbook;
}
}
else
{
int didbuy=p->didbook;
for(int i=0;i<tt;i++)
{
if(didbuy<(p->maxseat+1))
guest->seats[i]=++p->didbook;
else 
{
cout<<"对不起,票已售空,只能售"<<i+1<<"张票给您!"<<endl;
break;
}
il=i+1;
}
switch(dj)
{
case 1:
{
p->seats[1].leftseat-=il;
break;
}
case 2:
{
p->seats[2].leftseat-=il;
break;
}
case 3:
{
p->seats[3].leftseat-=il;
break;
}
default:
{
p->seats[3].leftseat-=il;

}
}
}
guest->total=tt;
strcpy(guest->name,nch);
guest->ID=id;
strcpy(guest->begcity,p->begcity);
strcpy(guest->arrivecity,p->arrivecity);
strcpy(guest->hangbancode,p->hangbancode);
guest->flycode=p->flycode; 

guest->lefttime.weekday=p->lefttime.weekday;
guest->lefttime.hour=p->lefttime.hour;
guest->lefttime.minute=p->lefttime.minute;
guest->arrivetime.weekday=p->arrivetime.weekday;
guest->arrivetime.hour=p->arrivetime.hour;
guest->arrivetime.minute=p->arrivetime.minute; 
guest->next=NULL;

pre=hguest=new guestmessage;
hguest=readguest();
s=hguest->next;
if(hguest->next==NULL)
{
guest->sum=1;
savealldatatoguest(guest);
}
else
{
while(s!=NULL)
{
pre->next=s;
pre=s;
s=s->next;
}
pre->next=guest;
hguest->sum++; 
savealldatatoguest(hguest);
lookup->counter++; 
}
savealldata(lookup);
system("cls");
cout<<"预订成功!"<<endl;
cout<<"你预定的信息如下:"<<endl;
cout<<"姓名: "<<guest->name<<" ID: "<<guest->ID<<" 舱位: "<<dj<<endl;
cout<<"座位:"<<endl;
for(int set=0;set<guest->total;set++)
cout<<guest->seats[set]<<"号 ";
cout<<"所乘航班班次: "<<p->hangbancode<<" 于"<<p->lefttime.hour<<"时"<<p->lefttime.minute<<"分"<<"从"<<p->begcity<<"飞往"<<p->arrivecity<<",到达时间为: "<<p->arrivetime.hour<<"时"<<p->arrivetime.minute<<"分."<<endl<<"请准时登机!";
cout<<endl; 


}

//-----------------------------------------------------------------------------------
void putbackticket() // 客户退票操作
{
char chioce,hangbancode[10];
int flycode;
int total;
char name[20];
long ID;
blackseat *hblst,*blst,*bseat,*pblst;
guestmessage *guest,*headguest,*pguest,*temp;
cout<<"是否确定要退票? y/n?"<<endl;
cin>>chioce;
if((chioce=='n')||(chioce=='N'))
return;
else 
{
cout<<"请输入你的航班号: ";
cin>>hangbancode;
cout<<"请输入你的航班飞机号 ";
cin>>flycode;
cout<<"请输入你的名字"<<endl;
cin>>name;
cout<<"请输入你的ID号"<<endl;
cin>>ID;
guest=headguest=new guestmessage;
headguest=readguest();
pguest=headguest->next;
bseat=hblst=new blackseat;
hblst=getblack();
blst=hblst->next;
while(blst!=NULL)
{
bseat->next=blst;
blst=blst->next;
}
while(pguest!=NULL)
{
if((!strcmp(pguest->hangbancode,hangbancode))&&(pguest->flycode==flycode)&&(pguest->ID==ID)&&strcmp(pguest->name,name))
{
temp=pguest;
total=temp->total;
int i=0;
while(i<total)
{

pblst=new blackseat;
pblst->counter=1;
strcpy(pblst->hangbancode,temp->hangbancode);
pblst->flycode=temp->flycode;
pblst->chars=temp->dengji;
pblst->position=temp->seats[i];
++(hblst->counter);
i++;
}
guest->next=pguest->next; 
delete temp;
break;
}
else 
{
guest->next=pguest;
guest=pguest;
pguest=pguest->next;
}

} 
setblack(hblst);

savealldatatoguest(headguest);
cout<<"退票成功!"<<endl;
}

}

//---------------------------------------------------------------------------------
void changemessage() // 工作人员修改信息,核对工作人员是否有权限修改信息
{
bool p=true;
p=writemessage();
while(p)
p=writemessage(); //修改信息操作
}
//----------------------------------------------------------------------------------
void main() 
{
ofstream hangbanfile;
int get1;
int get2;
cout<<"*******************************************************************************"<<endl;
cout<<"* *"<<endl;
cout<<"* 航空订票查询退票系统已经运行!欢迎使用! *"<<endl;
A: cout<<"*******************************************************************************"<<endl;
cout<<"* 请选择服务种类: *"<<endl;
cout<<"* *"<<endl;
cout<<"* 1 客户定票,2航班信息查询,3客户退票, 4工作人员修改数据信息, 5退出系统 *"<<endl;
cout<<"*******************************************************************************"<<endl;
cout<<"你选择的是: ";
cin>>get1;
switch(get1)
{
case 1:
{
bookticket();
goto A;
}
case 2:
{
chaxun();
goto A;
}
case 3:
{
putbackticket();
goto A;
}
case 4:
{
char a[20],b[20];
operater adminis;
cout<<"请输入你的用户名 ......."<<endl;
cin>>a;
cout<<"请输入你的密码......."<<endl;
cin>>b;
adminis=getcode();
if(!strcmp(a, adminis.name)&&!strcmp(b,adminis.code))
{
system("cls");
H: cout<<"密码审核通过!"<<endl;
cout<<"请你选择修改信息种类 :"<<endl;
cout<<" * 1 修改工作密码"<<endl;
cout<<" * 2 重新设置航班信息"<<endl;
cout<<" * 3 销毁以前的所有数据,重新初始化"<<endl;
cout<<"******************************"<<endl;
cin>>get2;
switch(get2)
{
case 1:
{
changecode();
goto A;
}
case 2:
{
changemessage();
goto A;
}
case 3:
{
char choice;
cout<<"请慎重考虑,执行该操作后,航班信息数据将全部丢失,是否销毁 y/n?"<<endl;
cin>>choice;
if(choice=='y'||choice=='Y')
{
inifiledata();
goto A;
}
else break; 
}

default:
{
cout<<"输入错误,请重新输入!"<<endl;
goto H;
}
}
}
else 
{
cout<<"非法用户,为了数据的安全,系统结束!"<<endl;
goto END;
}
}
case 5:
{
break;

}

default:
{
cout<<"您输入的代号,系统无法识别,请重新输入.........."<<endl;
goto A;
}

}
END:
cout<<"系统已退出..........."<<endl;
}

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -