#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*航班信息*/
typedef struct flight
{
char flight_number[10];
char start_city[10];
char arrive_city[10];
char price[5];
char discount[5];
int left_ticket;
}flight_infor;
//客户信息
typedef struct node2
{
char name[10];
char id[10];
}order;
/*航班单链表的定义*/
typedef struct node1
{
flight_infor flight_news;
struct node1 *next;
}flight_list;
flight_list *head1;
//初始化航班单链表
flight_list *inist_flight()
{
head1=(flight_list *)malloc(sizeof(flight_list));
head1->next=NULL;
return(head1);
}
/*1.输入航班信息*/
flight_list *flight_creat()
{
flight_infor m;
flight_list *p1,*rear1;
rear1=head1;
printf("\n请输入航班信息以航班号为字符#作为结束标志:\n");
printf("\n航班号 出发城市 到达城市 价格 打折 剩余座位:\n");
scanf("%s%s%s%s%s%d",m.flight_number,m.start_city,m.arrive_city,m.price,m.discount,&m.left_ticket);
while(strcmp(m.flight_number,"#")!=0)
{
p1=(flight_list *)malloc(sizeof(flight_list));
strcpy(p1->flight_news.flight_number,m.flight_number);
strcpy(p1->flight_news.start_city,m.start_city);
strcpy(p1->flight_news.arrive_city,m.arrive_city);
strcpy(p1->flight_news.price,m.price);
strcpy(p1->flight_news.discount,m.discount);
p1->flight_news.left_ticket=m.left_ticket;
rear1->next=p1;
rear1=p1;
scanf("%s%s%s%s%s%d",m.flight_number,m.start_city,m.arrive_city,m.price,m.discount,&m.left_ticket);
}
rear1->next=NULL;
return(head1);
}
/*2.显示所有航班信息*/
void list_flight()
{
flight_list *p;
p=head1->next;
if(p==NULL)
printf("\n\t对不起!没有航班信息\t\n");
else
{
printf("\n\t所有航班信息如下所示\t\n");
printf("\n\t-----------------------\t\n");
printf("\n\t航班号 出发城市 到达城市 价格 打折 剩余座位\n");
do{
printf("\n\t%-5s%-5s%-5s%-5s%-5s%d\t\n",p->flight_news.flight_number,p->flight_news.start_city,p->flight_news.arrive_city,
p->flight_news.price,p->flight_news.discount,p->flight_news.left_ticket);
p=p->next;
}while(p!=NULL);
printf("\n\t-----------------------\t\n");
}
}
/*修改航班信息*/
flight_list *change_flight()
{
flight_list *p;
flight_infor w;
char m[10];
printf("\n请输入航班号:");
scanf("%s",m);
p=head1->next;
while(p!=NULL&&strcmp(p->flight_news.flight_number,m)!=0)
p=p->next;
if(p!=NULL)
{
printf("\n请输入出发城市 到达城市 价格 打折\n");
scanf("%s%s%s%s",w.start_city,w.arrive_city,w.price,w.discount);
strcpy(p->flight_news.start_city,w.start_city);
strcpy(p->flight_news.arrive_city,w.arrive_city);
strcpy(p->flight_news.price,w.price);
strcpy(p->flight_news.discount,w.discount);
}
else
printf("\n没有此航班\n");
return(head1);
}
/*按航班号查询航班信息*/
flight_list *search_number()
{
char number[10];
flight_list *p;
printf("\n请输入航班号:");
scanf("%s",number);
p=head1->next;
while(p!=NULL&&strcmp(p->flight_news.flight_number,number)!=0)
p=p->next;
if(p!=NULL)
{
printf("\n查询航班成功!所查找的航班信息如下所示\n\n");
printf("\t-----------------------\t\n");
printf("\t航班号 出发城市 到达城市 价格 打折 剩余座位\n");
printf("\t%-5s%-5s%-5s%-5s%-5s%d\t\n",p->flight_news.flight_number,p->flight_news.start_city,p->flight_news.arrive_city,
p->flight_news.price,p->flight_news.discount,p->flight_news.left_ticket);
printf("\t-----------------------\t\n");
p=p->next;
return(p);
}
else
printf("\n对不起!没有此航班\n");
return(p);
}
/*按城市查询*/
flight_list *search_city()
{
char start[10];
char arrive[10];
flight_list *p;
printf("\n请输入出发城市 到达城市:");
scanf("%s%s",start,arrive);
p=head1->next;
while(p!=NULL&&(strcmp(p->flight_news.start_city,start)!=0||strcmp(p->flight_news.arrive_city,arrive)!=0))
p=p->next;
if(p!=NULL)
{
printf("\n查询航班成功!所查找的航班信息如下所示\n\n");
printf("\t-----------------------\t\n");
printf("\t航班号 出发城市 到达城市 价格 打折 剩余座位\n");
printf("\t%-5s%-5s%-5s%-5s%-5s%d\t\n",p->flight_news.flight_number,p->flight_news.start_city,p->flight_news.arrive_city,
p->flight_news.price,p->flight_news.discount,p->flight_news.left_ticket);
return(p);
p=p->next;
}
else
printf("\n对不起!没有此航班\n");
return(NULL);
}
/*查询航班信息*/
void search()
{
flight_list *q;
int x;
printf("\n请选择查询方式\n");
printf("1.按航班号查询\n");
printf("2.按城市查询\n");
printf("\n请选择(1/2)");
scanf("%d",&x);
switch(x)
{
case 1:q=search_number();break;
case 2:q=search_city();break;
break;
}
}
//订单信息
typedef struct node3
{
char name[10];
char id[10];
char flight_number[10];
char start_city[10];
char arrive_city[10];
}order_infor;
//订单链表定义
typedef struct node4
{
order_infor order_news;
struct node4 *next;
}order_list;
order_list *head,*rear;
//初始化订单链表
order_list *inist_order()
{
head=(order_list *)malloc(sizeof(order_list));
head->next=NULL;
rear=head;
return(head);
}
//订单并插入链表
order_list *in_order()
{
flight_list *see_flight;
order x;
order_list *p;
see_flight=search_city();
if(see_flight!=NULL)
{
if(see_flight->flight_news.left_ticket==0)
printf("\n该票已卖完\n");
else
{
printf("\n请输入姓名 身份证号:");
scanf("%s%s",x.name,x.id);
p=(order_list *)malloc(sizeof(order_list));
strcpy(p->order_news.name,x.name);
strcpy(p->order_news.id,x.id);
strcpy(p->order_news.flight_number,see_flight->flight_news.flight_number);
strcpy(p->order_news.start_city,see_flight->flight_news.start_city);
strcpy(p->order_news.arrive_city,see_flight->flight_news.arrive_city);
rear->next=p;
rear=p;
rear->next=NULL;
printf("\n订票成功\n");
printf("\n订单信息如下所示:\n");
printf("\n\t-----------------------\t\n");
printf("\n姓名 证件号 航班号 起飞城市 抵达城市 \n");
printf("\n%-6s%-6s%-6s%-6s%-6s",p->order_news.name,p->order_news.id,p->order_news.flight_number,p->order_news.start_city,p->order_news.arrive_city);
see_flight->flight_news.left_ticket--;
printf("\n\t-----------------------\t\n");
}
}
return(rear);
}
//查看订单
void show_order()
{order_list *n;
char name1[10],id1[10];
n=head->next;
printf("\n请输入您的名字 身份证:");
scanf("%s%s",name1,id1);
while(n!=NULL&&(strcmp(n->order_news.name,name1)!=0||strcmp(n->order_news.id,id1)!=0))
n=n->next;
if(n!=NULL)
{
printf("\n您要找的订单如下\n");
printf("\n姓名 证件号 航班号 起飞城市 抵达城市\n");
printf("\n%-6s%-6s%-6s%-6s%-6s",n->order_news.name,n->order_news.id,n->order_news.flight_number,n->order_news.start_city,n->order_news.arrive_city);
}
else
printf("\n对不起,您没有订单\n");
}
//退票
void out_order()
{
order_list *qq,*q;
flight_list *p;
char id1[10];
char number1[10];
printf("\n请输入证件号 航班号:");
scanf("%s%s",id1,number1);
qq=head;
q=qq->next;
while(q!=NULL&&(strcmp(q->order_news.id,id1)!=0||strcmp(q->order_news.flight_number,number1)!=0))
{
qq=q;
q=q->next;
}
if(q==NULL)
printf("\n\t\t没有您所要找的订单\n");
else
{
qq->next=q->next;
free(q);
p=head1->next;
while(p!=NULL&&strcmp(p->flight_news.flight_number,number1)!=0)
p=p->next;
if(p!=NULL)
p->flight_news.left_ticket++;
printf("\n\t\t删除订单成功\n");
}
}
//录入航班信息
void readflight_text()
{
flight_list *p1,*p2;
FILE *fp;
if((fp=fopen("e:\\save_f.txt","r+"))==NULL)
printf("\n开始建立文件!\n");
p1=(flight_list *)malloc(sizeof(flight_list));
fread(p1,sizeof(flight_list),1,fp);
head1->next=p1;
p2=p1;
if(p1!=NULL)
{
fread(p1,sizeof(flight_list),1,fp);
没有合适的资源?快使用搜索试试~ 我知道了~
ordering-plane-tickets.rar_航班订票
共1个文件
cpp:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 191 浏览量
2022-09-19
21:17:44
上传
评论
收藏 3KB RAR 举报
温馨提示
通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票: 可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息: 当航班信息改变可以修改航班数据文件
资源推荐
资源详情
资源评论
收起资源包目录
ordering-plane-tickets.rar (1个子文件)
ordering plane tickets.cpp 10KB
共 1 条
- 1
资源评论
alvarocfc
- 粉丝: 108
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功