C++如何实现机票预订系统
这篇文章主要介绍C++如何实现机票预订系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联建站总部坐落于成都市区,致力网站建设服务有网站设计制作、成都网站建设、网络营销策划、网页设计、网站维护、公众号搭建、小程序定制开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
C++编写一个简单的机票预订系统。该程序显示一个带有下列选项的菜单:预订机票、取消预订、查看某人是否预定了机票,以及显示预订乘客。这些信息保存在一个按照字母排列的名字链表中。在程序的简化版中,假设只为一趟航班预订机票。在完全版中不再限制航班的数目。创建一个航班链表,其中每个节点都指向乘客链表的指针。
/*******************list.h**********************/ #include#include #include using namespace std; typedef struct TK{ char Name[20]; int SeatId; struct TK *next; }Ticket; typedef struct FLY { char FlightId[10]; int Seat[50]; Ticket *PersonHead; struct FLY *next; }Flight; class Person{ public: void ListInitiate(Flight **head); bool Check(int *Seat,int Ch); void Insert(Flight *head); int Delete(Flight *head); void show(Flight *head); void Search(Flight *head); void AddFlght(Flight *head); void DeleteFlght(Flight *head); }; /*******************************main.cpp**********************/ #include "list.h" int menu() { int option; cout< >option; getchar(); cout< =0&&option<=6) return option; else return -1; } int main() { cout<<"------------------------->航班管理系统<<<<-----------------------------"< PersonHead=(Ticket *)malloc(sizeof(Ticket)); (*head)->PersonHead->next=NULL; (*head)->next=NULL; for(int i=0;i<50;i++) { (*head)->Seat[i]=0; } } bool Person::Check(int *Seat,int Ch) { int i; for(int i=0;i<50;i++) { if(Ch==i&&Seat[i]!=1)return 1; } return 0; } Flight* Index(Flight *head,char *Id) { Flight *p=head->next; while(p) { if(strcmp(p->FlightId,Id)==0) { return p; } p=p->next; } return NULL; } /*******************************预定******************************/ void Person::Insert(Flight *head) { int count=0; int Ch; Flight *s=head; if(s->next==NULL) { cout<<"暂无航班!"< next; while(s!=NULL) { puts(s->FlightId); count++; if(count%5==0) cout<<"\n"; s=s->next; } count=0; char FID[10]; cout<<"输入航班ID:"; gets(FID); s=Index(head,FID); if(s==NULL) { cout<<"输入ID有误"< Seat[i]!=1) { cout<>Ch; getchar(); if(!Check(head->Seat,Ch)) { cout<<"This Seat have been booked or it is non-existent"; return ; } s->Seat[Ch]=1; char name[20]; cout< PersonHead,*q; while(p->next!=NULL) { if(strcmp(p->next->Name,name)>0) break; p=p->next; } q=(Ticket *)malloc(sizeof(Ticket)); q->next=p->next; p->next=q; strcpy(q->Name,name); q->SeatId=Ch; } /*******************************取消预定******************************/ int Person::Delete(Flight *head) { char name[20],FID[10]; cout<<"Input your Name:"; gets(name); getchar(); Flight *s; cout<<"Input the Flight ID:"; gets(FID); s=Index(head,FID); if(s==NULL) { cout<<"输入ID有误"< PersonHead->next,*pre=s->PersonHead; int flag=0; while(p!=NULL) { if(strcmp(p->Name,name)==0){ flag=1; break; } pre=p; p=p->next; } if(flag==1){ pre->next=p->next; s->Seat[p->SeatId]=0; free(p); cout<<"你的机票已经取消成功"; } else { cout<<"您还没订票\n"; return 0; } return 1; } /*******************************显示信息******************************/ void Person::show(Flight *head) { Flight *s; char FID[10]; cout<<"Input The Flight ID:"; gets(FID); s=Index(head,FID); if(s==NULL) { cout<<"输入ID有误"< PersonHead->next; if(p==NULL) { cout<<"还没乘客订票"< Name<<" 座位号:" < SeatId; p=p->next; } } /*******************************查询相关信息******************************/ void Person::Search(Flight *head) { char name[20]; cout<<"Input Your Name:"; gets(name); Flight *s; char FID[10]; cout<<"Input The Flight ID:"; gets(FID); s=Index(head,FID); if(s==NULL) { cout<<"输入ID有误"< PersonHead->next; int flag=0; while(p!=NULL) { if(strcmp(p->Name,name)==0){ flag=1; break; } p=p->next; } if(flag==1){ cout< next) { p=p->next; } ListInitiate(&q); p->next=q; strcpy(q->FlightId,FlightID); cout<<"——航班已添加成功!"; } /**********************************删除航班*******************************************/ void Person::DeleteFlght(Flight *head) { char FlightID[10]; int flag=0; Flight *p=head->next,*q=head; int count=0; Flight *s=head; if(s->next==NULL) { cout<<" 暂无航班!"< next; while(s!=NULL) { cout< FlightId< next; } cout<<" 输入航班ID:"; gets(FlightID); while(p) { if(strcmp(p->FlightId,FlightID)==0) { flag=1;break; } q=p; p=p->next; } if(flag==0) { cout<<" 该航班ID不存在!"; return ; } q->next=q->next->next; free(p); cout<<" 航班已删除!\n"; }
效果如下:
以上是“C++如何实现机票预订系统”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
本文题目:C++如何实现机票预订系统
网页路径:http://scyanting.com/article/gedsih.html