数据结构大作业之链表
它的存储文件格式为记事本文件,程序只能运行一点点,但就是不知道为什么这个程序运行错误,希望路过的大佬能帮忙指点一下
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<malloc.h>
//#include<cstdlib.h>
//#include<iomanip.h>
#include<Windows.h>
#include<fstream>
#include<string>
using namespace std;
/**************************************************************/
typedef struct passengers //乘客信息
{
char id[20];
char password[20];
char name[20];
char id_card[20];
int phone[11];
int order_num; //订单号
int ticker_num; //订票数量
char Airno[8]; //航班号
passengers *pNext;//指向下一个乘客
passengers *head;
passengers *rear;
}passengers;
typedef struct flightnode //航班信息
{
char Airno[10];
char start[20]; //起飞地点
char end[20]; //抵达地点
char time1[10]; //起飞时间
char time2[10]; //抵达时间
float price; //票价
float discount; //折扣
int remained; //是否剩余,剩余多少
int isFull; //航班是否满仓
flightnode *next; //指向下一个结点
}flighetnode;
/*******************乘客主菜单界面**************************/
void dingpiao(passengers * pHead){}
void tuipiao(passengers * pHead){}
void query(passengers * pHead){}
/*typedef struct passengerList{
passengers *head;
passengers *rear;
}passengerList;*/
/*void init_passengers(passengers *pL){
passengers *pList=(passengers *)malloc(sizeof(passengers));
pList->pNext=(passengers *)malloc(sizeof(passengers));
pList->pNext=pL->pNext;
pL->pNext=pList;
pList->order_num=0; //订单号从0开始
pList->pNext=NULL;
}*/
void save_passenger(passengers *PList){
FILE* fp=fopen("passengers.txt","wb");
if(fp==NULL)
return;
passengers *temp=PList->head->pNext;
while(temp!=NULL){
fwrite(temp,sizeof(passengers),1,fp);
temp=temp->pNext;
};
fclose(fp);
}
void load_passenger(passengers *PList){
FILE* fp=fopen("passengers.txt","rb");
if(fp==NULL)
return;
passengers *q;
int n;
while(!feof(fp)){
q=(passengers *)malloc(sizeof(passengers));
n=fread(q,sizeof(passengers),1,fp);
if(n!=1)
break;
PList->rear->pNext=q;
PList->rear=q;
}
PList->rear->pNext=NULL;
fclose(fp);
}
void insert_passengerList(flightnode *&h,passengers *&PList,char *name,char *id_card,char*Airno,int ticket_num){
//客户订票后,将客户结点插入客户链表中,并修改相应的航班信息
flightnode *p=h->next;
for(;p!=NULL;p=p->next){
if(strcmp(p->Airno,Airno)==0){
p->remained=p->remained-ticket_num;
if(p->remained==0)
p->isFull=1;
}
passengers *q=(passengers *)malloc(sizeof(passengers));//新建结点,存放新的客户订单信息
//strcpy(q->id,id);
strcpy(q->name,name);
strcpy(q->id_card,id_card);
strcpy(q->Airno,Airno);
q->ticker_num=ticket_num;
q->pNext=NULL; //将新的订单连接到链表中
PList->rear->pNext=q;
q->order_num=PList->rear->order_num+1; //生成订单号
PList->rear=q;
}
}
/*void save_passenger(flightnode *h){
FILE* fp=fopen("flightList.txt","wb");
if(fp==NULL)
return;
flightnode *temp=h->next;
while(temp!=NULL){
fwrite(temp,sizeof(flightnode),1,fp);
temp=temp->next;
};
fclose(fp);
}*/
void zhuce(passengers *&PL){
passengers *pList=(passengers *)malloc(sizeof(passengers));
pList->pNext=PL->pNext;
PL->pNext=pList;
pList->order_num=0; //订单号从0开始
pList->pNext=NULL;
FILE* fp=fopen("passenger.txt","wb"); //注册并写入文件,每一行存在一个用户
if(fp==NULL){
printf_s("打开文件失败,无法注册!");
exit(0);
}
passengers *temp=PL->pNext;
char id[20],password[20],name[20],id_card[20];
printf("\t请输入您的昵称:"); scanf_s("%s",id,20);
printf("\t请输入您的密码:"); scanf_s("%s",password,20);
printf("\t请输入您的真实姓名:"); scanf_s("%s",name,20);
printf("\t请输入您的身份证号码:"); scanf_s("%s",id_card,20);
fprintf(fp,temp->id); fprintf(fp,"\t");
fprintf(fp,temp->password); fprintf(fp,"\t");
fprintf(fp,temp->name); fprintf(fp,"\t");
fprintf(fp,temp->id_card); fprintf(fp,"\t");
fwrite(temp,sizeof(passengers),1,fp);
fclose(fp);
//return PL;
}
int delete_passenger(passengers *&PList,flightnode *&h,char *name,char *id_card){
//目的是按照要退票的顾客的姓名查找该顾客结点,进行删除操作
passengers *p,*pr=PList->head;
p=pr->pNext;
while(p!=NULL){
if(strcmp(name,p->name)==0&&strcmp(id_card,p->id_card)==0){
for(flightnode *f=h->next;f!=NULL;f=f->next){
f->remained=f->remained+p->ticker_num;
f->isFull=0;
break;
}
pr->pNext=p->pNext;
free(p);
printf("\t\t顾客%s,%s退票成功!",name,id_card);
return 1;
}
pr=pr->pNext;
p=p->pNext;
}
printf("\t\t顾客不存在,无法退票!");
return 0;
}
int order_num_check(passengers *PList,int order_num)
{
passengers *p=PList->head->pNext;
printf("%-8s%-20s%-20s%-10s%-8s%\n","订单号","姓名","身份证号","航班号","订票数量");
for(;p!=NULL;p=p->pNext)
{
if(p->order_num==order_num)
{
printf_s("%-8d%-20s%-20s%-10s%-8d%\n",p->order_num,p->name,p->id_card, p->Airno,p->ticker_num);
return 1;
}
}
printf_s("\t\t抱歉,没有订单号为%d的订单信息!\n",order_num);
return 0;
}
void check_all_passenger(passengers *PList)
{
passengers *p=PList->head->pNext;
int m=0;
printf("%-8s%-20s%-20s%-10s%-8s%\n","订单号","姓名","证件号","航班号","订票数量");
for(;p!=NULL;p=p->pNext)
{
printf_s("%-8d%-20s%-20s%-10s%-8d%\n",p->order_num,p->name,p->id_card, p->Airno,p->ticker_num);
m=1;
}
if(m==0)
printf_s("\t\t订单信息为空!\n");
}
int id_check(passengers *PList,char *name,char *id_card)
{
passengers *p=PList->head->pNext;
int mark=0;
printf("%-8s%-20s%-20s%-10s%-8s%\n","订单号","姓名","证件号","航班号","订票数量");
for(;p!=NULL;p=p->pNext)
{
if(strcmp(p->id,id_card)==0&&strcmp(p->name,name)==0)
{
printf_s("%-8d%-20s%-20s%-10s%-8d%\n",p->order_num,p->name,p->id_card, p->Airno,p->ticker_num);
mark=1;
}
}
if(mark==0)
{
printf("\t\t抱歉,没有%s,%s的订单信息!\n",name,id_card);
return 0;
}
return 1;
}
void passenger_check(passengers *PList)
{
char name[20],ID_num[15];
int order_num;
char a;
printf("\t请选择订单查询方式:\n");
printf("\t\t1表示按客户姓名和证件号进行查询;\n");
printf("\t\t2表示按订单号进行查询;\n");
cin>>a;
if(a=='1')
{
printf("\t\t请输入客户姓名:");
scanf_s("%s",name,20);
printf("\t\t请输入证件号:");
scanf_s("%s",ID_num,15);
id_check(PList,name,ID_num);
}
else if(a=='2')
{
printf("\t\t请输入订单号:");
scanf_s("%d",&order_num);
order_num_check(PList,order_num);
}
else
return;
}
void cancel(passengers *PList,flightnode *h)//退票
{
char name[20],id_card[20];
printf("\t\t请输入你的姓名:");
cin>>name;
printf("\t\t请输入你的身份证号码:");
cin>>id_card;
delete_passenger(PList,h,name,id_card);
}
void Find_ALL_LIST_DATA(passengers *&PList)//显示所有订单
{
passengers *p=PList->head;
while(p->pNext!=NULL)
{
cout<<p->name<<" "<<p->id_card<<" "<<p->Airno<<" "<<p->order_num<<" "<<p->ticker_num<<" "<<endl;
p=p->pNext;
}
system("pause");
}
/*passengers * CreateLink(){
passengers *pHead; //链表头
pHead=(passengers *)malloc(sizeof(passengers));
pHead->pNext=NULL;
pHead->pPre=NULL;
passengers *pTemp; //定义指针,始终指向最后一个
pTemp=(passengers *)malloc(sizeof(passengers));
pTemp=pHead;
int count=0;
passengers *p;
while(1){
p=(passengers *)malloc(sizeof(passengers)); //动态创建节点
count++;
printf("请按下面顺序依次输入注册信息(信息之前用空格间隔开!):\n");
printf("用户名--密码--身份证号码--姓名--电话\n");
scanf_s("%c %c %c %c %d",&p->id,p->password,p->id_card,p->name,p->phone);
pTemp->pNext=p;
p->pPre=pTemp;
p->pNext=NULL;
pTemp=pTemp->pNext;
pTemp->pNext=NULL; //将最后一个指针指向空
}
return pHead;
}*/
/**********************管理员主菜单界面**************************/
/*flightnode initflight(){
flightnode head;
head=new flightnode;
}*/
void init_flight(flightnode *h){ //目的是要建立一个以h为头结点的空链表,录入航班信息和增加航班后将航班结点插入该链表
h=(flightnode *)malloc(sizeof(flightnode));
if(h==NULL)
exit(0);
h->next=NULL; //将头结点h的指针域置为空
}
void insert_flight(flightnode *h,char * Airno,char* start,char* end,char* time1,char* time2,int remained,float price,float discount,int isFull ){
//在录入航班情况或增加新的航班后,将新的航班结点插入到航班线链表中
flightnode *q; //定义q为新增结点的指针的形参
flightnode *p=h;
q=(flightnode *)malloc(sizeof(flightnode));
strcpy_s(q->Airno,Airno);
strcpy_s(q->start,start);
strcpy_s(q->end,end);
strcpy_s(q->time1,time1);
strcpy_s(q->time2,time2);
q->price=price;
q->discount=discount;
q->remained=remained; //以上是用strcpy函数将新增结点新增加航班的各种信息复制到q结点中
q->isFull=isFull;
q->next=p->next;
p->next=q;
p=p->next; //指针后移
}
void luru(flightnode *h){
flightnode *p=(flightnode*)malloc(sizeof(flightnode));
p=h;
char Airno[8];
char start[6],end[6],time1[8],time2[8];
float price,discount;
int remained,isFull,mark=1;
//for(;p->next!=NULL;p=p->next){}//移动指针,找到最后一个结点
while(mark){
printf("\t请输入你要增加的航班号:"); scanf_s("%s",Airno,8);
printf("\t请输入出发地点:"); scanf_s("%s",start,6);
printf("\t请输入抵达地点:"); scanf_s("%s",end,6);
printf("\t请输入起飞时间:"); scanf_s("%s",time1,8);
printf("\t请输入降落时间:"); scanf_s("%s",time2,8);
printf("\t请输入票价:"); scanf("%f",&price);
printf("\t请输入折扣:"); scanf("%f",&discount);
printf("\t请输入剩余座位数:"); scanf("%d",&remained);
printf("\t请输入是否满仓(0表示没有,1表示满仓):"); scanf("%d",&isFull);
insert_flight(p,Airno,start,end,time1,time2,remained,price,discount,isFull);
printf("\t航班号%s增加成功!\n",Airno);
printf("----------------------------------------------------------\n");
printf("*******************是否继续录入航班信息*******************\n");
printf("= 1.继续 2.停止 =\n");
printf("= 请选择您需要的服务: =\n");
printf("----------------------------------------------------------\n");
scanf_s("%d",mark);
}
}
void save_flight(flightnode *h){
FILE* fp=fopen("flightList.txt","wb");
if(fp==NULL)
return;
flightnode *temp=h->next;
while(temp!=NULL){
fwrite(temp,sizeof(flightnode),1,fp);
temp=temp->next;
};
fclose(fp);
}
void load_flight(flightnode *&h){
flightnode *pt=h;
FILE* fp=fopen("flightList.txt","rb");
if(fp==NULL)
return;
flightnode *q;
int n;
while(!feof(fp)){
q=(flightnode *)malloc(sizeof(flightnode));
n=fread(q,sizeof(flightnode),1,fp);
if(n!=1)
break;
pt->next=q;
pt=q;
}
pt->next=NULL;
fclose(fp);
}
int find_same_flight(flightnode *h,char *Airno){
flightnode *t=h->next,*p=h->next;
int mark=0;
printf("%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8s%\n","航班号","起飞城市","抵达城市","起飞时间","降落时间","票价","折扣","是否满座""空座数");
while(t!=NULL&&strcmp(t->Airno,Airno)!=0)
t=t->next;
while(p!=NULL){
if((strcmp(t->start,p->start)==0)&&(strcmp(t->end,p->end)==0)&&(strcmp(t->Airno,p->Airno)!=0)){
printf("%-8s%-12s%-12s%-10s%-10s%-8.2s%-6.2s%-10d%-8d\n",p->Airno,p->start,p->end,p->time1,p->time2,p->price,p->discount,p->isFull,p->remained);
mark=1;
}
p=p->next;
}
if(mark==0){
printf("\t\t抱歉,没有可选的航班!\n");
return 0;
}
return 1;
}
void delete_flight(flightnode *h,passengers *PList)
//目的要按照某个航班号删除航班结点
{
flightnode *p,*pr;
passengers *q,*qr;
char Airno[10];
int mark=1;
qr=PList->head;//qr为顾客链表的头结点
q=qr->pNext;//用p作为中间指针对顾客链表中要删除的顾客结点进行查找
pr=h;//pr为航线链表的头结点
p=pr->next;//用p作为指针对航线链表中要删除的航班结点进行查找
printf("\t\t请输入你要删除的航班号:");
scanf("%s",Airno);
while(p!=NULL)//要删除的航班存在,下面进行删除操作
{
if(strcmp(Airno,p->Airno)==0)
{
pr->next=p->next;//移动指针找着要删除的航班结点
free(p);
printf("\t\t删除%s航班成功!\n",Airno);
mark=0;
p=NULL;
}
if(pr->next!=NULL)
{
pr=pr->next;
p=pr->next;
}
}
if(mark==1)
printf("\t\t无此航班,无法删除!\n");
else
{
while(q!=NULL)//要删除的顾客存在,下面进行删除操作
{
if(strcmp(Airno,p->Airno)==0)
{
qr->pNext=q->pNext;//移动指针找着要删除的顾客结点
free(q);
q=NULL;
}
if(qr->pNext!=NULL)
{
qr=qr->pNext;
q=qr->pNext;
}
}
}
}
void add_flight(flightnode *h){ //录入航班信息后调用insert_filght函数增加航班
flightnode *p=h;
char Airno[10],time1[10],time2[10],start[20],end[20];
int remained,isFull,mark=1;
float price,discount;
ifstream infile("file.txt",ios::in);
if(!infile){
cerr<<"open file error!"<<endl;
system("pause");
}
while(infile){
infile>>Airno;
infile>>start;
infile>>end;
infile>>time1;
infile>>time2;
infile>>price;
infile>>discount;
infile>>remained;
infile>>isFull;
insert_flight(p,Airno,start,end,time1,time2,remained,price,discount,isFull);
}
infile.close();
}
int Airno_check(flightnode *h,char *Airno){
flightnode *p=h;
printf("%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8s%\n","航班号","起飞城市","抵达城市","起飞时间","降落时间","票价","折扣","是否满座""空座数");
for(;p!=NULL;p=p->next){
if(strcmp(p->Airno,Airno)==0){
printf("%-8s%-12s%-12s%-10s%-10s%-8.2s%-6.2s%-10d%-8d\n",p->Airno,p->start,p->end,p->time1,p->time2,p->price,p->discount,p->isFull,p->remained);
return 1;
}
}
printf("\t\t抱歉/没有航班号为%s的航班信息!\n",Airno);
return 0;
}
int place_check(flightnode *h,char *start,char *end){
flightnode *p=h;
int mark=0;
printf("%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8s%\n","航班号","起飞城市","抵达城市","起飞时间","降落时间","票价","折扣","是否满座""空座数");
for(;p!=NULL;p=p->next){
if(strcmp(p->start,start)==0&&strcmp(p->end,end)==0){
printf("%-8s%-12s%-12s%-10s%-10s%-8.2s%-6.2s%-10d%-8d\n",p->Airno,p->start,p->end,p->time1,p->time2,p->price,p->discount,p->isFull,p->remained);
return 1;
}
}
if(mark=0){
printf("\t\t抱歉,没有%s到%s的航班信息!\n",start,end);
return 0;
}
return 1;
}
void check_all_flight(flightnode *h){
flightnode *p=h;
int m=0;
printf("%-8s%-12s%-12s%-10s%-10s%-8s%-6s%-10s%-8s%\n","航班号","起飞城市","抵达城市","起飞时间","降落时间","票价","折扣","是否满座""空座数");
for(;p!=NULL;p=p->next){
printf("%-8s%-12s%-12s%-10s%-10s%-8.2s%-6.2s%-10d%-8d\n",p->Airno,p->start,p->end,p->time1,p->time2,p->price,p->discount,p->isFull,p->remained);
m=1;
}
if(m==0){
printf("航班信息为空!\n");
}
}
void flight_check(flightnode *h){
flightnode *p=h->next;
char Airno[10],start[20],end[20];
char a;
printf("----------------航班的查询方式:------------------\n");
printf("------------1.按航班号进行查询---------------\n");
printf("------------2.按起飞和抵达地点进行查询---------------\n");
printf("------------3.浏览全部航班信息---------------\n");
printf("-----——--------请选择:--------------\n");
cin>>a;
if(a=='1'){
printf("\t\t请输入您想要查询的航班号:\n");
scanf_s("%s,Airno");
Airno_check(p,Airno);
}
else if(a=='2'){
printf("\t\t请输入您想要查询的起飞地点:\n");
scanf_s("%s",start,20);
printf("\t\t请输入您想要查询的抵达地点:\n");
scanf_s("%s",end,20);
}
else if(a=='3'){
check_all_flight(p);
}
else
return;
}
void modify_flight(flightnode *h,passengers *PList)
{
flightnode *p=h->next;
char Airno[10],start_time[10],end_time[10];
char a;
printf("*****************航线信息修改******************\n");
printf("***********************************************\n");
printf("= 1.增加航班 =\n");
printf("= 2.删除航班 =\n");
printf("= 3.修改航班时间 =\n");
printf("-----------------------------------------------\n");
printf("\t\t请输入您的选择:");
cin>>a;
if(a=='1')
add_flight(h);
else if(a=='2')
delete_flight(h,PList);
else if(a=='3')
{
printf("\t请输入要修改的航班的航班号:");
scanf("%s",Airno);
if(Airno_check(p,Airno)==1)
{
printf("\t请输入修改后的起飞时间:");
scanf_s("%s",start_time,10);
printf("\t请输入修改后的抵达时间:");
scanf_s("%s",end_time,10);
for(;p!=NULL;p=p->next)
if(strcmp(Airno,p->Airno)==0)
{
strcpy(p->time1,start_time);
strcpy(p->time2,end_time);
printf("\t航班%s时间修改成功!\n",Airno);
}
}
}
else
return;
}
int book(flightnode *h,passengers *PList)
{
char name[20]; //姓名
//char id[20];
char id_card[20]; //证件号
char Airno[10]; //航班号
char start[20];//起飞城市
char end[20]; //抵达城市
int ticket_num; //订票数量
int k;
flightnode *p=h->next;
printf("\t\t请输入信息:\n");
printf("\t\t请输入起飞城市:");
scanf("%s",start);
printf("\t\t请输入抵达城市:");
scanf("%s",end);
if(place_check(h,start,end)==1)
{
printf("\t航班号:");
scanf("%s",Airno);
while(Airno==NULL){
printf("航班号不能为空!\n");
printf("\t航班号:");
scanf("%s",Airno);
}
while(p!=NULL){
if(strcmp(p->Airno,Airno)==0)
{
printf("\t姓名:");
scanf("%s",name);
printf("\t\t身份证号码:");
scanf("%s",id_card);
printf("\t\t订票数量:");
scanf("%d",&ticket_num);
while(name==NULL){
printf("客户姓名不能为空!\n");
printf("\t\t姓名:");
scanf("%s",name);
}
while(id_card==NULL){
printf("客户证件号码不能为空!\n");
printf("\t\t证件号码:");
scanf("%s",id_card);
}
while(ticket_num==0){
printf("客户订票数量不能为空!\n");
printf("\t\t订票数量:");
scanf("%d",&ticket_num);
}
if(p->remained>0&&p->remained>=ticket_num)
{
insert_passengerList(h,PList,name,id_card,Airno,ticket_num);
printf("\t\t你应付金额¥%6.2f.\n",p->price*p->discount* ticket_num);
getchar();
printf("\t\t恭喜您,订票成功!\n");
return 1;
}
else
{
printf("\t\t***很遗憾,该航班已满!***\n");
printf("\t\t***如选择其他航班请输入-----1\n\t\t***不选则输入-----0***\n");
printf("\t\t输入数字进行选择:");
scanf("%d",&k);
if(k==1)
{
printf("\t\t此航线上的其他航班有:\n");
if(find_same_flight(h,Airno)==1)
{
printf("\t\t请输入您选的航班:");
scanf("%s",Airno);
insert_passengerList(h,PList,name,id_card,Airno,ticket_num);
printf("\t\t恭喜您,订票成功!\n");
return 1;
}
}
}
}
else
p=p->next;
}
if(p==NULL)
printf("\t\t对不起,您输入的航班不存在!\n");
}
return 0;
}
void sort_filght(flightnode *h){
//根据 航班起飞时间升序
flightnode *tump1 = (flightnode*)malloc(sizeof(flightnode));
flightnode *tump2 = (flightnode*)malloc(sizeof(flightnode));
flightnode* p1 = h -> next;
flightnode *p2 = h -> next -> next;
printf("根据航班起飞时间升序:\n");
while(p1){
while(p2){
if(strcmp(p2 ->time1, p2 ->time1) > 0){
*tump1 = *p1;
//tump1 -> next = p1 -> next;
*p1 = *p2;
tump2 -> next = p2 -> next;
*p2 = *tump1;
p1 -> next = tump1 -> next;
p2 -> next = tump2 -> next;
}
p2 = p2 -> next;
}
p1 = p1 -> next;
p2 = h -> next -> next;
}
p1 = h -> next;
printf("航班号\t起飞城市\t抵达城市\t起飞时间\t降落时间\t票价\t折扣\t是否满座\t空座数\n");
while(p1){
printf("%-8s%-12s%-12s%-10s%-10s%-8.2s%-6.2s%-10d%-8d\n",p1 ->Airno, p1 ->start, p1 -> end,
p1 ->time1, p1 ->time2, p1 -> price,
p1 -> price, p1 -> discount, p1 -> isFull,p1->remained);
p1 = p1 -> next;
}
}
void main_passenger(flightnode *fl,passengers *pa){
int mp=0;
while(1){
printf("*****************飞机订票系统******************\n");
printf("*******************欢迎进入********************\n");
printf("= 1.注册 2.订票 =\n");
printf("= 3.退票 4.查询 =\n");
printf("= 5.返回上一级菜单 =\n");
printf("= 请选择您需要的服务: =\n");
printf("-----------------------------------------------\n");
scanf_s("%d",&mp);
switch(mp){
case 1:
zhuce(pa);
break;
case 2:
book(fl,pa);
break;
case 3:
cancel(pa,fl);
break;
case 4:
passenger_check(pa);
break;
case 5:
return;
default:
printf("输入错误,请重新输入:\n");
}
}
}
void main_admin(flightnode *fl,passengers *pa){
int t=1,ad;
/*flightnode *flight;
passengerList *passenger;
init_flight(flight);
load_flight(flight);*/
while(t){
printf("*****************飞机订票系统******************\n");
printf("*******************欢迎进入********************\n");
printf("= 1.录入 2.修改 =\n");
printf("= 3.删除 4.查询 =\n");
printf("= 5.排序 6.返回上一级菜单 =\n");
printf("= 请选择您需要的服务: =\n");
printf("-----------------------------------------------\n");
scanf_s("%d",&ad);
switch(ad){
case 1:
luru(fl);
break;
case 2:
modify_flight(fl,pa);
break;
case 3:
delete_flight(fl,pa);
break;
case 4:flight_check(fl);
break;
case 5:
sort_filght(fl);
break;
case 6:
return;
default:
printf("输入错误,请重新输入:\n");
}
}
}
int main(){
int m;
flightnode *flight= (flightnode*)malloc(sizeof(flightnode));
passengers* passenger= (passengers*)malloc(sizeof(passengers));
while(1){
printf("*****************飞机订票系统******************\n");
printf("*******************欢迎进入********************\n");
printf("= 1.乘客 2.管理员 =\n");
printf("= 请选择您的角色: =\n");
printf("-----------------------------------------------\n");
scanf_s("%d",&m);
switch(m){
case 1:main_passenger(flight,passenger);
case 2:main_admin(flight,passenger);
default:
printf("输入错误,请重新输入:\n");
}
}
return 0;
}