满意答案

wukong828

2013.06.16

采纳率:46%    等级:12

已帮助:10888人

#include

#include

#include

//#include

#define MAXSIZE 3

typedef struct wat_ros

{

char name[10];

int req_amt;

struct wat_ros *next;

}qnode,*qptr;

typedef struct pqueue

{

qptr front;

qptr rear;

}linkqueue;

typedef struct ord_ros

{

char name[10];

int ord_amt;

int grade;

struct ord_ros *next;

}linklist;

struct airline

{

char ter_name[10]; /* 站点名 */

char air_num[10]; /* 航班号 */

char plane_num[10]; /* 飞机号 */

char date[7]; /* 飞行日期 */

int tkt_amt; /* 乘员定额 */

int tkt_sur; /* 余票量 */

linklist *order;

linkqueue wait;

}lineinfo;

struct airline *start;

struct airline air[MAXSIZE]={

{"beijing", "1", "B8571", "SUN", 3, 1},

{"shanghai","2","S1002","MON",2,5},

{"london","3","L1003","FRI",1,3}

};;

void display(struct airline *info)

{

printf("%8s\t%3s\t%s\t%4s\t\%d\t\%d\t\n",info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur);

}

/* 浏览航线信息函数 */

void list()

{

struct airline *info;

int i = 0;

info = start;

printf("终点站名\t航班号\t飞机号\t飞行日期" "乘员定额" "余票量\n");

while(i < MAXSIZE){

display(info);

info++;

i++;

}

printf("\n\n");

}

void search()

{

struct airline *info,*find();

char name[10];

int i=0;

info=start;

printf("请输入终点站名:");

scanf("%s",name);

while(i

{

if(!strcmp(name,info->ter_name)) break;

info++;

i++;

}

if(i>=MAXSIZE)

printf("对不起,该航线未找到!\n");

else

{

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");

display(info);

}

}

struct airline *find()

{

struct airline *info;

char number[10];

int i=0;

info=start;

printf("请输入航班号:");

scanf("%s",number);

while(i

{

if(!strcmp(number,info->air_num)) return info;

info++;

i++;

}

printf("对不起,该航线末找到!\n");

return NULL;

}

/* 浏览已订票客户信息 */

void prtlink()

{

linklist *p;

struct airline *info;

info=find();

p=info->order;

if(p!=NULL){

printf("客户姓名 订票数额 舱位等级\n");

while(p){

printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);

p=p->next;

}

}

else

printf("该航线没有客户信息!!\n");

}

linklist *insertlink(linklist *head,int amount,char name[],int grade)

{ linklist *p1,*new1;

p1=head;

new1=(linklist *)malloc(sizeof(linklist));

if(!new1) {printf("\nOut of memory!!\n");return NULL;}

strcpy(new1->name,name);

new1->ord_amt=amount;

new1->grade=grade;

new1->next=NULL;

if(head==NULL)

{head=new1;new1->next=NULL;}

else

head=new1;

new1->next=p1;

return head;

}

linkqueue appendqueue(linkqueue q,char name[],int amount)

{ qptr new1;

new1=(qptr)malloc(sizeof(qnode));

strcpy(new1->name,name);

new1->req_amt=amount;

new1->next=NULL;

if(q.front==NULL)

q.front=new1;

else

q.rear->next=new1;

q.rear=new1;

return q;

}

void order()

{ struct airline *info;

int amount,grade;

char name[10];

info=start;

if(!(info=find())) return;

printf("请输入你订票所需要的数量:");

scanf("%d",&amount);

if(amount>info->tkt_amt)

{ printf("\n对不起,您输入的票的数量已经超过乘员定额!");

return;

}

if(amount<=info->tkt_sur)

{

int i;

printf("请输入您的姓名(订票客户):");

scanf("%s",name);

printf("请输入%s票的舱位等级:",name);

scanf("%d",&grade);

info->order=insertlink(info->order,amount,name,grade);

for(i=0;i

printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);

info->tkt_sur-=amount;

printf("\n祝您乘坐愉快!\n");

}

else

{ char r;

printf("\n已经没有更多的票,您需要排队等候吗?(Y/N)");

//r=getch();

//printf("%c",r);

scanf ( "回车继续等待%c", &r );

if(r=='Y'||r=='y')

{ printf("\n请输入您的姓名(排队订票客户):");

scanf("%s",name);

info->wait=appendqueue(info->wait,name,amount);

printf("\n注册成功!\n");

}

else printf("\n欢迎您下次再次订购!\n");

}

}

void return_tkt()

{ struct airline *info;

qnode *t,*back,*f,*r;

int grade;

linklist *p1,*p2,*head;

char cusname[10];

if(!(info=find())) return;

head=info->order;

p1=head;

printf("请输入你的姓名(退票客户):");

scanf("%s",cusname);

while(p1!=NULL) {

if(!strcmp(cusname,p1->name)) break;

p2=p1;p1=p1->next;

}

if(p1==NULL){ printf("对不起,你没有订过票!\n");return;}

else

{

if(p1==head) head=p1->next;

else p2->next=p1->next;

info->tkt_sur+=p1->ord_amt;

grade=p1->grade;

printf("%s成功退票!\n",p1->name);

free(p1);

}

info->order=head;

f=(info->wait).front;

r=(info->wait).rear;

t=f;

while(t)

{

if((info->tkt_sur = info->wait.front->req_amt))

{

int i;

info->wait.front=t->next;

printf("%s订票成功!\n",t->name);

for(i=0;ireq_amt;i++)

printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);

info->tkt_sur-=t->req_amt;

info->order=insertlink(info->order,t->req_amt,t->name,grade);

free(t);

break;

}

back=t;t=t->next;

if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)

{ int i;

back->next=t->next;

printf("%s订票成功!\n",t->name);

for(i=0;ireq_amt;i++)

printf("'s seat number is:%d\n",t->name,(info->tkt_sur)-i);

info->tkt_sur-=t->req_amt;

info->order=insertlink(info->order,t->req_amt,t->name,grade);

free(t);break;

}

if(f==r) break;

}

}

void sort_tkt()

{

int j;

struct airline t,*info,*p,*q;

p=info=air;

for(p=info;(p+1)->tkt_sur;p++)

for(q=p+1;q->tkt_sur;q++)

{

if(p->tkt_surtkt_sur)

{

t=*p;

*p=*q;

*q=t;

}

}

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");

for(j=0;j

{

display(info);

info++;

}

}

int menu_select()

{

int c;

char s[20];

printf("\n\t\t 航空客运订票系统(by zjhxmjl)\n");

printf(" ******************************************\n");

printf(" ** 1.浏览航线信息 **\n");

printf(" ** 2.浏览已订票客户信息 **\n");

printf(" ** 3.查询航线 **\n");

printf(" ** 4.办理订票业务 **\n");

printf(" ** 5.办理退票业务 **\n");

printf(" ** 6.查看剩余票数并排序 **\n");

printf(" ** 0.退出系统 **\n");

printf(" *******************************************\n");

do

{

printf("请选择:");

scanf("%s",s);

c = atoi(s); /* atoi将字符串转换为整型 */

}while(c < 0||c > 7);

return c;

}

int main()

{

start = air;

for(;;)

{

switch(menu_select())

{

case 1:list();break;

case 2:prtlink();break;

case 3:search();break;

case 4:order();break;

case 5:return_tkt();break;

case 6:sort_tkt();break;

case 0:printf("\n欢迎使用本系统,再见!\n");exit(0);

}

printf("\nPress any key to continue!\n");

getchar();

}

return 0;

}

61分享举报

飞机订票系统c语言常见错误,编写C语言:飞机订票系统相关推荐

  1. c语言编译错误 原文,C语言常见错误与警告

    C语言常见错误与警告 C语言常见错误与警告C语言常见错误: 1 invalid type argument of '->' (have 'struct qstr_xid_element') 这种 ...

  2. c语言初学者常见错误归纳,C语言中常见错误分析.doc

    C语言中常见错误分析 摘要:C语言是许多高校开设的第一门程序设计语言,使用方便灵活.根据C语言的特点,并结合实际教学,对在编程中经常遇到的错误进行分析.总结,为初学者尽快掌握C语言,提高程序设计水平提 ...

  3. c语言编译常见错误提示,c语言编译常见错误

    c语言编译常见错误 (2012-04-17 21:33:53) 标签: 杂谈 分类: 计算机 1."c" not an argument in function sum 该标识符不 ...

  4. c语言常见错误代码释义,C语言常见错误代码释义解析.doc

    C语言常见错误代码释义解析 C语言常见错误代码释义 错误代码及错误信息 错误释义error 1: Out of memory 内存溢出error 2: Identifier expected 缺标识符 ...

  5. 利用c语言设置密码错误循环,c语言运算符优先级与while循环案例

    sizeof可以获取数据类型的内存中的大小(字节) #include #include // standared 标准 // input output 输入/输出 // header 头 .h头文件 ...

  6. c语言scanf错误c4996,C语言杂谈(一)scanf()、scanf_s()与错误 C4996

    错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...

  7. xcode编程c语言,使用xcode编写c语言的方法介绍

    使用xcode编写c语言的方法介绍 发布时间:2020-03-26 17:08:31 来源:亿速云 阅读:149 作者:小新 今天小编分享的是使用xcode编写c语言的方法介绍,可能大家对xcode并 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. c语言scanf错误c4996,C语言常见错误杂谈(一)scanf()、scanf_s()与错误 C4996与解决方法...

    错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...

最新文章

  1. SpringMVC 异常统一处理
  2. 参数整定临界比例度实验_控制算法手记自动整定方法初步
  3. IBM WebSphere MQ 7.5基本用法
  4. [Snoi2017]炸弹
  5. IntelliJ IDEA(二) :面板介绍
  6. 多媒体计算机在英语学科的应用,多媒体计算机应用于初中英语学科学习教学的研究...
  7. 国内芯片60个细分领域重要代表企业【收藏】
  8. 中小学信息学相关比赛汇总(C++类)
  9. @Resource注解使用详解
  10. Gtk与Cuda混合编程
  11. openerp mysql_Odoo字段(Fields)总结-至2020全
  12. 闰年流程图——18网三杨捷
  13. Carbon Copy Cloner for Mac(磁盘克隆/同步/备份工具)直装版
  14. 实验题目用正交多项式做小二乘曲线拟合
  15. AD09 pcb绘制技巧笔记
  16. 【自学C语言】自学C语言之与,或,异或关系
  17. python 批量下载视频_python实现抖音视频批量下载
  18. elisa标准曲线怎么做_如何拟合Elisa标准曲线
  19. 【Python爬虫实战】 图片爬虫-淘宝图片爬虫--千图网图片爬虫
  20. 二十分钟精通排版神器Markdown,从此word和秀米是路人

热门文章

  1. 大学计划|关于举办《数字化转型赋能教育创新发展高峰论坛》的通知
  2. 收款分账系统是什么?市面上哪家收款分账系统比较好?
  3. php支付宝第三方授权,原生 PHP 实现支付宝 App 第三方登录获取用户信息,_PHP_ 少侠科技...
  4. HTML实现点击阅读导航,跳转到页面这个内容的开始部分。
  5. 为啥不用PC机做物联网关?物联网关有啥特征?工业物联网产业的发展之道?
  6. jpg转成pdf在线
  7. 数字之暖:鹅厂云原生的“新路”与“历承”
  8. 闲鱼修改资料服务器忙,闲鱼怎么修改个人资料? 闲鱼修改基本资料教程
  9. 计算机网络原理实践报告--跨国公司,通过运营商网络如何实现总部公司与各分公司之间的网络互通
  10. 传统企业转型互联网的十大死法