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<
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++实现机票预订系统相关推荐
- javaweb JSP JAVA 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)
javaweb JSP 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)(支持在线选座)
- javaweb JSP JAVA 电影院在线订票系统(ssm电影购票系统 电影售票 电影票预订系统)(支持在线选座)
JSP JAVA 电影院在线订票系统(ssm电影购票系统 电影售票 电影票预订系统)(支持在线选座)
- WooCommerce Bookings 电子商务预订系统评测 – 创建WordPress预订系统有多好?
谈到电子商务,WooCommerce是最好的WordPress插件.有许多附加组件可用于在网站中包含各种功能.例如,您可以通过在您的网站上添加"WooCommerce Bookings&qu ...
- c语言机票座位预定系统_C语言实现飞机订票系统
问题描述与题目要求 问题描述: 假定某民航有M个航次的班机,每个航次都只到达一个地方.试为该机场售票处设计一个自动订票和退票系统,要求系统具有以下功能: (1) 订票:若该航次余票大于等于乘客订票数, ...
- c语言机票座位预定系统_c语言编写~~~机票座位预订系统
展开全部 #include #include #include #include #include #include #include //overflow #define ok 1 typedef ...
- c语言机票座位预定系统_飞机票系统设计(C语言版)
#include //标准输入.输出头文件 #include //包含字符串函数处理头文件 #include //包含动态存储与释放函数头文件 #define N 10000 stru ...
- c语言机票座位预定系统_课内资源 - 基于C语言的飞机票预订系统
1 解题思路 本题需要综合使用数据结构的知识.以此,将航班数据设计成链表形式即定义结构体,其中包含飞机序号,登机口作为数据域,next作为指针域,将此结构体称为Node.将乘客信息设计成特殊的结构体, ...
- javaweb JSP JAVA 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)(在线选座)
常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房,屋租赁,教务管理,医院管理,餐厅收银,来访咨询,兼职论坛,桌面聊天室,酒店管理,民宿管理,车位租赁,音 ...
- javaweb JSP JAVA 电影院在线订票系统(电影购票系统 电影售票 电影票预订系统)(支持在线选座)
最新文章
- 黑客必知的SQL语句 黑客知道,程序员必知
- 中考考试的指令广播_明天FM105.2《朝朝早精神好》推出2017广州中考日特别报道...
- 信息学奥赛一本通 2072:【例2.15】歌手大奖赛
- Python实现堆排序
- MySQL 备份与恢复
- Python文件读写——使用“with open ... as f”进行文件打开的操作
- 奇怪的Residential Gateway Device设备
- python unicode函数_python 中的unicode详解
- Python 编程语言
- 图片放大镜 jQuery插件
- google浏览器flash插件
- 【UAV】光流传感器原理分析及讲解
- Aurora使用技巧详解
- 超声波传感器(CHx01) 学习笔记 Ⅳ- 程序移植
- 超出省略号,el-tooltip悬停展示全部的简单实现
- ES6-ES11-第一部分-let、const、解构赋值、模板字符串、简化对象写法、箭头函数、函数参数默认值、rest 参数、扩展运算符、Symbol、迭代器、生成器、Promise、Set、Map
- Mysql的插件下载流程
- 接口练习--设计一个辅助英雄 接口实现技能治疗
- OpenAI Codex、DeepMind AlphaCode论文精读阅读笔记
- IPFS云服务器预售登录系统,北宁ipfs云算力预售,IPFS社区社区
热门文章
- Warning:JKS 密钥库使用专用格式。建议使用 keytool -importkeystore -srckeystore...pkcs12 迁移到行业标准格式 PKCS12
- stm32f103运行python_microPython 有没有在 STM32F103上运行的固件
- 锂离子/锂聚合物电池保护 IC原理
- Qt中常用的3种提示框设计方法
- 20公里内无线触摸屏1主多从环境搭建简述
- Easycodecubu的ISP方式烧录不成功的解决方法
- python解二元一次方程组 迭代法_使用python实现高斯-赛德尔迭代法的简单运算
- 魔力魔力哟部署与安装文档
- zeta sizer_使用Sizer轻松将Windows调整为特定尺寸
- 第1关:使用C/C++语言编写PL/0编译程序的词法分析程序