✅ 操作成功!

飞机动态

发布时间:2023-06-07 作者:admin 来源:文学

飞机动态

飞机动态

-

2023年2月18日发(作者:)

#include

#include

#include

typedefstructfeiji//存储结构结构体

{

charn[20];//航班号

charqd[20];//起点

charzd[20];//终点

chartime[10];//时间

charysps[10];//预售票数

charscps[10];//售出票数

};

structfeijihb[50];//结构体数组

intnum;//全局变量代表航班信息数量用于控制循环

voidduqu()//从文件中读取信息到结构体

{

FILE*fp;//文件指针

num=0;//初始化航班信息数目

if((fp=fopen(\"D:飞机航班.txt\",\"r\"))==NULL)//如果直接打开失败

{

if((fp=fopen(\"D:飞机航班.txt\",\"w+\"))==NULL)//则通过创建文件的方式来打开文

{

printf(\"文件读取失败!\");

return;

}

}

while(!feof(fp))//fp指向的位置为空时,feof函数的值为0

{

fread(&hb[num],sizeof(structfeiji),1,fp);

num++;//数目加一

}

num--;

fclose(fp);//关闭文件指针

}

voidxieru()//将结构体中的信息写入到文件中

{

FILE*fp;//定义文件指针

inti;

if((fp=fopen(\"D:飞机航班.txt\",\"w\"))==NULL)//直接打开文件

{

printf(\"文件读取失败!\");

return;

}

for(i=0;i

{

fwrite(&hb[i],sizeof(structfeiji),1,fp);

}

fclose(fp);

}

voidluru()//添加航班信息录入

{

inti;

printf(\"请输入该航班的航班号n\");

scanf(\"%s\",hb[num].n);//因为结构体中有num个航班信息,hb[num]是第num+1个,

所以用hb[num].n来接收输入的航班号

for(i=0;i

{

if(!strcmp(hb[i].n,hb[num].n))//如果有,则说明重复录入,提示并返回strcmp字

符串比较函数string.h

{

printf(\"已有该航班号号记录,请重新输入!n\");

printf(\"请输入该航班的航班号n\");

scanf(\"%s\",hb[num].n);

}

}

printf(\"请输入该航班的起点n\");//完善航班信息

scanf(\"%s\",hb[num].qd);

printf(\"请输入该航班的终点n\");

scanf(\"%s\",hb[num].zd);

printf(\"请输入该航班的飞行时间(星期)n\");

scanf(\"%s\",hb[num].time);

printf(\"请输入该航班的剩余票数n\");

scanf(\"%s\",hb[num].ysps);

printf(\"请输入该航班的已售票数n\");

scanf(\"%s\",hb[num].scps);

num++;//添加后全局变量num航班信息数量加一

xieru();//写入到文件中

}

voidliulan()//浏览航班信息

{

inti;

if(num==0)//总量为0则无航班信息记录

{

printf(\"无任何记录!n\");

}

for(i=0;i

{

printf(\"航班号:%s起点:%s终点:%s时间:%s预售票数:%s已售票

数:%sn\",hb[i].n,hb[i].qd,hb[i].zd,hb[i].time,hb[i].ysps,hb[i].scps);

}

}

voidchaxun()//查询

{

inti=0,b=0;

charc[20];

while(i!=1&&i!=2&&i!=3&&i!=4)//若输入的值不是1234中的一个,则不断输出下边

的信息

{

printf(\"1.按航班号查询n2.按起点查询n3.按终点查询n4.按飞行时间查询n\");

scanf(\"%d\",&i);

}

switch(i)

{

case1:printf(\"请输入航班号:\");//按航班号查询

scanf(\"%s\",c);//用字符串C接收用户输入的航班号

for(i=0;i

号相同的

{

if(!strcmp(hb[i].n,c))//若有相同,则输出该航班信息

{

printf(\"航班号:%s起点:%s终点:%s时间:%s预售票数:%s

已售票数:%sn\",hb[i].n,hb[i].qd,hb[i].zd,hb[i].time,hb[i].ysps,hb[i].scps);

b++;//改变标示位

}

}

if(b==0)//查看表示位是否改变

printf(\"无记录!n\");

return;

case2:printf(\"请输入起始地点:\");//按起始地点查询

scanf(\"%s\",c);

for(i=0;i

{

if(!strcmp(hb[i].qd,c))

{

printf(\"航班号:%s起点:%s终点:%s时间:%s预售票数:%s

已售票数:%sn\",hb[i].n,hb[i].qd,hb[i].zd,hb[i].time,hb[i].ysps,hb[i].scps);

b++;

}

}

if(b==0)

printf(\"无记录!n\");

return;

case3:printf(\"请输入终点:\");//按终点查询

scanf(\"%s\",c);

for(i=0;i

{

if(!strcmp(hb[i].zd,c))

{

printf(\"航班号:%s起点:%s终点:%s时间:%s预售票数:%s

已售票数:%sn\",hb[i].n,hb[i].qd,hb[i].zd,hb[i].time,hb[i].ysps,hb[i].scps);

b++;

}

}

if(b==0)

printf(\"无记录!n\");

return;

case4:printf(\"请输入航班飞行时间:\");//按时间查询

scanf(\"%s\",c);

for(i=0;i

{

if(!strcmp(hb[i].time,c))

{

printf(\"航班号:%s起点:%s终点:%s时间:%s预售票数:%s

已售票数:%sn\",hb[i].n,hb[i].qd,hb[i].zd,hb[i].time,hb[i].ysps,hb[i].scps);

b++;

}

}

if(b==0)

{printf(\"无记录!n\");}

return;

}

}

voidshanchu()//删除航班信息

{

inti,j;

charb[20];

printf(\"请输入要删除的航班号n\");//输入要删除的航班号

scanf(\"%s\",b);

for(i=0;i

{

if(!strcmp(hb[i].n,b))//若找到

{

for(j=i;j

{

hb[j]=hb[j+1];

}

num--;//航班信息数目减一

xieru();//写入文件中

printf(\"删除成功!n\");

return;

}

}

printf(\"无该卡号记录,请核实后再行删除!n\");

}

voidmain()

{

inti=1;

duqu();

while(i)

{

printf(\"*********************************************************************

***********\");

printf(\"******按照下面菜单提示进行操作******nn\");

printf(\"********1.录入新的航班信息********n\");

printf(\"********2.浏览所有的航班信息********n\");

printf(\"********3.查询某一航班信息********n\");

printf(\"********4.删除某一航班信息********n\");

printf(\"********0.退出系统********n\");

printf(\"*********************************************************************

***********\");

scanf(\"%d\",&i);

switch(i)

{

case1:luru();break;

case2:liulan();break;

case3:chaxun();break;

case4:shanchu();

}

}

}

👁️ 阅读量:0