飞机订票系统(限1 人完成)
任务:通过此系统可以实现如下功能:
1)录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
2)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
3)订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班;
4)退票: 可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
5)修改航班信息: 当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
using namespace std;
typedef struct FLIGHT //航班信息
{
char number[5]; //飞机编号
char CityDeparture[10]; //起飞城市
char CityArrival[10]; //抵达城市
char TimeDeparture[10]; //起飞时间
char TimeArrival[10]; //抵达时间
int price; //价格
double discount; //折扣
int vacancy; //空位
} Flight;
typedef struct INDENT //订单信息
{
char number[15]; //订单编号
char name[10]; //姓名
char CertificateNumber[30]; //证件号码
Flight Flight; //航班信息
} Indent;
int num_ind=1;
void InputFlight() //录入航班信息
{
Flight a;
FILE *fp;
fp = fopen("flight.txt", "a"); //打开航班信息文件
if(fp == NULL)
printf("fail to open the file! \n");
//提醒用户输入
printf("格式:编号 起飞城市 抵达城市 起飞时间 抵达时间 价格 折扣 空位。\n");
printf("如:025 北京 上海 09:45 11:30 487 3.5 80\n");
printf("请输入你要录入的航班信息:\n");
scanf("%s %s %s %s %s %d %lf %d",a.number,a.CityDeparture,a.CityArrival,a.TimeDeparture,a.TimeArrival,&a.price,&a.discount,&a.vacancy);
fprintf(fp,"%3s%6s%6s%8s%8s%5d%5.1lf%4d\n",a.number,a.CityDeparture,a.CityArrival,a.TimeDeparture,a.TimeArrival,a.price,a.discount,a.vacancy);
printf("\n航班信息:%s %s %s %s %s %4d %.1lf %2d 录入成功\n\n",a.number,a.CityDeparture,a.CityArrival,a.TimeDeparture,a.TimeArrival,a.price,a.discount,a.vacancy);
fclose(fp);
}
void query()//查询航班信息
{
Flight a;
FILE *fp;
int n,ok=1;
fp = fopen("flight.txt", "r");//打开航班信息文件
if(fp == NULL)
printf("fail to open the file! \n");
printf("--------------------------------\n");//用户选择查找方式
printf("1.输入航班编号查询航班信息\n");
printf("2.输入起飞抵达城市查询航班信息\n");
printf("--------------------------------\n");
printf("\n请输入你选择的操作:");
scanf("%d",&n);
if(n==1)
{
char number[5];
printf("请输入你要查询的航班编号:");
scanf("%s",number);
while(EOF!=fscanf(fp,"%s %s %s %s %s %d %lf %d",a.number,a.CityDeparture,a.CityArrival,a.TimeDeparture,a.TimeArrival,&a.price,&a.discount,&a.vacancy))
{
if(!strcmp(a.number,number))
{
ok=0;
break;
}
}
if(ok)
{
printf("\n没有查询到符合要求的航班。\n\n");
}
else
{
printf("\n查询成功!航班信息如下:\n");
printf("编号 起飞城市 抵达城市 起飞时间 抵达时间 售价 折扣 余票\n");
printf("%4s %6s %8s %9s %8s %6d %6.1lf %4d\n",a.number,a.CityDeparture,a.CityArrival,a.TimeDeparture,a.TimeArrival,a.price,a.discount,a.vacancy);
}
}
else if(n==2)
{
char city_de[20],city_ar[20];
printf("请输入起飞城市:");
scanf("%s",city_de);
printf("请输入抵达城市:");
scanf("%s",city_ar);
while(EOF!=fscanf(fp,"%s %s %s %s %s %d %lf %d",a