文件写入+返回上一层
这是一个机票查询系统,有两个问题。1.想要将机票信息写入文件,但是打开文件后发现里面没有任何信息,即没有成功写入文件;2,我想知道怎么实现返回上一层,比如,在查看了所有机票信息后可以返回到上一层的选择行,进而执行别的操作;谢谢!
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
//#include<istream.h>
struct flight//定义航班结构体
{char num[20];//航班号
char startpoint[10];//起点
char endpoint[10];//终点
char startime[10];//起飞时间
char endtime[10];//达到时间
int price;//价格
double discount;//折扣
int discountprice; //折扣价
int remain; //剩余张数
}air[100];
int SIZE=50;
void save()
{
FILE *fp;
int i;
if((fp=fopen("C:\\Users\\ws\\Desktop\\新建文件夹\\机票信息.dat","wb"))==NULL)
{printf("cannot open file\n");
return;
}
printf("%s **\n ",air[0].num);//*****************
for(i=0;i<SIZE;i++)
{
if(fwrite(&air[i],sizeof(struct flight),1,fp)!=1)
printf("file write error;\n");
}
fclose(fp);
}
int main()
{ FILE *fp;
int i;
int sr;//专用来记录使用者输入的变量
char srr[10];
//这样的初始化方式,必须在定义数组的同时赋值,不能上一行定义,下一行赋值。
flight air[100]={{"BJ123","北京","上海","14:30","17:30",500,9,450,12},
{"BJ124","北京","西安","07:00","09:30",430,9,388,11},
{"BJ125","北京","乌鲁木齐","08:00","12:10",960,9,866,3},
{"BJ234","北京","厦门","07:15","10:25",1030,8,824,9},
{"BJ43","北京","银川","07:25","09:30",550,9,495,9},
{"SH524","上海","西安","07:25","09:55",500,10,500,12},
{"SH452","上海","西安","08:30","11:10",1000,8,800,4},
{"SH778","上海","西安","09:44","14:30",600,9,540,8},
{"SH52","上海","北京","07:45","10:15",1000,9.6,960,5},
{"CQ12","重庆","天津","07:20","09:40",700,10,700,5},
{"TJ34","天津","西安","08:10","09:55",770,10,770,9},
//四个直辖市完毕
{"SH857","上海 ","北京","08:55","11:15",800,10,800,4 },
{"WL123","乌鲁木齐","北京","09:10","12:35",2410,10,2410,5},
{"GX15","南宁","北京","08:30","11:40",1130,10,1130,6},
{"XZ15","西安","北京","15:25","21:25",2430,10,2430,9},
{"NM15","呼和浩特","北京","00:05","01:10",500,10,500,2},
//五个自治区完毕
{"XG159","香港","北京","08:15","12:55",1000,9,900,6},
{"XG73","香港","西安","6:15","12:15",1000,9,900,9},
{"AM15","澳门","北京","08:15","12:55",1000,9,900,6},
{"AM95","澳门","西安","6:15","12:15",1000,9,900,9},
//两个特别行政区 完毕
{"SY98","沈阳","北京","14:00","15:30",700,8,560,9},
{"CC321","长春","北京","07:50","09:40",100,9.6,960,5},
{"AS55","哈尔滨","北京","07:50","09:40",100,9.6,960,5},
{"FG74","南京","北京","07:50","09:40",100,9.6,960,5},
{"D44","杭州","北京","07:50","09:40",100,9.6,960,5},
{"G55","合肥","北京","07:50","09:40",100,9.6,960,5},
{"GF44","福州","北京","07:50","09:40",100,9.6,960,5},
{"GF22","南昌","北京","07:50","09:40",100,9.6,960,5},
{"JH85","济南","北京","07:50","09:40",100,9.6,960,5},
{"HJ554","郑州","北京","07:50","09:40",100,9.6,960,5},
{"FG","武汉","北京","07:50","09:40",100,9.6,960,5},
{"F55","武汉","北京","07:50","09:40",100,9.6,960,5},
{"GH55","长沙","北京","07:50","09:40",100,9.6,960,5},
{"HF44","广州","北京","07:50","09:40",100,9.6,960,5},
{"TY25","海口","北京","07:50","09:40",100,9.6,960,5},
{"TY587","成都","北京","07:50","09:40",100,9.6,960,5},
{"FG78","贵阳","北京","07:50","09:40",100,9.6,960,5},
{"FG25","昆明","北京","07:50","09:40",100,9.6,960,5},
{"HD78","西安","北京","07:50","09:40",100,9.6,960,5},
{"WD85","兰州","北京","07:50","09:40",100,9.6,960,5},
{"SD745","西宁","北京","07:50","09:40",100,9.6,960,5},
{"SX75","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX87","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX88","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX78","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX55","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX554","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX524","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX452","西安","北京","07:50","09:40",100,9.6,960,5},
{"SX482","西安","北京","07:50","09:40",100,9.6,960,5}
};//23个省会城市
save();//将航班信息存入文件
printf(" ************************************ \n");
printf(" *********************************************** \n");
printf(" ******************************************************************** \n");
printf(" 欢迎使用世行机票查询订购系统 \n");
printf(" ******************************************************************** \n");
printf(" *********************************************** \n");
printf(" ************************************ \n");
printf("\n");
printf("查看所有机票信息请输入 1 ,其他操作请输入 2 \n");
scanf("%d",&sr);
//printf("%d");
if(sr==1)
{
printf("全部机票信息为:\n");
printf("序号 航班号 起点 终点 起飞时间 到达时间 价格 折扣 折扣价格 剩余\n");
FILE *fp;
if((fp=fopen("C:\\Users\\ws\\Desktop\\新建文件夹\\机票信息.dat","wb"))==NULL)
{
printf("cannot open file\n");
return 0;
}
for(i=0;i<SIZE;i++)
{
fread(&air[i],sizeof(struct flight),1,fp);
printf("%2d %-7s %10s %10s %7s %7s %7d %6.1f %7d %7d",i,air[i].num,air[i].startpoint,air[i].endpoint,
air[i].startime,air[i]. endtime,air[i].price,air[i].discount,air[i].discountprice,air[i].remain);
printf("\n");
}
fclose(fp);
printf("\n");
}//查看所有机票信息
if(sr==2)
{
printf("增加航班信息请输入 1 ,删除航班信息请输入 2 ,修改航班信息请输入 3 \n");
scanf("%d",&sr);
//printf("%d",sr);
if(sr==1)//增加航班信息
{
SIZE++;
printf("请按照以下格式输入要增加的机票信息\n");
printf("航班号 起点 终点 起飞时间 到达时间 价格 折扣 折扣价 剩余\n");
scanf("%s %s %s %s %s %d %f %d %d",&air[SIZE-1].num,&air[SIZE-1].startpoint,&air[SIZE-1].endpoint,&air[SIZE-1].startime,
&air[SIZE-1].endtime,&air[SIZE-1].price,&air[SIZE-1].discount,&air[SIZE-1].discountprice,&air[SIZE-1].remain);
fp=fopen("C:\\Users\\ws\\Desktop\\新建文件夹\\机票信息.dat","wb");
fwrite(&air[SIZE-1],sizeof(struct flight),1,fp);
printf("您已成功存入信息,您存入放入机票信息为:\n");
printf("%-7s %10s %10s %7s %7s %7d %6.1f %7d %7d\n",air[SIZE-1].num,air[SIZE-1].startpoint,air[SIZE-1].endpoint,
air[SIZE-1].startime,air[SIZE-1]. endtime,air[SIZE-1].price,air[SIZE-1].discount,air[SIZE-1].discountprice,air[SIZE-1].remain);
fclose(fp);
printf("**********************************************************\n");
}
}
system("pause");
}