📄 flightmanagement.txt
字号:
repeat3:
scanf("%d",&c);
if(c<1||c>2)
{
printf("输入有误!请重输:\n"); /*输入正误判断*/
goto repeat3;
}
switch(c)
{
case(1):
p1=p2=head;
goto repeat;
break;
case(2):break;
}
}
break;
case(2):
printf("你真的要删除全部记录?"); /*删除全部记录*/
printf("请选择:\n1.确认\t2.取消\n:\n");
repeat2:
scanf("%d",&b);
if(b<1||b>2)
{
printf("输入有误!请重输:\n"); /*输入正误判断*/
goto repeat2;
}
switch(b)
{
case(1):
while(p1) /**/
{
p2=p1->next; /*记录下一结点*/
free(p1); /*释放*/
p1=p2;
}
head=NULL;
printf("删除成功!\n");
case(2):
break;
}
break;
}
}
return(head);
}
void menu2() /*菜单显示函数*/
{
printf("\n1.航线\n");
printf("2.航班号\n");
printf("3.航班日期\n");
printf("4.机型\n");
printf("5.所属公司\n");
printf("6.取消\n");
printf("请您选择你需要修改的信息编号<1~5>:\n");
}
/****************更新记录函数************************/
void change(struct Address *head) /*信息更改改函数*/
{
struct Address *p;
p=head;
int i;
char chline[20];
if(head==NULL) /*系统信息有无判断*/
{
system("cls");
printf("\n对不起,系统中暂时没有可更改的信息!\n");
}
else
{
system("cls");
start:
printf("\n请输入您要更改信息的航线:\n");
printf("如:bjsh\n");
scanf("%s",chline);
while(strcmp(chline,p->Airline)!=0&&p->next!=0)
p=p->next;
if(strcmp(chline,p->Airline)==0) /*寻找系统中存在的要更改的结点*/
{
system("cls");
printf("您所需更改的航线信息为:\n");
printf("航线\t航号班\t航班日期\t机型\t所属公司\n\n");
printf("%s\t%s\t%ld\t%d\t%s\n",p->Airline,p->Number,p->Date,p->Plane,p->Company);
menu2();
repeat2:
scanf("%d",&i);
if(i<1||i>6)
{
printf("输入错误!请重输:\n");
goto repeat2;
}
switch(i)
{
case(1):
system("cls");
printf("请输入正确航线的信息:\n"); /*修改航线信息*/
scanf("%s",p->Airline);
system("cls");
printf("*航线信息修改成功!\n");
break;
case(2):
system("cls");
printf("请输入正确航班号的信息:\n"); /*修改航班号信息*/
scanf("%s",p->Number);
system("cls");
printf("*航线信息修改成功!\n");
break;
case(3):
system("cls");
printf("请输入正确航班日期的信息:\n"); /*修改航班日期信息*/
scanf("%ld",&p->Date);
system("cls");
printf("*航线信息修改成功!\n");
break;
case(4):
system("cls");
printf("请输入正确机型的信息:\n"); /*修改机型信息*/
scanf("%d",&p->Plane);
system("cls");
printf("*航线信息修改成功!\n");
break;
case(5):
system("cls");
printf("请输入正确所属公司的信息:\n"); /*修改所属公司信息*/
scanf("%s",p->Company);
system("cls");
printf("*航线信息修改成功!\n");
break;
case(6):
system("cls");
break;
}
}
else
{
system("cls");
printf("你输入的信息有误!请重试!\n");
printf("~ ~ ~ ~ ~ ~ ~");
p=head;
goto start;
}
}
}
/******************信息保存函数**********************/
void save(struct Address * head) /*保存信息函数*/
{
struct Address *p;
p=head;
FILE *fp;
if(head!=NULL)
{
if((fp=fopen("flight.txt","wb"))==NULL) /*文件打开判断*/
{
printf("文件打开失败!\n");
return; /*退出函数*/
}
while(p)
{
if(fwrite(p,sizeof(struct Address),1,fp)!=1) /*将链表写入文件*/
printf("file write error!\n");
p=p->next;
}
fclose(fp);
}
else
{
system("cls");
printf("对不起,系统中暂时没有可保存的信息!");
}
fclose(fp); /*关闭文件*/
}
/******************文件打开函数**********************/
struct Address *open()
{
struct Address *p1,*p2,*head=NULL; /*定义变量*/
FILE *fp;
if((fp=fopen("flight.txt","rb"))==NULL)
{
printf("文件打开失败!\n"); /*如不能打开,则结束程序*/
exit(0);
}
p1=(struct Address *)malloc(sizeof(struct Address));/*开辟空间*/
if(!p1) /*开辟空间与否判断*/
{
printf("内存溢出!Out of memory!\n");
return(head);
}
head=p1;
while(!feof(fp)) /*判断文件是否结束*/
{
if(fread(p1,sizeof(struct Address),1,fp)!=1) break; /*如果没读到数据,跳出循环*/
p1->next=(struct Address *)malloc(sizeof(struct Address)); /*为下一个结点开辟空间*/
if(!p1->next)
{
printf("Out of memory!\n");
return (head); /*节点开辟失败,返回head值*/
}
p2=p1; /*使p2指向刚才p1指向的结点*/
p1=p1->next; /*指针后移,新读入数据链到当前表尾*/
}
p2->next=NULL; /*最后一个结点的后继指针为空*/
fclose(fp);
system("cls");
printf(" ~*********************\n");
printf(" ---读取数据成功!----\n");
printf(" ~*********************\n");
return(head);
}
void illuminate() /*定义解释航线命名函数*/
{
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n有关航线命名:\n如:bjsh 表示 \t始发地:北京\t目的地:上海\n");
printf("********************************************");
printf("\n有关本系统用到的地点:\nbj\t北京\tsh\t上海\tgz\t广州\nbl\t柏林\tny\t纽约\tld\t伦敦\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n********************************************\n");
printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf("\n有关本系统用到的航空公司:\nCA\t国航\t\t UA\t美联航\nCZ\t南航\t\t LH\t汉莎\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
}
void mainmenu() /*主菜单函数*/
{
printf("\n\t************~~~~~~~~~~~~~~~~~************");
printf("\n\n\t*\t欢迎您使用航班信息管理系统 !\t*");
printf("\n\n\t************~~~~~~~~~~~~~~~~~************\n\n");
printf("菜单\n");
printf("1.添加记录\n");
printf("2.显示记录\n");
printf("3.分类查询\n");
printf("4.航班号的排序\n");
printf("5.删除记录\n");
printf("6.更新记录\n");
printf("7.保存记录\n");
printf("8.读入记录\n");
printf("9.说明\n");
printf("10.退出\n");
printf("请输入菜单选项(1~10):\n");
}
void main() /*主函数*/
{
struct Address *head=NULL;
start: /*主菜单位置标志*/
int i;
mainmenu(); /*输入值位置标志*/
repeat2:
scanf("%d",&i);
if(i<1||i>10)
{
printf("输入错误!请重输:\n");
goto repeat2;
}
switch(i)
{
case(1): /*添加记录*/
system("cls");
printf("请输入:\n如:\n航线\t航班号\t航班日期\t机型\t所属公司(全部输入0时输入结束)\n");
printf("bjsh\tCA231\t20080808\t737\tCU\n");
printf("0\t0\t0\t\t0\t0\n");
printf("*-**--***---****----*****-----******------*******-------********-----~");
printf("\n\n请输入:\n航线\t航班号\t航班日期\t机型\t所属公司(全部输入0时输入结束)\n");
head=creat(head);
getchar();
printf("\n*****记录添加完成!*****\n\n");
printf("*****按任意键返回主菜单!\n");
getchar();
system("cls");
goto start;
break;
case(2): /*显示所有记录*/
system("cls");
if(head==NULL)
printf("\n对不起,系统暂时没有您需要的信息!\n");
else
print(head);
getchar();
printf("* * * * * * *\n");
printf("----按回车键返回主菜单!~\n");
getchar();
system("cls");
goto start;
break;
case(3): /*实现分类查询记录*/
system("cls");
if(head==NULL)
printf("\n对不起,系统暂时没有您需要的信息!\n");
else
inqurement(head);
getchar();
printf("* * * * * * *\n");
printf("----按回车键返回主菜单!~\n");
getchar();
system("cls");
goto start;
break;
case(4): /*航班号排序后显示*/
system("cls");
if(head==NULL)
printf("\n对不起,系统暂时没有您需要的信息!\n");
else
{
printf("************\n");
printf("*排序后的记录:\n\n");
print(list(head));
}
getchar();
printf("* * * * * * *\n");
printf("----按回车键返回主菜单!~\n");
getchar();
system("cls");
goto start;
break;
case(5): /*实现记录的删除*/
head=dele(head);
getchar();
printf("* * * * * * *\n");
printf("----按回车键返回主菜单!~\n");
getchar();
system("cls");
goto start;
break;
case(6): /*实现对已存在记录的信息更改*/
change(head);
getchar();
printf("* * * * * * *\n");
printf("----按回车键返回主菜单!~\n");
getchar();
system("cls");
goto start;
break;
case(7):
if(head==NULL)
{
system("cls");
printf("\n对不起,系统暂时没有您可以保存的信息!\n");
getchar();
}
else
{
save(head); /*将记录保存在文件中*/
getchar();
system("cls");
printf("---保存成功!\n");
}
printf("* * * * * * *\n");
printf("---按回车键返回主菜单!~\n");
getchar();
system("cls");
goto start;
case(8): /*从文件读入记录*/
head=open();
getchar();
printf("\n-----按回车键返回主菜单!\n");
getchar();
system("cls");
goto start;
break;
case(9):
system("cls");
illuminate();
getchar();
printf("\n\n---按回车键返回主菜单!\n");
getchar();
system("cls");
goto start;
break;
case(10): /*退出系统*/
system("cls");
free(head); /* 释放内存*/
printf("\n~~~~~~~~~~~~~~~~~~\n");
printf("*感谢您使用本系统!\n******************\n* 再见!*\n\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -