📄 hangbanxitong.cpp
字号:
}
else
fclose(fp);
fclose(fp2);
fp=fopen("kehu.txt","a+");
strcpy(kehu[n].lendhang,hang[i].hangname);
fwrite(&kehu[n],sizeof(struct kehu),1,fp);
fclose(fp);
fp=fopen("hang.txt","r");
fp2=fopen("hangl.txt","w");
for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++)
{
if(strcmp(hang[i].hangname,kehu[n].lendhang)==0)
{
hang[i].turefalse=hang[i].turefalse-kehu[n].kehupiao;
fwrite(&hang[i],sizeof(struct hang),1,fp2);
continue;
}
fwrite(&hang[i],sizeof(struct hang),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("hang.txt","w");
fp2=fopen("hangl.txt","r");
for(i=0;fread(&hang[i],sizeof(struct hang),1,fp2)!=0;i++)
{
fwrite(&hang[i],sizeof(struct hang),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("hangl.txt","w");
fclose(fp2);
printf("\n订票完毕\n\n任意键返回\n");
getch();
return;
}
}
printf("\n不存在这样的票\n\n任意键返回\n");
getch();
return;
}
void huanhang() //退订函数
{
FILE *fp,*fp2; //定义两个文件指针,fp2用于修改数据时设立临时文件用
int i,n;
int kehunum;
char lendhang[100];
printf("请你输入你的证件号\n");
scanf("%d",&kehunum);
if(haoma!=kehunum){printf("\n请正确输入证件号\n\n\n\n");getch();huanhang();}
fp=fopen("kehu.txt","r"); //读取证件号记录
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++) //判断证件号是否存在
{
if(kehu[i].kehunum==kehunum) //证件号存在,进入下一循环
{
n=i;
fclose(fp);
printf("请输入你要退订的票的城市名\n");
scanf("%s",lendhang);
fp=fopen("kehu.txt","r");
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++) //判断是否订了输入的航班
{
if(strcmp(kehu[i].lendhang,lendhang)==0) //如果订该航班,进入下一循环
{
fclose(fp);
fp=fopen("kehu.txt","r");
fp2=fopen("hangl.txt","w");
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++)
{
if(strcmp(kehu[i].lendhang,lendhang)==0)
{
continue; //删除退订的航班的借航班记录
}
fwrite(&kehu[i],sizeof(struct kehu),1,fp2); //写入原来没订的航班的记录
}
fclose(fp);
fclose(fp2);
fp=fopen("kehu.txt","w");
fp2=fopen("hangl.txt","r");
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp2)!=0;i++)
{
fwrite(&kehu[i],sizeof(struct kehu),1,fp); //将订票记录信息写回
}
fclose(fp);
fclose(fp2);
fopen("hangl.txt","w"); //清临时文件的记录
fclose(fp2);
fp=fopen("hang.txt","r");
fp2=fopen("hangl.txt","w");
for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) //将航班的记录写入临时文件
{
if(strcmp(hang[i].hangname,lendhang)==0)
{
hang[i].turefalse=hang[i].turefalse+kehu[i].kehupiao; //将退订的航班的原来状态设为无人借阅的
fwrite(&hang[i],sizeof(struct hang),1,fp2);
continue;
}
fwrite(&hang[i],sizeof(struct hang),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("hang.txt","w");
fp2=fopen("hangl.txt","r");
for(i=0;fread(&hang[i],sizeof(struct hang),1,fp2)!=0;i++)
{
fwrite(&hang[i],sizeof(struct hang),1,fp); //将临时文件写回原文件
}
fclose(fp);
fclose(fp2);
fopen("hangl.txt","w"); //清空临时文件
fclose(fp2);
printf("\n退订完毕\n\n任意键返回\n");
getch();
return;
}
}
printf("\n你没有订这票,不要耍我\n\n任意键返回\n"); //出错提示
fclose(fp);
getch();
return;
}
}
fclose(fp);
}
//#==========================================================================================================航班处理
void addkehu()//添加客户
{
FILE *fp;
char choice='y';
int i=0,j=0,k=0,l=0;
fp=fopen("kehu.txt","r");
for(j=0;fread(&kehu[j],sizeof(struct kehu),1,fp)!=0;j++)
{
if(kehu[j].kehunum>=l)l=kehu[j].kehunum;
}
fclose(fp);
fp=fopen("kehu.txt","a+");
while(choice=='y'||choice=='Y')
{
i++;
k=i+l;
kehu[i].kehunum=k;
printf("请你输入新客户名字\n");
scanf("%s",kehu[i].kehuname);
printf("请你输入客户所订票数\n");
scanf("%d",&kehu[i].kehupiao);
printf("请输入客户所订航班号\n");
scanf("%d",&kehu[i].kehudianhua);
fwrite(&kehu[i],sizeof(struct kehu),1,fp);
printf("是否要输入下个客户信息 \n (y/n)? \n");
scanf("%s",&choice);
}
printf("\n任意键返回\n");
fclose(fp);
}
void kehucount()//客户信息
{
FILE *fp;
int i,n=0;
fp=fopen("kehu.txt","r");
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++)
{
printf("\nNO.%-3d 证件号:%-3d 客户名:%-10s 票数:%-2d 所订航班号:%-12d\n",n+1,kehu[i].kehunum,kehu[i].kehuname,kehu[i].kehupiao,kehu[i].kehudianhua);
n++;
}
fclose(fp);
printf("\n目前共有%d个客户\n",n);
printf("\n任意键返回\n\n");
getch();
}
void delkehu()//删除客户
{
FILE *fp,*fp2;
int i;
char kehuname[10],choice;
fp=fopen("kehu.txt","r");
fp2=fopen("hangl.txt","w");
printf("请输入你要删除的客户名\n");
scanf("%s",kehuname);
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++)
{
if(strcmp(kehuname,kehu[i].kehuname)!=0)
{
fwrite(&kehu[i],sizeof(struct kehu),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("是否真的要删除该客户信息?\ny/n ?\n");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("kehu.txt","w");
fp2=fopen("hangl.txt","r");
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp2)!=0;i++)
{
fwrite(&kehu[i],sizeof(struct kehu),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("hangl.txt","w");
fclose(fp2);
printf("\n任意键返回\n");
getch();
return;
}
else
{
printf("\n任意键返回\n");
getch();
return;
}
}
void jieshuqingkuang()//查询客户
{
FILE *fp,*fp2;
int i,n,num=0;
int kehunum;
printf("请你输入要查询的证件号\n\n\n");
scanf("%d",&kehunum);
fp=fopen("kehu.txt","r");
for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++)
{
if(kehu[i].kehunum==kehunum)
{
fp2=fopen("hang.txt","r");
for(n=0;fread(&hang[n],sizeof(struct hang),1,fp2)!=0;n++)
{
if(hang[n].hangnum==kehu[i].kehudianhua)
{
num++;
printf("客户名: %s \n航班号:%d 城市名:%s 票数:%d 起航时间:%s 应支付票价: %d \n",kehu[i].kehuname,hang[n].hangnum,hang[n].hangname,kehu[i].kehupiao,hang[n].zuozhename,kehu[i].kehupiao*hang[n].hangjiage*hang[n].hangyeshu/10);
}
}
fclose(fp);
fclose(fp2);
getch();
return;
}
}
printf("\n证件号不存在,请核实!\n");
getch();
}
//#=========================================================================================================客户函数
void shejirenyuan()
{
printf("--------------------------------------------------\n");
printf("-v-----v------v-v-v-------v-v-v---------vvv-------\n");
printf("--v---v-----v------v----v-------v------vvvvv------\n");
printf("---v-v------v------v----v---------------vvv-------\n");
printf("----v-------vv-v-v-v------v-v-v----------v--------\n");
printf("----v-------v----------v--------v-----------------\n");
printf("----v--------v-v-v-v----v-v-v-v----------v--------\n");
printf("----------------------------------------vvv-------\n");
printf(" 05软件工程(2)班\n 梁德燮\n 200530690214\n");
printf("--------------------------------------------------\n");
printf("-v-----v------v-v-v-------v-v-v---------vvv-------\n");
printf("--v---v-----v------v----v-------v------vvvvv------\n");
printf("---v-v------v------v----v---------------vvv-------\n");
printf("----v-------vv-v-v-v------v-v-v----------v--------\n");
printf("----v-------v----------v--------v-----------------\n");
printf("----v--------v-v-v-v----v-v-v-v----------v--------\n");
printf("----------------------------------------vvv-------\n\n");
printf("\n任意键返回\n");
getch();
printf("\n");
}
//#=========================================================================================================about
void main() //主菜单
{
int a;
a=denglu();
switch(a)
{
case '0':
{
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("再给系统一次机会");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");
getch();
a=denglu();
if(0==a)
{
printf("\n\n\n\n\n\n\n\n\n\n\n");
printf("系统还是不行啊~,找制作人吧\n\n 再见");
printf("\n\n\n\n\n\n\n\n\n\n");
}
}break;
case '1': printf("\n管理员安全退出\n");break;
case '2': printf("\n客户安全退出\n");break;
case '3': printf("\n系统安全退出\n");break;
default: printf("\n安全退出\n");break;
}
}
void kehuhan()//客户管理菜单
{
char ch3;
do
{
printf("\n\n\n\n\n\n\n\n\n\n");
printf("-----------------------欢迎进入客户管理系统--------------------\n\n");
printf(" 1:<增加客户>\n\n");
printf(" 2:<查询客户>\n\n");
printf(" 3:<删除客户>\n\n");
printf(" 0:<返回>\n\n");
printf("---------------------------------------------------------------\n\n");
printf("请输入0--4\n\n\n");
scanf("%s",&ch3);
switch(ch3)
{
case '1':addkehu();break;
case '2':kehucount();break;
case '3':delkehu();break;
case '0':break;
default:printf("\n无此操作\n");getch();break;
}
}
while(ch3!='0');
return;
}
void tushuhan()//航班管理菜单
{
char ch2;
do
{
printf("\n\n\n\n\n\n\n\n\n\n");
printf("-----------------------欢迎进入航班管理系统------------------------\n\n");
printf(" 1:<增加航班>\n\n");
printf(" 2:<航班信息>\n\n");
printf(" 3:<删除航班>\n\n");
printf(" 0:<返回>\n\n");
printf("-------------------------------------------------------------------\n\n");
printf("请输入0--3\n\n");
scanf("%s",&ch2);
switch(ch2)
{
case '1':addhang();break;
case '2':hangcount();break;
case '3':delhang();break;
case '0':break;
default:printf("\n无此操作\n");getch();break;
}
}
while(ch2!='0');
return;
}
void zhuhan()//主菜单
{
char ch1;
do
{
printf("\n\n\n\n\n\n\n\n\n\n");
printf("-----------------------欢迎进入管理主系统--------------------------\n\n");
printf(" 1:<航班管理系统>\n\n");
printf(" 2:<客户管理系统>\n\n");
printf(" 3:<设计人员信息>\n\n");
printf(" 0:<返回>\n\n");
printf("-------------------------------------------------------------------\n\n");
printf("请输入0--3\n\n\n\n\n");
scanf("%s",&ch1);
switch(ch1)
{
case '1':tushuhan();break;
case '2':kehuhan();break;
case '3':shejirenyuan();break;
case '0':break;
default:
{
printf("\n无此操作\n");
getch();
return;
}
}
}
while(ch1!='0');
return;
}
void guest()//客户菜单
{
char ch2;
do
{
printf("\n\n\n\n\n\n\n\n\n");
printf("-----------------------欢迎进入客户定票系统------------------------\n\n");
printf(" 1:<订票>\n\n");
printf(" 2:<退票>\n\n");
printf(" 3:<按到达城市查航班>\n\n");
printf(" 4:<按起航时间查航班>\n\n");
printf(" 5:<按航班序号查航班>\n\n");
printf(" 6:<客户信息>\n\n");
printf(" 7:<航班信息>\n\n");
printf(" 0:<退出>\n\n");
printf("-------------------------------------------------------------------\n\n");
printf("请输入0--6\n\n");
scanf("%s",&ch2);
switch(ch2)
{
case '1':lendhang();break;
case '2':huanhang();break;
case '3':findhang1();break;
case '4':findhang2();break;
case '5':findhang3();break;
case '6':jieshuqingkuang();break;
case '7':hangcount();break;
case '0':break;
default:printf("\n无此操作\n");getch();break;
}
}
while(ch2!='0');
return;
}
void admin() //管理员菜单
{
char ch5;
do
{
printf("\n\n\n\n\n\n\n\n\n\n\n");
printf("---------------------欢迎进入管理员系统-------------------\n\n");
printf(" 1:<添加管理员>\n\n");
printf(" 2:<删除管理员>\n\n");
printf(" 3:<管理员信息>\n\n");
printf(" 4:<主管理系统>\n\n");
printf(" 0:<退出>\n\n");
printf("--------------------------------------------------------------\n\n");
printf("请输入0--4\n\n\n\n");
scanf("%s",&ch5);
switch(ch5)
{
case '1': adduser();getch();break;
case '2': deluser();getch();break;
case '3': usercount();getch();break;
case '4': zhuhan();break;
case '0': break;
default: printf("\n无此操作\n");getch();break;
}
}
while(ch5!='0');
return;
}
//#=========================================================================================================菜单函数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -