展开全部

#include

#include

#include

#include

#include

#include

#include //overflow

#define ok 1

typedef struct Yidingkehu

{//单链表

char name[15];//已订票的客户姓名

int dingpiaoshu;//已订票数量

struct Yidingkehu *next1;//

}Yidingkehu,*Link;

typedef struct Weidingkehu

{//单链队

char name[15];//预订票的客户姓名

int yudingpiao;// 要订票数量

struct Weidingkehu *next2;//下一e68a8462616964757a686964616f31333363386138个链队结点指针

}Weidingkehu,*Qptr;

typedef struct Hangxian

{//创建一个含有六个信息的结构体

char hangbanhao[15];//航班号-

char feijihao[15];//飞机号

int feixingriqi;//起飞时间

int chenkerenshu;//座位数

int yupiao;//余票

char zhongdianzhai[15];//降落城市

struct Hangxian *next;//指向下一个链结点的指针

struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针

struct Weidingkehu *yudingqueue;

}Hangxian,*Linklist;

Linklist InitLinklist();//01

int InsertLinklist(Linklist &head1);//02

void hbhchaxun();//通过航班号查询

void mddchaxun();//通过目的地查询

void lurugongneng();//初始化录入功能

void chaxungongnen();//查询功能

void dingpiaogongnen();//订票功能

void tuipiaogongnen();//退票功能

void main()

{

int n;

do{ //打印主界面

printf("\t 欢迎使用航空客运订票系统\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t==>1. 录入功能 ==\n");

printf("\t==>2. 查询功能 ==\n");

printf("\t==>3. 订票功能 ==\n");

printf("\t==>4. 退票功能 ==\n");

printf("\t==>5. 退出 ==\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t请选择:");

scanf("%d",&n);printf("\n");

switch(n)

{

case 1: lurugongneng();//录入功能

break;

case 2: chaxungongnen();//查询功能

break;

case 3: dingpiaogongnen();//订票功能

break;

case 4:tuipiaogongnen();//退票功能

break;

default :exit(0);//退出

}

}while(n==1||n==2||n==3||n==4);

}

void lurugongneng()//初始化的单链表*********************************************************录入功能

