这次的课程设计花了我四天才完成,但是可能还有几个不大不小的bug,在这里贴出来仅供大家参考

 /*航空客运订票系统  //管理员账号123 密码123 航班管理每条航班的信息客户管理客户的信息 //管理员 查询航班订票业务退票业务  //顾客  航班管理:增删改查航班每条航班信息:起飞时间、乘客人数、到达时间、起点、终点客户管理: 购票顾客的信息(哪一个航班、座位号)查询航班:起飞时间、总人数、剩余票数、到达时间、起点、终点订票:座位号退票:座位号链表1:(顾客用)存储顾客 链表2: (管理员用) 增删改查航班信息,打印全部航班信息,管理客户信息 struct a{string name;//旅客姓名 string name1;// 航班编号 string name2;// 航班起点 string name3;//航班终点 int num;  //航班总人数 int seat; //座位号 string time1; //出发时间 string time2;  // 到达时间 structa *next //链接地址 }struct b{char name1[10];  //航班起始 char name2[10];  //航班终点 int num;       // 航班总人数 int seat;      // 座号 string  time1;        //航班起始时间 string time2;      //航班到达时间 sturct b *next;
}cout<<setw(18)<<setiosflags(ios::left) 左对齐,每个输出占18格全部函数均有两个参数 struct lvke *head,struct guanliyuan *head 维护a的同时维护b 结构体中含有string时,给其分配空间时不能用malloc,只能用new(malloc中无法为string类型的数据分配地址,故会造成地址错误) */
#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string>
#include<stdio.h>
#include<cmath>
#include<iomanip>
#include<malloc.h>
#include<conio.h>// 模拟密码输入
#include<windows.h>
using namespace std;
int flag=0;
struct guanliyuan{string  name;//航班号 string name1;//起点 string name2;//终点 int num;//航班总人数 int seat;//座位编号 string time1;//起始时间 string time2;//终点时间string state;//航班状态 //数据域struct guanliyuan *next;//指针域
};
struct lvke{string name; //旅客姓名 string name1; //航班编号 string name2; //航班起点 string name3; //航班终点 int seat;    //座号 string time1; //欺起飞时间 string time2; //到达时间 //数据域 struct lvke *next;//指针域 }; void denglu(struct lvke *head1,struct guanliyuan *head2);//登录界面void lvkemenu(struct lvke *head1 ,struct guanliyuan *head2);//旅客菜单界面 void guanliyuanmenu(struct lvke *head1,struct guanliyuan *head2);//管理员菜单界面 void chaxunhangban1(struct lvke *head1,struct guanliyuan *head2); //管理员查询航班 void chanxunhangban2(struct lvke *head1,struct guanliyuan *head2); //旅客查询航班 void dingpiao(struct lvke *head1,struct guanliyuan *head2);  //旅客端订购机票 void printhangban2(struct lvke *head1,struct guanliyuan *head2); //管理员查询航班 void printhangban1(struct lvke *head1,struct guanliyuan *head2){ //顾客查询航班struct guanliyuan *p2;   p2=head2->next;flag=0;while(p2->next!=NULL){if(flag==0){cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; flag=1; }cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat+1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";p2=p2->next;if(p2->next==NULL){cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat+1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";}} system("pause");lvkemenu(head1,head2);
}void printhangban2(struct lvke *head1,struct guanliyuan *head2){ //顾客查询航班struct guanliyuan *p2;    p2=head2->next;flag=0;while(p2->next!=NULL){if(flag==0){cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:"; // 左对齐每个输出占18格 cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; flag=1; }cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat+1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";p2=p2->next;if(p2->next==NULL){cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat+1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";}} system("pause");guanliyuanmenu(head1,head2);
}
void tuipiao(struct lvke *head1,struct guanliyuan *head2){printf("请输入您的姓名\n");string a;cin>>a;struct lvke *p1,*p3;struct guanliyuan *p2;p1=head1;p3=head1->next;p2=head2->next;flag=0;while(p3!=NULL){if(p1->next->name==a){flag=1;printf("已找到该机票!\n");cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p1->next->name;cout<<setw(18)<<setiosflags(ios::left)<<p1->next->name1;cout<<setw(18)<<setiosflags(ios::left)<<p1->next->name2;cout<<setw(18)<<setiosflags(ios::left)<<p1->next->name3;cout<<setw(18)<<setiosflags(ios::left)<<p1->next->seat;cout<<setw(18)<<setiosflags(ios::left)<<p1->next->time1;cout<<setw(18)<<setiosflags(ios::left)<<p1->next->time2<<"\n";printf("输入1确认删除,输入0返回\n");break;}p1=p1->next;p3=p3->next;}if(flag==0){printf("未找到该顾客信息,请检查后重试\n");system("pause");lvkemenu(head1,head2);}while(1){cin>>a;if(a=="1"||a=="0"){break;}else{printf("您的输入有误,请检查后重新输入\n");}}if(a=="1"){if(p1->next->next==NULL){free(p3);p1->next=NULL;printf("删除成功!\n");}else{p1->next=p3->next;struct lvke *p4;p4=p1->next;while(p4!=NULL){p4->seat--;p4=p4->next;}while(p2!=NULL){if(p2->name==p1->next->name1){p2->seat++;break;}p2=p2->next;}free(p3);printf("删除成功!\n") ;}system("pause");lvkemenu(head1,head2);}else if(a=="1"){lvkemenu(head1,head2);}}
void dingpiao(struct lvke *head1,struct guanliyuan *head2){ //顾客订票 printf("请输入您要定的航班编号或目的地!\n");string a;cin>>a;struct lvke *p1;struct lvke *p;p=new lvke();p1=head1;flag=0; struct guanliyuan *p2;p2=head2->next;while(p2->next!=NULL){if(p2->name==a||p2->name2==a){printf("已成功查询到该航班!\n");flag=1;cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat+1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";if(p2->seat>p2->num){cout<<"该航班旅客已满请重新输入\n";lvkemenu(head1,head2);}printf("请输入您的姓名!\n");cin>>a;while(p1->next!=NULL){p1=p1->next;  }p->name=a;p->name1=p2->name;p->name2=p2->name1;p->name3=p2->name2;p->time1=p2->time1;p->time2=p2->time2;p->seat=p2->seat++;}p2=p2->next;if(p2->next==NULL){if(p2->name==a||p2->name2==a){printf("已成功查询到该航班!\n");flag=1;cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat+1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";if(p2->seat>p2->num){cout<<"该航班旅客已满请重新输入\n";lvkemenu(head1,head2);}printf("请输入您的姓名!\n");cin>>a;while(p1->next!=NULL){p1=p1->next;    }p->name=a;p->name1=p2->name;p->name2=p2->name1;p->name3=p2->name2;p->time1=p2->time1;p->time2=p2->time2;p->seat=p2->seat++;p1->next=p;p1=p;p1->next=NULL;}}}if(flag==1){printf("订票成功!\n");cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p->name;cout<<setw(18)<<setiosflags(ios::left)<<p->name1;cout<<setw(18)<<setiosflags(ios::left)<<p->name2;cout<<setw(18)<<setiosflags(ios::left)<<p->name3;cout<<setw(18)<<setiosflags(ios::left)<<p->seat;cout<<setw(18)<<setiosflags(ios::left)<<p->time1;cout<<setw(18)<<setiosflags(ios::left)<<p->time2<<"\n";system("pause");lvkemenu(head1,head2);}else {printf("未找到该航班,请检查后重新输入\n");system("pause");lvkemenu(head1,head2);}}
void zengjiahangban(struct lvke *head1,struct guanliyuan *head2);//管理员增加航班void shanchuhangban(struct lvke *head1,struct guanliyuan *head2); //管理员删除航班 void xiugaihangban(struct lvke *head1,struct guanliyuan *head2);//管理员修改航班信息void chaxunhangban(struct lvke *head1,struct guanliyuan *head2);//管理员查询航班信息void kehuguanli(struct lvke *head1,struct guanliyuan *head2); //管理员查看顾客信息 void kehuguanli(struct lvke *head1,struct guanliyuan *head2){struct lvke *p1;struct guanliyuan *p2;p1=head1->next;p2=head2->next;printf("输入0查看所有旅客信息,输入1查看单个航班旅客信息\n");string a;flag=0;while(1){cin>>a;if(a=="0"||a=="1"){break;}}if(a=="0"){if(p1==NULL){printf("未储存顾客信息\n");system("pause");guanliyuanmenu(head1,head2);}if(p1->next==NULL){cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p1->name;cout<<setw(18)<<setiosflags(ios::left)<<p1->name1;cout<<setw(18)<<setiosflags(ios::left)<<p1->name2;cout<<setw(18)<<setiosflags(ios::left)<<p1->name3;cout<<setw(18)<<setiosflags(ios::left)<<p1->seat;cout<<setw(18)<<setiosflags(ios::left)<<p1->time1;cout<<setw(18)<<setiosflags(ios::left)<<p1->time2<<"\n";system("pause");guanliyuanmenu(head1,head2);}while(p1->next!=NULL){flag=1;cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p1->name;cout<<setw(18)<<setiosflags(ios::left)<<p1->name1;cout<<setw(18)<<setiosflags(ios::left)<<p1->name2;cout<<setw(18)<<setiosflags(ios::left)<<p1->name3;cout<<setw(18)<<setiosflags(ios::left)<<p1->seat;cout<<setw(18)<<setiosflags(ios::left)<<p1->time1;cout<<setw(18)<<setiosflags(ios::left)<<p1->time2<<"\n";p1=p1->next;if(p1->next==NULL){cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p1->name;cout<<setw(18)<<setiosflags(ios::left)<<p1->name1;cout<<setw(18)<<setiosflags(ios::left)<<p1->name2;cout<<setw(18)<<setiosflags(ios::left)<<p1->name3;cout<<setw(18)<<setiosflags(ios::left)<<p1->seat;cout<<setw(18)<<setiosflags(ios::left)<<p1->time1;cout<<setw(18)<<setiosflags(ios::left)<<p1->time2<<"\n";}}}else {printf("请输入您要查询的航班编号或目的地\n");cin>>a;if(p1==NULL){printf("未储存顾客信息\n");system("pause");guanliyuanmenu(head1,head2);}if(p1->next==NULL&&p1->name1==a||p1->name3==a){cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p1->name;cout<<setw(18)<<setiosflags(ios::left)<<p1->name1;cout<<setw(18)<<setiosflags(ios::left)<<p1->name2;cout<<setw(18)<<setiosflags(ios::left)<<p1->name3;cout<<setw(18)<<setiosflags(ios::left)<<p1->seat;cout<<setw(18)<<setiosflags(ios::left)<<p1->time1;cout<<setw(18)<<setiosflags(ios::left)<<p1->time2<<"\n";system("pause");guanliyuanmenu(head1,head2);}while(p1!=NULL){if(p1->name1==a||p1->name3==a){flag=1;cout<<setw(18)<<setiosflags(ios::left)<<"姓名:";cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"座号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p1->name;cout<<setw(18)<<setiosflags(ios::left)<<p1->name1;cout<<setw(18)<<setiosflags(ios::left)<<p1->name2;cout<<setw(18)<<setiosflags(ios::left)<<p1->name3;cout<<setw(18)<<setiosflags(ios::left)<<p1->seat;cout<<setw(18)<<setiosflags(ios::left)<<p1->time1;cout<<setw(18)<<setiosflags(ios::left)<<p1->time2<<"\n";}p1=p1->next;}}if(flag==1){system("pause");guanliyuanmenu(head1,head2);}else if(flag==0){printf("暂无旅客信息\n");system("pause");guanliyuanmenu(head1,head2);}
}
void hangbanguanlimenu(struct lvke *head1,struct guanliyuan *head2){system("cls");printf("            ****************************************\n");printf("            *           航班管理菜单界面           *\n");printf("            *     请输入相应按键获取相应功能       *\n");printf("            *              1.增加航班信息          *\n");printf("            *              2.删除航班信息          *\n");printf("            *              3.修改航班信息          *\n");printf("            *              4.查询航班信息          *\n");printf("            *              5.返回上级              *\n");printf("            ****************************************\n");printf("请输入你想办理的业务\n");string a;while(1){cin>>a;if(a=="1"||a=="2"||a=="3"||a=="4"||a=="5"){break;}else{printf("您的输入有误,请重新输入!\n"); }}if(a=="1"){flag=0;while(1){if(flag==1){break;}printf("输入新增航班信息,按0结束\n"); zengjiahangban(head1,head2);}printf("增加成功\n!");hangbanguanlimenu(head1,head2);}else if(a=="2"){shanchuhangban(head1,head2);}else if(a=="3"){xiugaihangban(head1,head2);}else if(a=="4"){chaxunhangban1(head1,head2);}else if(a=="5"){guanliyuanmenu(head1,head2);}}
void guanliyuanmenu(struct lvke *head1, struct guanliyuan *head2){system("cls");printf("            ****************************************\n");printf("            *             功能菜单界面             *\n");printf("            *     请输入相应按键获取相应功能       *\n");printf("            *              1.航班管理              *\n");printf("            *              2.航班信息              *\n");printf("            *              3.客户管理              *\n");printf("            *              4.返回上级              *\n");printf("            ****************************************\n");printf("请输入你想办理的业务\n");string a;while(1){ //防止客户乱输入 cin>>a;if(a=="1"||a=="2"||a=="3"||a=="4"||a=="5"){break;}else{printf("您的输入有误,请检查后重新输入\n");}}if(a=="1"){hangbanguanlimenu( head1,head2);}else if(a=="2"){printhangban2(head1,head2);}else if(a=="3"){kehuguanli(head1,head2);}else if(a=="4"){denglu(head1,head2);}}
struct guanliyuan *chushihua(){struct guanliyuan *head;struct guanliyuan *p1,*p2;head=new guanliyuan();head->next=NULL;p1=head;for(int i=1;i<5;i++){p2=new guanliyuan();if(i==1){p2->name="G23232";p2->name1="姜营机场";p2->name2="阿克苏机场";p2->num=31;p2->seat=1;p2->time1="09:55";p2->time2="20:05";p2->state="正常";}else if(i==2){p2->name="CZ3342";p2->name1="姜营机场";p2->name2="咸阳国际机场";p2->num=31;p2->seat=1;p2->time1="12:05";p2->time2="13:55";p2->state="正常"; }else if(i==3){p2->name="GJ8983";p2->name1="姜营机场";p2->name2="姜营机场";p2->num=30;p2->seat=1;p2->time1="11:10";p2->time2="20:45";p2->state="正常";}else if(i==4){p2->name="G54902";p2->name1="姜营机场";p2->name2="萧山国际机场";p2->num=40; p2->seat=1;p2->time1="18:35";p2->time2="00:50";p2->state="正常"; }p1->next=p2;p1=p2;p1->next=NULL;}return head;
}void shanchuhangban(struct lvke *head1,struct guanliyuan *head2){printf("请输入要删除的航班编号或者终点\n");string s;cin>>s;struct guanliyuan *p1,*p2;p1=head2;p2=head2->next;flag=0;while(p1->next!=NULL){if(p1->next->name==s||p1->next->name2==s){p1->next=p2->next;free(p2);printf("删除成功!\n");system("pause");flag=1;break;if(p1->next==NULL){if(p1->name==s||p1->name2==s){free(p1);printf("删除成功!\n");system("pause");flag=1;}}}   p1=p1->next;p2=p2->next;}   if(flag==0){printf("未找到该航班,请检查后重新输入\n");system("pause");}hangbanguanlimenu(head1,head2);}
void xiugaihangban(struct lvke *head1,struct guanliyuan *head2){printf("请输入要修改航班的编号或者终点!\n");string s;cin>>s;struct guanliyuan *p2;p2=head2->next;flag=0;while(p2->next!=NULL){if(p2->name==s||p2->name2==s){flag=1;cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";printf("要修改航班状态请输入0,修改航班信息请输入1\n");cin>>s;if(s=="0"){p2->state="因特殊原因航班延迟"; } else{printf("请输入航班总人数\n");scanf("%d",&p2->num); printf("请输入航班的起点\n");cin>>p2->name1;printf("请输入航班的终点\n");cin>>p2->name2;printf("请输入航班起飞时间\n");cin>>p2->time1;printf("请输入航班到达时间\n");cin>>p2->time2;p2->seat=1;p2->state="正常"; }printf("修改成功!\n");system("pause");}p2=p2->next;if(p2->next==NULL){if(p2->name==s||p2->name2==s){flag=1;cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";printf("要修改航班状态请输入0,修改航班信息请输入1\n");cin>>s;if(s=="0"){p2->state="因特殊原因航班延迟"; } else{printf("请输入航班总人数\n");scanf("%d",&p2->num); printf("请输入航班的起点\n");cin>>p2->name1;printf("请输入航班的终点\n");cin>>p2->name2;printf("请输入航班起飞时间\n");cin>>p2->time1;printf("请输入航班到达时间\n");cin>>p2->time2;p2->seat=1;p2->state="正常"; }printf("修改成功!\n");system("pause");}}}if(flag==0){printf("未找到该航班,请检查后重试!\n");system("pause");}hangbanguanlimenu(head1,head2);
}
void zengjiahangban(struct lvke *head1,struct guanliyuan *head2){struct guanliyuan *p2;struct guanliyuan *add;add=new guanliyuan();if(head2->next!=NULL)p2=head2->next;while(p2->next!=NULL){p2=p2->next;}printf("请输入航班编号\n");cin>>add->name;if(add->name=="0"){flag=1;return;}printf("请输入航班总人数\n");scanf("%d",&add->num); printf("请输入航班的起点\n");cin>>add->name1;printf("请输入航班的终点\n");cin>>add->name2;printf("请输入航班起飞时间\n");cin>>add->time1;printf("请输入航班到达时间\n");cin>>add->time2;add->seat=1; add->state="正常"; p2->next=add;add->next=NULL;printf("已经成功增加!\n");}void chaxunhangban1(struct lvke *head1,struct guanliyuan *head2){printf("请输入要查询航班的编号或终点!\n");string a;cin>>a;flag=0;struct guanliyuan *p2;p2=head2->next;while(p2->next!=NULL){if(p2->name==a||p2->name2==a){cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";system("pause");flag=1;break;}p2=p2->next;if(p2->name==a||p2->name2==a){cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";system("pause");flag=1;break;}}if(flag==0){printf("未查询到该航班!,请检查后重新尝试\n");hangbanguanlimenu(head1,head2);}else {system("cls");hangbanguanlimenu(head1,head2);}
}void chaxunhangban2(struct lvke *head1,struct guanliyuan *head2){printf("请输入要查询航班的编号或终点!\n");string a;cin>>a;flag=0;struct guanliyuan *p2;p2=head2->next;while(p2->next!=NULL){if(p2->name==a||p2->name2==a){cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";system("pause");flag=1;break;}p2=p2->next;if(p2->name==a||p2->name2==a){cout<<setw(18)<<setiosflags(ios::left)<<"航班编号:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班终点:";cout<<setw(18)<<setiosflags(ios::left)<<"航班总人数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班剩余座位数:";cout<<setw(18)<<setiosflags(ios::left)<<"航班起始时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班到达时间:"; cout<<setw(18)<<setiosflags(ios::left)<<"航班状态:"<<"\n"; cout<<setw(18)<<setiosflags(ios::left)<<p2->name;cout<<setw(18)<<setiosflags(ios::left)<<p2->name1;cout<<setw(18)<<setiosflags(ios::left)<<p2->name2;cout<<setw(18)<<setiosflags(ios::left)<<p2->num;cout<<setw(18)<<setiosflags(ios::left)<<p2->num-p2->seat;cout<<setw(18)<<setiosflags(ios::left)<<p2->time1;cout<<setw(18)<<setiosflags(ios::left)<<p2->time2;cout<<setw(18)<<setiosflags(ios::left)<<p2->state<<"\n";system("pause");flag=1;break;}}if(flag==0){printf("未查询到该航班!,请检查后重新尝试\n");lvkemenu(head1,head2);}else {system("cls");lvkemenu(head1,head2);}
}void lvkemenu(struct lvke *head1,struct guanliyuan *head2){system("cls");printf("            ****************************************\n");printf("            *             功能菜单界面             *\n");printf("            *     请输入相应按键获取相应功能       *\n");printf("            *            1.显示所有航班            *\n");printf("            *              2.查询机票              *\n");printf("            *              3.订票业务              *\n");printf("            *              4.退票业务              *\n");printf("            *              5.返回上级              *\n");printf("            ****************************************\n");printf("请输入你想办理的业务\n");string a;while(1){cin>>a;  if(a=="1"||a=="2"||a=="3"||a=="4"||a=="5"){break;}else{printf("您的输入有误,请检查后再次输入\n");}}if(a=="1"){printhangban1(head1,head2); system("pause");lvkemenu(head1,head2);}else if(a=="2"){chaxunhangban2(head1,head2);}else if(a=="3"){dingpiao(head1,head2);}else if(a=="4"){tuipiao(head1,head2);}else if(a=="5"){denglu(head1,head2);}}
void denglu(struct lvke *head1,struct guanliyuan *head2){ //登录界面 system("cls");printf("\t\t\t欢迎使用自助订票机\t\t\t\n");printf("\n\n\t\t\t管理员登录请按1\n");printf("\n\n\t\t\t旅客查询请按2\n");printf("\n\n\t\t\t退出程序请按3\n");string guanli="1";string lvke="2";string a;printf("\n\n\n");printf("\t\t\t\t"); cin>>a;if(a==guanli){char zhanghao1[20]="123";char mima1[20]="123";while(1){system("cls");printf("请输入账号,输入0返回上一级\n");char zhanghao[20];char mima[20];cin>>zhanghao;int x=strlen(zhanghao);if(x==1&&zhanghao[0]=='0'){denglu(head1,head2);}printf("请输入密码\n");int i=0;do{ //模拟密码星号实现 mima[i]=getch();if(mima[i]=='\r'){break;}if(mima[i]=='\b'){if(i==0){printf("\a");continue;}i=i-1;printf("\b");}else{i=i+1;printf("*");}}while(mima[i]!='\n'&&i<20);mima[i]='\0';if(strcmp(zhanghao,zhanghao1)==0&&strcmp(mima,mima1)==0){system("cls"); printf("欢迎使用南工航空管理系统\n");system("pause");break;}else{printf("\n\n");printf("账号或密码错误,请重试\n");system("pause");}}guanliyuanmenu(head1,head2);}else if(a=="2"){lvkemenu(head1,head2);}else if(a=="3"){system("cls");printf("感谢您的使用,再见!\n");return ;}else  {printf("输入错误,请检查后重试\n");system("pause");denglu(head1,head2);}}
int main()
{system("mode con cols=150 lines=30"); //黑框的长和宽 lvke *s1; guanliyuan *s2;   s1=new lvke(); //初始化旅客链表 s1->next=NULL;s2=chushihua();//初始化管理员链表 denglu(s1,s2);
}

课程设计之航空管理系统相关推荐

  1. 基于html人事管理报告,基于C++builder的课程设计报告 (人事管理系统)

    内容介绍 原文档由会员 bshhty 发布 C++builder课程设计 ( 人事信息管理系统 ) 12页 7000余字 资料包含:完整课程设计报告,源代码等相关设计资料.本课程设计为RAR个文件. ...

  2. 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的

    <JAVA数据库课程设计学生选课管理系统的>由会员分享,可在线阅读,更多相关<JAVA数据库课程设计学生选课管理系统的(59页珍藏版)>请在人人文库网上搜索. 1.一.课程设计 ...

  3. c语言用链表写管理系统程序,c语言课程设计职工信息管理系统单链表实现程序源代码-20210401015126.docx-原创力文档...

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] C语言课程设计职工信息管理系统单链表实现程序源代 ...

  4. MFC课程设计 --学生成绩管理系统

    MFC课程设计 ,C++课程设计 --学生成绩管理系统 ps:因为课设完成的过程大家都不太一样,以下的代码仅供学习一下在MFC下各个控件的用法,有问题欢迎留言讨论. 实验目的 使用MFC类库编制应用程 ...

  5. c语言课程设计(图书馆管理系统)

    大一c语言课程设计:图书馆管理系统. 图书管理系统,功能齐全拿来就能用 1.主界面 代码段 void main() { int n;Sleep(300);loop1:tongji(); printf( ...

  6. c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...

    <数据结构课程设计报告停车场管理系统>由会员分享,可在线阅读,更多相关<数据结构课程设计报告停车场管理系统(8页珍藏版)>请在人人文库网上搜索. 1.数据结构课程设计报告系 别 ...

  7. c语言课程设计宠物店,c语言课程设计-宠物店信息管理系统.doc

    c语言课程设计-宠物店信息管理系统 合肥学院 计算机科学与技术系 课程设计报告 2012-2013学年第二学期 课程面向过程综合设计课程设计名称宠物(小动物)店信息管理系统 学生姓名宋俊 学号 专业班 ...

  8. 社团c语言程序设计,C语言课程设计-大学社团管理系统.doc

    C语言课程设计-大学社团管理系统 2010/5/29 有关变量.结构体的说明: 对变量的说明: num[]是对成员的学号的定义数组,长度为不超过10个: name[]是对成员的姓名的定义数组,长度不超 ...

  9. c语言社团管理系统实验报告,C语言课程设计大学社团管理系统

    <C语言课程设计大学社团管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计大学社团管理系统(29页珍藏版)>请在人人文库网上搜索. 1.2010/5/29东北大学秦皇岛 ...

最新文章

  1. 龙芯架构应用迁移技术分享——搜狗输入法应用迁移
  2. 日志记录组件[Log4net]详细介绍(转)
  3. Enigma Virtual Box:生成可执行文件。
  4. Jenkins 设置镜像_我常用的SpringBoot+Jenkins自动化部署技巧,贼好用,推荐给大家...
  5. JSP动作标签useBean--jsp:useBean 创建一个对象
  6. InMobi收购美国Sprint旗下数据和广告公司Pinsight Media
  7. shiro(一)简介、理论知识
  8. [恢]hdu 2016
  9. 25. K 个一组翻转链表
  10. 做一个vue的todolist列表
  11. 海康威视第一季度营收165亿元 净利润22.84亿元
  12. 如何提高微信公众号流量主收入
  13. Windows安装curl
  14. Java 多线程编程
  15. Power Apps注册账户
  16. 智慧交通综合管控解决方案
  17. Agilent N5766A Power Supply 输出电压电流监测程序
  18. 计算机网络技术实训 实训总结,计算机网络技术实训报告总结.docx
  19. 实践出真知-神经网路篇-多任务学习
  20. Excel技能学习小结

热门文章

  1. 微信小程序:历史搜索及根据关键词列表查询
  2. Telegram接收群组消息和向telegram群组发送消息
  3. [转]为什么数学难学?
  4. null 和undefined的区别,以及undefined和undeclared的区别
  5. EBS 系统基本设置
  6. Zbit ZB25VQ16ASIG 16M flash
  7. Linux之--查看CPU和内存使用情况
  8. 何同学采访TimCook内容片段
  9. Pyqt 写用户界面的测试小工具
  10. CS61B 2021sp学习笔记1——project0