航班订票系统的设计与实现(c语言,数据结构)

本文介绍了一个使用C语言开发的航班订票系统,该系统支持录入、修改航班信息,存盘和导入数据,按多种条件查询航班,订票、退票功能,并能保存和查询客户资料及订单。系统数据结构设计合理,操作界面友好。
摘要由CSDN通过智能技术生成

该系统具备如下的功能:
(1)定义一个主菜单,方便用户实现下述操作。要求菜单简洁、易操作、界面美观。
(2)可以录入航班信息:要求数据存储在一个数据文件中,其数据构成以及具体的数据信息请结合实际情况进行自定义。
(3)修改航班信息:当航班信息改变时,可以修改航班信息。
(4)存盘和导入:所有航班信息可保存到磁盘文件,也可在需要的时候从磁盘文件导入到内存。
(5)可以查询某条航线的情况:例如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓。
(6)提供各种查询功能:例如按起飞(抵达)城市查询、按航空公司查询、按票价折扣查询等。
(7)可以订票。如果该航班已经无票,可以提供相关可选择航班。
(8)可以退票。退票后修改相关数据文件。
(9)客户资料包括:姓名、证件号、订票数量及航班情况,客户资料需以文件保存,并可实现文件导入文字。
(10)订单要有编号,订单需以文件保存,并可实现文件导入。

(11)提供客户资料查询功能,提供订单查询功能。

头文件:

typedef struct Day//日期结构体
{
	int month;
	int day;
}Day;
typedef struct plane//航班结构体
{
	int num;//航班号
	Day d;//航班日期
	char company[3];//航空公司
	char start_time[10];//起飞时间
	char end_time[10];//到达时间
	char start_place[10];//起飞地点
	char end_place[10];//目的地
	int price;//票价
	float discount;//折扣
	int count;//票的数量
	struct plane *next;
}plane;
typedef struct passenger//乘客信息
{
	int bh;
	char name[10];//乘客姓名
	int id;//乘客id
	int amount;//所订票的数量
	int num_d;//所定的航班号
	struct passenger *next;
}passenger;
plane *loadin();//头插法创建plane
void prn1(plane *a);//输出plane
void prn(plane *p);//显示航班信息
void save(plane *p);//保存航班信息到文件
void search_full(plane *a);//判断是否满仓

void search_plane(plane *a);//航班查询
plane  *search_num(plane *a);//航班号查找
void search_place(plane *a);//起飞地点,到达地点查找
void search_price(plane *a);//票价查找
void search_discount(plane *a);//折扣查找
void search_company(plane *a);//航空公司名查找
void search_time(plane *a);//起飞时间查找
void search_menu();

void order(plane *a);//订票
void tuipiao(plane *a);//退票

void change(plane *a);//修改代码
void changemenu();
void changenum(plane *a);//修改航班号
void changecompany(plane *a);//修改公司名字
void changeplace(plane *a);//修改起飞地点
void changetime(plane *a);//修改起飞时间

//乘客
//乘客代码
passenger *creat_passenger();//头插法建立乘客链表
void prn_passenger1(passenger *a);
void prn_passenger(passenger *p);
void search_passengermenu();
void search_passenger(passenger *a);//乘客查询
void search_name(passenger *a);//乘客姓名查询
void search_id(passenger *a);//乘客id查询

passenger *creat_order();//订单导入
void prn_order(passenger *p);//输出订单
void menu();//总菜单

代码主体:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"head.h"
void init(plane *a)
{
		a=(plane *)malloc(sizeof(plane));
	a->next=NULL;
}
//航班代码
plane *loadin()//头插法建立航班单链表
{
	plane *h,*a;
	FILE *fp;
	h=(plane *)malloc(sizeof(plane));
	h->next=NULL;
	if((fp=fopen("航班信息.txt","r"))==NULL)
	{
		printf("没有文件\n");
		exit(0);
	}
	while(!feof(fp))
	{
	  a=(plane *)malloc(sizeof(plane));
	   fscanf(fp,"%d",&a->num);
      fscanf(fp,"%d",&a->d.month);
      fscanf(fp,"%d",&a->d.day);
	  fscanf(fp,"%s",&a->company);
      fscanf(fp,"%s",&a->start_time);
	  fscanf(fp,"%s",&a->end_time );
	  fscanf(fp,"%s",&a->start_place);
	  fscanf(fp,"%s",&
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值