⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hangbanxitong.cpp

📁 航班信息查询系统可以让你对航班进行查询、编辑、增加、删除等操作
💻 CPP
📖 第 1 页 / 共 2 页
字号:
					} 
					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 + -