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<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cin>>option;

getchar();

cout<

if(option>=0&&option<=6)

return option;

else

return -1;

}

int main()

{

cout<航班管理系统<<<

cout<

Flight *head;

Person P;

P.ListInitiate(&head);

while(true)

{

switch(menu( ))

{

case 1:P.Insert(head);break; //预订

case 2:P.Delete(head);break; //取消

case 3:P.show(head);break; //显示

case 4:P.Search(head);break; //查询

case 5:P.AddFlght(head);break; //添加航班

case 6:P.DeleteFlght(head);break; //删除航班

case 0:exit(0);

default:cout<

}

}

return 0;

}

/*****************************************passenger.cpp*************************/

#include "List.h"

void Person::ListInitiate(Flight **head)

{

int count=0;

*head = (Flight *)malloc(sizeof(Flight));

(*head)->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<

return ;

}

cout<

s=s->next;

while(s!=NULL)

{

puts(s->FlightId);

count++;

if(count%5==0)

cout<

s=s->next;

}

count=0;

char FID[10];

cout<

gets(FID);

s=Index(head,FID);

if(s==NULL)

{

cout<

return;

}

cout<

cout<

for(int i=0;i<50;i++)

{

if(s->Seat[i]!=1)

{

cout<

count++;

if(count%5==0)

cout<

}

}

cout<

cout<

cin>>Ch;

getchar();

if(!Check(head->Seat,Ch))

{

cout<

return ;

}

s->Seat[Ch]=1;

char name[20];

cout<

cout<

gets(name);

Ticket *p=s->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<

gets(name);

getchar();

Flight *s;

cout<

gets(FID);

s=Index(head,FID);

if(s==NULL)

{

cout<

return 0;

}

Ticket *p=s->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<

return 0;

}

return 1;

}

/*******************************显示信息******************************/

void Person::show(Flight *head)

{

Flight *s;

char FID[10];

cout<

gets(FID);

s=Index(head,FID);

if(s==NULL)

{

cout<

return;

}

Ticket *p=s->PersonHead->next;

if(p==NULL)

{

cout<

return;

}

while(p!=NULL)

{

cout<Name<SeatId;

p=p->next;

}

}

/*******************************查询相关信息******************************/

void Person::Search(Flight *head)

{

char name[20];

cout<

gets(name);

Flight *s;

char FID[10];

cout<

gets(FID);

s=Index(head,FID);

if(s==NULL)

{

cout<

return;

}

Ticket *p=s->PersonHead->next;

int flag=0;

while(p!=NULL)

{

if(strcmp(p->Name,name)==0){

flag=1;

break;

}

p=p->next;

}

if(flag==1){

cout<

}

else

{

cout<

}

}

/*******************************增加航班**********************************/

void Person::AddFlght(Flight *head)

{

char FlightID[10];

Flight *p=head,*q;

cout<

gets(FlightID);

while(p->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<

return ;

}

cout<

s=s->next;

while(s!=NULL)

{

cout<FlightId<

count++;

if(count%5==0)

cout<

s=s->next;

}

cout<

gets(FlightID);

while(p)

{

if(strcmp(p->FlightId,FlightID)==0)

{

flag=1;break;

}

q=p;

p=p->next;

}

if(flag==0)

{

cout<

return ;

}

q->next=q->next->next;

free(p);

cout<

}

效果如下:

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: C++实现机票预订系统

本文地址: http://www.cppcns.com/ruanjian/c/250892.html

c语言机票座位预定系统_C++实现机票预订系统相关推荐

  1. javaweb JSP JAVA 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)

    javaweb JSP 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)(支持在线选座)

  2. javaweb JSP JAVA 电影院在线订票系统(ssm电影购票系统 电影售票 电影票预订系统)(支持在线选座)

    JSP JAVA 电影院在线订票系统(ssm电影购票系统 电影售票 电影票预订系统)(支持在线选座)

  3. WooCommerce Bookings 电子商务预订系统评测 – 创建WordPress预订系统有多好?

    谈到电子商务,WooCommerce是最好的WordPress插件.有许多附加组件可用于在网站中包含各种功能.例如,您可以通过在您的网站上添加"WooCommerce Bookings&qu ...

  4. c语言机票座位预定系统_C语言实现飞机订票系统

    问题描述与题目要求 问题描述: 假定某民航有M个航次的班机,每个航次都只到达一个地方.试为该机场售票处设计一个自动订票和退票系统,要求系统具有以下功能: (1) 订票:若该航次余票大于等于乘客订票数, ...

  5. c语言机票座位预定系统_c语言编写~~~机票座位预订系统

    展开全部 #include #include #include #include #include #include #include //overflow #define ok 1 typedef ...

  6. c语言机票座位预定系统_飞机票系统设计(C语言版)

    #include  //标准输入.输出头文件 #include    //包含字符串函数处理头文件 #include     //包含动态存储与释放函数头文件 #define N 10000 stru ...

  7. c语言机票座位预定系统_课内资源 - 基于C语言的飞机票预订系统

    1 解题思路 本题需要综合使用数据结构的知识.以此,将航班数据设计成链表形式即定义结构体,其中包含飞机序号,登机口作为数据域,next作为指针域,将此结构体称为Node.将乘客信息设计成特殊的结构体, ...

  8. javaweb JSP JAVA 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)(在线选座)

    常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房,屋租赁,教务管理,医院管理,餐厅收银,来访咨询,兼职论坛,桌面聊天室,酒店管理,民宿管理,车位租赁,音 ...

  9. javaweb JSP JAVA 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)(支持在线选座)

最新文章

  1. 黑客必知的SQL语句 黑客知道,程序员必知
  2. 中考考试的指令广播_明天FM105.2《朝朝早精神好》推出2017广州中考日特别报道...
  3. 信息学奥赛一本通 2072:【例2.15】歌手大奖赛
  4. Python实现堆排序
  5. MySQL 备份与恢复
  6. Python文件读写——使用“with open ... as f”进行文件打开的操作
  7. 奇怪的Residential Gateway Device设备
  8. python unicode函数_python 中的unicode详解
  9. Python 编程语言
  10. 图片放大镜 jQuery插件
  11. google浏览器flash插件
  12. 【UAV】光流传感器原理分析及讲解
  13. Aurora使用技巧详解
  14. 超声波传感器(CHx01) 学习笔记 Ⅳ- 程序移植
  15. 超出省略号,el-tooltip悬停展示全部的简单实现
  16. ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map
  17. Mysql的插件下载流程
  18. 接口练习--设计一个辅助英雄 接口实现技能治疗
  19. OpenAI Codex、DeepMind AlphaCode论文精读阅读笔记
  20. IPFS云服务器预售登录系统,北宁ipfs云算力预售,IPFS社区社区

热门文章

  1. Warning:JKS 密钥库使用专用格式。建议使用 keytool -importkeystore -srckeystore...pkcs12 迁移到行业标准格式 PKCS12
  2. stm32f103运行python_microPython 有没有在 STM32F103上运行的固件
  3. 锂离子/锂聚合物电池保护 IC原理
  4. Qt中常用的3种提示框设计方法
  5. 20公里内无线触摸屏1主多从环境搭建简述
  6. Easycodecubu的ISP方式烧录不成功的解决方法
  7. python解二元一次方程组 迭代法_使用python实现高斯-赛德尔迭代法的简单运算
  8. 魔力魔力哟部署与安装文档
  9. zeta sizer_使用Sizer轻松将Windows调整为特定尺寸
  10. 第1关:使用C/C++语言编写PL/0编译程序的词法分析程序