{

Linklist p;

//int m,n;

if(!p) exit(OVERFLOW);

printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象

printf("航班号\n");

gets(p->hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车

gets(p->hangbanhao);

printf("飞机号\n");

gets(p->feijihao);

printf("终点站\n");

gets(p->zhongdianzhai);

printf("飞行日期\n");

scanf("%d",&p->feixingriqi);

printf("乘客总数\n");

scanf("%d",&p->chenkerenshu);

printf("余票数\n");

scanf("%d",&p->yupiao);

}

void chaxungongnen()//******************************************************************查询功能

{

int n;

printf("\t 查 找 航 线 信 息 \n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t==>1. 通过目的地查询 ==\n");

printf("\t==>2. 通过航班号查询 ==\n");

printf("\t+++++++++++++++++++++++++++++\n");

printf("\t请选择:");

scanf("%d",&n);

printf("\n");//格式化

switch(n)

{

case 1:mddchaxun();

break;

case 2:hbhchaxun();

break;

default :break;

}

}

void mddchaxun()//通过目的地查询

{

char c[15];

int m;

Linklist p=L;

printf("\t请输入要查询的目的地:");

gets(c);

gets(c);//原因同上

do{

p=p->next;

if(p)

{

m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;

if(m==0)

{

printf("\t航班信息:\n");

printf("\t航班号:%s\n",p->hangbanhao);

printf("\t飞机号:%s\n",p->feijihao);

printf("\t飞行时间:周%d\n",p->feixingriqi);

printf("\t余票量:%d\n",p->yupiao);

}

}

else

{//如果不匹配的话就做

printf("\t对不起没有你要找的目的地:\n\n"); m=0;

}

}while(m!=0);

}

void hbhchaxun()//通过目的地查询

{

char c[15];

int m;

Linklist p=L;

printf("\t请输入要查询的航班号:");

gets(c); gets(c);printf("\n");

do{

p=p->next;

if(p)

{

m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p->的作用是一样的

if(m==0)

{

printf("\t航班信息:\n");

printf("\t航班号:%s\n",p->hangbanhao);

printf("\t飞机号:%s\n",p->feijihao);

printf("\t飞行时间:周%d\n",p->feixingriqi);

printf("\t余票量:%d\n\n",p->yupiao);

}

}

else

{//如果不匹配的话就做

printf("\t对不起没有你要找的航班号:\n"); m=0;

}

}while(m!=0);

}

void dingpiaogongnen()//***************************************************************订票功能

{

char c[15];

int m=1,piao,ydpiao=0,yd=0,n;//

gets(c);

printf("请输入终点站名:"); gets(c); printf("\n");

p=L->next;

if(p) {

do{//查找一下,是否有这个航班

if(!p)

{

printf("对不起,没有你要找的航班:\n\n");

goto loop1;

}

m=strcmpi(p->zhongdianzhai,c);

if(m==0)

{

printf("航班信息:\n");

printf("航班号:%s\n",p->hangbanhao);

printf("飞机号:%s\n",p->feijihao);

printf("飞行时间:周%d\n",p->feixingriqi);

printf("余票量:%d\n",p->yupiao);}

else p=p->next;

}while(m!=0);

if(m==0)

{

do{

printf("\n请输入你要订的票数:"); scanf("%d",&piao);

if(piao<=p->yupiao)

{

h=p->yiding;

if(h)

{

h1=h;

h=h->next1;

h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));

printf("请输入你的名字:");

gets(h->name);gets(h->name);

h->dingpiaoshu=piao;

h->next1=h1->next1;

h1->next1=h;

p->yupiao=p->yupiao-piao;

printf("订票成功:\n"); m=2;

}

}

else

{

printf("余票量:%d\n",p->yupiao);

printf("对不起,余票 %d 张不足,不能完成订票\n\n",p->yupiao);

printf(" 是否要重新订票?\n");

printf("需要请输入1 否则请按2 预订请输入3 : ");

scanf("%d",&m);

printf("\n");

if(m==3) goto loop3;

}

}while(m==1);

}

}

else if(!p)

{

loop3: struct Weidingkehu *q3;

printf("对不起,该航班的票已售完\n");

q.front=p->yudingqueue;

if(q.front==q.rear) printf("没有人预订票,是否要预订?\n");

else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");

printf("预订请输入1 否则输入2 : ");

scanf("%d",&n);

printf("\n");

if(n==1)

{

printf("请输入你的姓名"); gets(q3->name); gets(q3->name);//q3不能指向name???

printf("请输入订票数"); scanf("%d",&q3->yudingpiao);

q3->next2=NULL;

q.rear->next2=q3;

q.rear=q3;

printf(" 你已经预订了 !\n");

}

}

loop1:;

}

void tuipiaogongnen()//***************************************************************退票功能

{

}

///以下是人家的要求//

1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。

2、本系统显示这样的菜单:

(1) 输入航班信息

(2) 输出航班信息

(3) 查找航班信息

a.显示空座的数量

b.显示空座的信息

c.显示已订座的信息

d.起飞时间

(4)订票预约

(5)删除定票预约

(6)退出系统

1、 本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。

2、 查找航班信息既可按线路查,也可按目的地查。

4、在两次运行之间,数据被保存于一个文件里,当本程序重新开

始的时候,它首先从该文件读入数据

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

c语言机票座位预定系统_c语言编写~~~机票座位预订系统相关推荐

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

    javaweb JAVA JSP电影院在线订票系统JSP电影购票系统 JSP电影售票 JSP电影票预订系统支持在线选座jsp电影票预订系统 protected void doGet(HttpServl ...

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

    javawebJSP电影院在线订票系统JSP电影购票系统 JSP电影售票 JSP电影票预订系统(支持在线选座) protected void doGet(HttpServletRequest req, ...

  3. 校园导游系统_C语言实现_Dijkstra(迪杰斯特拉算法)_数据结构

    西京学院导游系统 摘要   要完成对整个导游图系统的功能实现,需要对每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现和需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确 ...

  4. vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt

    第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...

  5. c语言最小点对问题_C语言教程(一):程序开发理论基础!

    前言: 1.本系列教程适用于刚开始学习 C 语言的同学,或者初级开发者,或者想系统详细了解 C 语言的小伙伴. 2.本系列教程会从C语言基础到 C 语言高级语法,包含 C 语言所有系列. C语言简介 ...

  6. c语言prime函数怎么用_C语言教程_v20201106

    编程基础 1.1    通俗地理解什么是编程语言 1.2    C语言究竟是一门怎样的语言? 1.6    初中毕业能学会编程吗? 1.7    C和C++到底有什么关系? 1.8    学了 C 语 ...

  7. c语言string函数的用法_C语言基础| 指针和函数

    点击蓝字关注我们 指针和函数 栈帧:当函数被调用时,系统会在stack空间上申请一块内存,用来给函数提供空间,存储形参和局部变量(定义在函数内部的变量). 当函数调用结束时,这块内存空间会被自动释放( ...

  8. c程序设计语言 qsort,【程序设计基础_C语言】北理工的恶龙(附qsort范例)

    [程序设计基础_C语言]北理工的恶龙(附qsort实例) 北理工的恶龙(附qsort实例) 背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集 ...

  9. c语言prime函数怎么用_C语言 要发就发

    点击上方"蓝字"关注我们 愉快的一天,不得不做的三件事: 种田,锄地,整代码!!! [题目] "1898--要发就发".请将不超过1993的所有素数从小到大排成 ...

  10. c语言代码大全表解释_C语言常用错误代码释义大全,值得收藏!

    对于刚学编程,刚接触C++的新手来说,编译运行报错是最头疼的一件事,爆出一堆英文,英语差一点的又不知道什么意思,所以也不知道如何去改,在此,我给大家传一份常见错误中英文对照表及简单解释,希望可以帮到大 ...

最新文章

  1. Ecol. Lett. | 生态学实验设计中“梯度实验”和“重复实验”的抉择
  2. 蓝牙L2CAP剖析(一)
  3. Dubbo环境搭建-ZooKeeper注册中心
  4. 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
  5. java面向对象-------类属性和方法,不同类之间调用
  6. 技术管理规划-从哪入手?
  7. React开发(135):ant design学习指南之form中动态form新增删除
  8. Redis入门篇(安装与启动)
  9. 第二章 html标记语言,第二章-认识HTML标签
  10. 团体程序设计天梯赛-练习集L1-002. 打印沙漏
  11. 动软代码生成器v2.78Mysql备注生成完美修复dll
  12. ScreenCapture API – QTP截屏工具
  13. 认识智慧城市顶层设计的MCS模式
  14. 网络原理考试到ADSL上网原理
  15. 企查查网站信息爬取1.0版
  16. canvas教程11-渐变
  17. easyui-linkbutton 链接类型的按钮
  18. 2020高考倒计时html,最新2020高考倒计时祝福语
  19. java user.dir 设置_关于user.dir的认识
  20. mysql 给用户取消权限_MySQL创建用户并授权及撤销用户权限

热门文章

  1. word 文本框插入图片
  2. Java如何解析个人或他人微信二维码内的信息
  3. 2021年茶艺师(初级)考试技巧及茶艺师(初级)试题及解析
  4. 【黄啊码】解决微信小程序showToast不显示
  5. 一篇不错的网文 闻鸡起舞早耕耘,天道酬勤有志人
  6. ViewData与ViewBag的区别是什么
  7. 使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板
  8. 编程将一个整数分解成一个质因数的连乘积,并打印在屏幕上
  9. java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...
  10. [Python] 你的BMI是多少呢?