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

📄 hangbanxitong.cpp

📁 航班信息查询系统可以让你对航班进行查询、编辑、增加、删除等操作
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include<stdio.h> 
#include<string.h> 
#include<conio.h> 
#include<stdlib.h> 

int haoma;//-----------------------------------------全局变量,判断证件号是否正确输入
//#================================================================================================头文件


struct kehu            //定义客户类型 
{ 
	int kehunum; //证件号
	char kehuname[100]; //  客户名
	int kehupiao; // 票数
	int kehudianhua;//      航班号
	char lendhang[100];   // 存放该用户订的航班名
}kehu[100]; 

struct hang             //定义航班的类型 
{
	int hangnum; //航班号
	char hangname[100]; // 城市名
	char hangchubanshe[100]; //客户名
	int hangriqi;//  共订票数
	char zuozhename[100];// 起降时间
	int hangyeshu;//折扣
	int hangjiage;// 价格
	int turefalse;         // 空位
}hang[1000]; 

 struct user
{
	char name[100];
	int ps;
	int power;
 }user[10];


//#=================================================================================================结构体



  void zhuhan();
  void kehuhan();
  void tushuhan();
  void chahang();
  void admin();
  void adduser();
  void deluser();
  void usercount();
  void guest();
  void addhang();
  void delhang();
  void findhang1();
  void findhang2(); 
  void findhang3();
  void lendhang();
  void huanhang();
  void hangcount();
  void addkehu(); 
  void delkehu();  
  void kehucount();  
  void jieshuqingkuang();


//#==============================================================================================函数声明


int denglu()//登录处理
{  
	FILE *fp=NULL;
	char name[20];
	int i,ps;
	int success=0;
	printf("\n\n\n\n\n\n\n\n");
	printf("#=======================================================================#\n\n\n\n");
	printf("                         欢迎进入订票总系统 !                        \n\n\n\n");
	printf("#=======================================================================#\n\n\n");
	do
	{
		printf("\n请输入用户名(或客户名):\n\n\n");
		scanf("%s",name);
		printf("\n请输入密码(或证件号):\n\n\n");
		scanf("%d",&ps);
		fp=fopen("user.txt","r");
		if(fp==NULL)
		{
			printf("\n\n系统错误!\n");                                   //创建管理员
			printf("\n请先输入管理员资料!\n\n");
			getch();
			adduser();			
			return(0);
		}
		for(i=0;fread(&user[i],sizeof(struct user),1,fp)!=0;i++) 
		{
			if((strcmp(name,user[i].name)==0)&&(ps==user[i].ps))
			{
				printf("\n成功进入系统!\n");
				success=1;
				if(user[i].power==1)
				{
					printf("\n你是管理员!\n");
					getch();
					admin();
					return(1);
				}
			}
		}
		fclose(fp);
		fp=fopen("kehu.txt","r");
		for(i=0;fread(&kehu[i],sizeof(struct kehu),1,fp)!=0;i++) 
		{ 
			if((kehu[i].kehunum==ps)&&(strcmp(name,kehu[i].kehuname)==0))
			{ 
				success=1;
				printf("\n成功进入系统!\n");
				printf("\n你是尊敬的客户!\n");
				getch();
				haoma=ps;
				guest();
				return(2);
			}
		}
		fclose(fp);
		if(0==success)
		{
			printf("\n\n用户名或密码错误!\n请重新输入\n\n");
			getch();
		}
	}
	while(0==success);
	return(3);
}



void usercount()//管理员信息 
{ 
	FILE *fp; 
	int i,n=0; 
	fp=fopen("user.txt","r"); 
	for(i=0;fread(&user[i],sizeof(struct user),1,fp)!=0;i++) 
	{ 
		printf("\nNO.%-3d   管理员名字:%-12s  密码:%-12d   power:%d \n",i+1,user[i].name,user[i].ps,user[i].power); 
		n++;
	} 
	fclose(fp); 
	printf("\n目前共有%d个管理员\n",n); 
	printf("\n任意键返回\n\n");
} 


void adduser()//添加管理员 
{ 
	FILE *fp; 
	char choice='y'; 
	int i=0; 
	fp=fopen("user.txt","a+"); 
	while(choice=='y'||choice=='Y') 
	{ 
		printf("请你输入新管理员名字\n");  
		scanf("%s",user[i].name); 	  
		printf("请输入新管理员密码\n"); 
		scanf("%d",&user[i].ps); 
		user[i].power=1;
		fwrite(&user[i],sizeof(struct user),1,fp); 
		printf("是否要输入下个管理员信息(y/n)? \n"); 
		scanf("%s",&choice); 		
	} 
	printf("\n任意键返回\n"); 
	fclose(fp); 
} 




