文档介绍:航空订票系统
数据结构课程设计
一、设计目的:
编写一个航空订票系统,可以在系统中录入并修改各个航班的具体情况,帮助乘客准确的查询个航班的最新信息(包括航班号、航班的起始时间和地点。票价)和各个项目业务的及时办理(包括订票、退票等)。
二、任务:
航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
三、功能要求:
1) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具
体数据自定)
2) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵
达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,
查询飞机航班情况;
3) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果
该航班已经无票,可以提供相关可选择航班;
4) 退票: 可退票,退票后修改相关数据文件;
5) 客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;
6) 修改航班信息:当航班信息改变可以修改航班数据文件。
四、设计程序:
#include<>
#include<>
#include<>
#define N 100//最大容量
typedef struct Flight//航班信息
{
char FlightNumber[6];//航班号
char SPlace[10];//起始地
char DPlace[10];//目的地
char Stime[5];//起飞时间
char Etime[5];//降落时间
int price;//票价
int RemnantSeat;//剩余座位数
}Flight;
typedef struct Order//订单信息
{
int OrderNumber;//订单编号
char PName[10];//乘客姓名
char ID[20];//身份证号
char FlightNumber[6];//航班号
int num;//订票数量
}Order;
Flight fl[N];
Order od[N];
int i,j;//两个常用角标变量
int lenf=0;//航班数
int leno=0;//订单数
char ch;//获取用户选择的变量
char filenamef[]="";//航班文件名
char filenameo[]="";//订单文件名
void save()//保存信息
{
FILE *fp;
if((fp=fopen(filenamef,"w"))!=NULL)//打开文件保存航班信息
{
for(i=0;i<lenf;i++)//写入文件
{
fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\n",fl[i].FlightNumber,fl[i].SPlace,fl[i].DPlace,fl[i].Stime,fl[i].Etime,fl[i].price,fl[i].RemnantSeat);
}
fclose(fp);//关闭文件
}
if((fp=fopen(filenameo,"w"))!=NULL)//打开文件保存订单信息
{
for(i=0;i<leno;i++)//写入文件
{
fprintf(fp,"%d\t%s\t%s\t%s\t%d\n",od[i].OrderNumber,od[i].PName,od[i].ID,od[i].FlightNumber,od[i].num);
}
fclose(fp);//关闭文件
}
}
void load()//读取信息
{
FILE *fp;
if((fp=fopen(filenamef,"r"))!=NULL)//打开文件读取航班信息
{
i=0;
while(!feof(fp))//读取文件
{
fscanf(fp,"%s%s%s%s%s%d%d",&fl[i].FlightNumber,&fl[i].SPlace,&fl[i].DPlace,&fl[i].Stime,&fl[i].Etime,&fl[i].price,&fl[i].RemnantSeat);
if(!feof(fp))
i++;
}
lenf=i;//航班数量
fclose(fp);//关闭文件
}
if((fp=fopen(filenameo,"