c语言航空标准,c语言航空订票系统..docx

航空客运订票系统

姓名:XXX 班级:XXXX 学号:XXXXXXXXX

目录

TOC \o "1-5" \h \z 一、问题描述 ..1

二、设计要求…??1

\o "Current Document" 三、数据结构设计??2

\o "Current Document" 四、详细设计程序??3

五、运行与测试…… 9

六、收获及体会 ??13

一、问题描述

设计一个航空客运订票系统,为乘客提供各种航空客运信息服务。

二、设计要求

每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、乘员定额、 余票量、已订票的客户名单(包括姓名、订票量、舱位等级 1, 2或3)以及等候替补的客户 名单(包括姓名、所需票量);

系统能实现的操作和功能如下:

a)查询航线:

根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的

日期和余票额;

b)承办订票业务:

根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户

办理订票手续,

输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排

队候补;

c)承办退票业务:

根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队 候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则 依次询问其他排队候补的客户。

三、数据结构设计

a)等候替补的客户名单(包括姓名、所需票量)

typedef struct wat_ros

{ char name[10];/* 姓名 */

int req_amt;/* 订票量 */

struct wat_ros *n ext;

}qno de,*qptr;

typedef struct pqueu

{ qptr front;/*等候替补客户名单域的头指针*/

qptr rear;/*等候替补客户名单域的属指针*/

}li nkqueue;

b) 订票的客户名单(包括姓名、订票量、舱位等级1,2或3)

typedef struct ord_ros

{ char name[10];/* 客户姓名 */

int ord_amt;/* 订票量 */

int grade;/* 舱位等级 */

struct ord_ros *n ext;

}li nklist;

C)每条航线所涉及的信息:终点站名、航班号、飞机号、飞行日(星期几) 、乘员定额、余 票量、已订票的客户名单、以及等候替补的客户名单

struct airli ne

{ char zong_name[10];/* 终点站名 */

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

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

char date[7];/*飞行日期(星期几)*/

int tkt_amt;/* 乘员定额 */

int tkt_sur;/* 余票量 */

linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/

linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/

}li nei nfo;

四、详细设计程序

主函数:

int menu _select()

/*菜单界面*/

{ int c;

char s[20];

prin tf("\n\t\t航空客运订票系统\n");

prin tf("******************************************\n");

printf(”

1.

浏览航线信息\n");

printf(”

2.

浏览已订票客户信息

\n")

printf(”

3.

查询航线\n");

printf(”

4.

办理订票业务\n");

printf(”

5.

办理退票业务\n");

printf(”

6.

查看剩余票数并排序

\n")

prin tf("

0.

退出系统\n");

prin tf("*******************************************\n")?

do{

printf(" 请选择:”);

scan f("%s",s);

c=atoi(s);

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

return c;

}

void mai n()

{

start=air;

for(;;)

{

switch(me nu _select())

{

case 1:list();break;

case 2:prtli nk();break;

case 3:search();break;

case 4:order();break;

case 5:retur n_tkt();br

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值