void deluser()//删除管理员 
{ 
	FILE *fp,*fp2; 
	int i; 
	char name[10],choice; 
	fp=fopen("user.txt","r"); 
	fp2=fopen("hangl.txt","w"); 
	printf("请输入你要删除的管理员名\n"); 
	scanf("%s",name); 
	for(i=0;fread(&user[i],sizeof(struct user),1,fp)!=0;i++) 
	{ 

		if(strcmp(name,user[i].name)!=0) 
		{ 
			fwrite(&user[i],sizeof(struct user),1,fp2); 
		} 
	} 
	fclose(fp); 
	fclose(fp2); 
	printf("是否真的要删除该管理员信息(y/n)?\n"); 
	scanf("%s",&choice); 
	if(choice=='y'||choice=='Y') 
	{ 
		fp=fopen("user.txt","w"); 
		fp2=fopen("hangl.txt","r"); 
		for(i=0;fread(&user[i],sizeof(struct user),1,fp2)!=0;i++) 
		{ 

			fwrite(&user[i],sizeof(struct user),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 addhang()//添加航班 
{ 
	FILE *fp; 
	int i=0,j=0,k=0,l=0; 
	char choice='y'; 
	//---------------------------------------------------------自动赋最大序号值给新航班
	fp=fopen("hang.txt","r");
	for(j=0;fread(&hang[j],sizeof(struct hang),1,fp)!=0;j++)
	{
		if(hang[j].hangnum>=l)l=hang[j].hangnum;
	}
	fclose(fp);
	//--------------
	fp=fopen("hang.txt","a+"); 
	while(choice=='y'||choice=='Y') 
	{ 
		i++;
		k=i+l;
        hang[i].hangnum=k; 
		printf("请你输入城市名\n"); 
		scanf("%s",hang[i].hangname); 
		printf("请你输入起航时间\n"); 
		scanf("%s",hang[i].zuozhename); 
		printf("请你输入折扣\n"); 
		scanf("%d",&hang[i].hangyeshu);
		printf("请你输入票价\n"); 
		scanf("%d",&hang[i].hangjiage); 
		hang[i].turefalse=200; 
		fwrite(&hang[i],sizeof(struct hang),1,fp); 
		printf("是否要输入下个航班(y/n)\n"); 
		scanf("%s",&choice);
	} 
	fclose(fp); 

} 


void findhang1() //航班名查航班1
{
	FILE *fp; 
	char hangname[100]; 
	int i; 

	fp=fopen("hang.txt","r"); 
	printf("请输入你要查找的城市名\n"); 
	scanf("%s",hangname); 
	for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) 
	{ 
		if(strcmp(hangname,hang[i].hangname)==0)
		{ 
			if(hang[i].turefalse>=1) 
			{ 
				printf("\n这个航班的详细资料是:\n");
				printf("航班号:    城市名:        起航时间:     \n");
				printf("%-12d%-15s%-9s\n",hang[i].hangnum,hang[i].hangname,hang[i].zuozhename); 
				printf("\n此航班未满仓\n"); 
				getch();
			} 
			else 
			{
				printf("\n此航班满仓\n");
				printf("\n任意键返回\n");
				getch();
				fclose(fp);
				return;

			} 
			fclose(fp); 
			return; 	
		} 
	} 
	 printf("\n没有你要查询的航班\n"); 
	 printf("\n任意键返回\n"); 
	 getch();
	 fclose(fp); 
	 return; 
 } 

void findhang2() //起航时间查航班2
{ 
	 FILE *fp; 
	 char zuozhename[100]; 
	 int i; 
	 fp=fopen("hang.txt","r"); 
	 printf("请输入你所查找之起航时间\n"); 
	 scanf("%s",zuozhename); 
	 for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) 
	 { 
		 if(strcmp(zuozhename,hang[i].zuozhename)==0)
		 { 
			 if(hang[i].turefalse>=1) 
			 { 
				printf("\n这航班的详细资料是:\n");
		    	printf("航班号:    城市名:        起航时间:     \n");
		    	printf("%-12d%-15s%-9s\n",hang[i].hangnum,hang[i].hangname,hang[i].zuozhename); 
		    	printf("\n此航班现在无人借阅\n");
				getch();
			 } 
			 else 
			 {
				 printf("\n航班满仓\n");
				 printf("\n任意键返回\n");
				 getch();
				 fclose(fp);
				 return;
			 } 
			 fclose(fp); 
			 return; 
		 } 
	 } 
	 printf("\n没有你要查询的航班\n");
	 printf("\n任意键返回\n");
	 getch();
	 fclose(fp); 
	 return; 
 } 


void findhang3() //序号查航班3
{ 
FILE *fp; 
char hangnum; 
int i; 
fp=fopen("hang.txt","r"); 
printf("请输入你所查找之航班号\n"); 
scanf("%d",&hangnum); 
for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) 
{ 
	if(hang[i].hangnum==hangnum)
	{ 
		if(hang[i].turefalse>=1) 
		{ 
			printf("\n这航班的详细资料是:\n");
			printf("航班号:    城市名:        起航时间:     \n");
			printf("%-12d%-15s%-9s\n",hang[i].hangnum,hang[i].hangname,hang[i].zuozhename); 
			printf("\n航班未满仓\n");
			getch();
		} 
		else 
		{
			printf("\n航班满仓\n");
			printf("\n任意键返回\n");
			getch();
			fclose(fp);
			return;
		} 
		fclose(fp); 
		return; 
	} 
} 
printf("\n没有你要查询的航班\n");
printf("\n任意键返回\n"); 
getch();
fclose(fp); 
return; 
} 

void hangcount() //航班信息
{ 
	FILE *fp,*fp1; 
	int i,n=0,a=0,j; 
	fp=fopen("hang.txt","r"); 
	fp1=fopen("kehu.txt","r");
	for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) 
	{ 
		for(j=0;fread(&kehu[j],sizeof(struct kehu),1,fp1)!=0;j++) 
		{
				if(kehu[j].kehudianhua==hang[i].hangnum) 
				{
				printf("客户名 %-14s    票数   d%\n",&kehu[j].kehuname,kehu[j].kehupiao);
				hang[i].hangriqi=kehu[j].kehupiao+hang[i].hangriqi;
				}
		}
			printf("航班号   城市名    共订票数    起航时间     折扣     票单价     空位");
			printf("\n%-9d%-11s%-12d%-15s%-8d%-9d%-9d\n" ,hang[i].hangnum,hang[i].hangname,hang[i].hangriqi,hang[i].zuozhename,hang[i].hangyeshu,hang[i].hangjiage,hang[i].turefalse-hang[i].hangriqi); 
			n=n+1; 
	} 
	fclose(fp); 
	fclose(fp1);
	printf("\n以上为航班总列表  目前共有%d个航班\n",n);
	printf("\n任意键返回\n");	 
	getch();
	return;
} 


void delhang() //删航班
{ 
	FILE *fp,*fp2; 
	int i; 
	char hangname[100],choice; 
	fp=fopen("hang.txt","r"); 
	fp2=fopen("hangl.txt","w"); 
	printf("请输入你要删除的航班城市名\n"); 
	scanf("%s",hangname); 
	for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) 
	{ 
		if(strcmp(hangname,hang[i].hangname)!=0) 
		{ 
			fwrite(&hang[i],sizeof(struct hang),1,fp2); 
		} 
	} 
	fclose(fp); 
	fclose(fp2); 
	printf("是否真的要删除该航班(y/n)?\n"); 
	scanf("%s",&choice); 
	if(choice=='y'||choice=='Y') 
	{ 
		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); 
		fp2=fopen("hangl.txt","w"); 
		fclose(fp2); 
		printf("\n任意键返回\n"); 
		getch(); 
		return; 
	} 
	else 
	{ 
		printf("\n任意键返回\n"); 
		getch(); 
		return; 
	} 
} 



void lendhang() //订票
{ 
	FILE *fp,*fp2; 
	int i,n; 
	int kehunum; 
	printf("请你输入你的证件号\n"); 
	scanf("%d",&kehunum); 
	if(haoma!=kehunum){printf("\n请正确输入证件号\n\n\n\n");getch();lendhang();}
			n=0; 
			fp=fopen("hang.txt","r"); 
			fp2=fopen("kehu.txt","r"); 
			printf("请输入你要订的航班的城市名字\n\n"); 
			scanf("%s",kehu[n].lendhang); 
			for(i=0;fread(&hang[i],sizeof(struct hang),1,fp)!=0;i++) 
			{ 
				if(strcmp(hang[i].hangname,kehu[n].lendhang)==0) 
				{ 
					if(hang[i].turefalse<1) 
					{
						printf("\n对不起,航班已满,订其他航班吧\n\n任意键返回\n");
						fclose(fp);
						fclose(fp2);
						getch();
						return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -