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

📄 yonghu.c

📁 飞机票的预定系统
💻 C
字号:
#include "bianliang.h"


// // // // // // // // // // 增 加 用 户 // // // // // // // // // // 
void add(emploe em1[10],int k)
{
	FILE *f;
	emploe em2[10];
	char name[10],password1[10],password2[10],ch;
	int state=-1,i=0,j=0,b=0;			//b记录新建用户个数
	if ((f=fopen("b.dat","r"))==NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&b,sizeof(b),1,f);
	}
	fclose(f);

	printf("\n\t\t\t\t\t\t\t\t\t管理员");
	printf("\n________________________________________________________________________________");
loop1:printf("\n\n\t\t请输入用户名:");
	  printf("\n\n\t\t[1只能是字母或数字]\t[2用户名长度小于10]   ");
	  fflush(stdin);
	  gets(name);
	  
	  if(name[0]=='\0')
	  {
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\t\t您没有输入用户名,请重新输入!");
		  goto loop1;
	  }
	  if(strlen(name)>10)
	  {
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\t\t您输入的用户名过长!!");
		  goto loop1;
	  }
	  for(i=0;name[i]!='\0';i++)
	  {
		  if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
		  {
			  system("cls");
			  printf("\n\t\t\t\t\t\t\t\t\t管理员");
			  printf("\n________________________________________________________________________________");
			  printf("\n\n\t\t用户名必须是字母或数字!");
			  goto loop1;
		  }
	  }
	  for (i=0;i<10;i++)
	  {
		  if((strcmp(em1[i].name,name))==0)
		  {
			  system("cls");
			  printf("\n\t\t\t\t\t\t\t\t\t管理员");
			  printf("\n________________________________________________________________________________");
			  printf("\n\n\t\t用户名已经被注册!!");
			  goto loop1;
		  }
	  }
loop2:printf("\n\n\t\t请输入您的初始密码:");
	  i = 0;
	  while ((ch = getch()) != 13)
	  {
		  if (i != 0 || ch != '\b' )
		  {
			  if (ch == '\b')
			  {
				  putchar('\b');
				  putchar(' ');
				  putchar('\b');
				  i--;
			  }
			  else
			  {
				  password1[i] = ch;
				  putchar('*');
				  i++;
			  }
		  }
	  }
	  password1[i] = '\0';
	  if (strlen(password1)>6)
	  {
		  printf("您的密码过长,是输入6位以内密码!!");
		  goto loop2;
	  }
	  
	  printf("\n\n\t\t请再次输入您的密码:");
	  i = 0;
	  while ((ch = getch()) != 13)
	  {
		  if (i != 0 || ch != '\b' )
		  {
			  if (ch == '\b')
			  {
				  putchar('\b');
				  putchar(' ');
				  putchar('\b');
				  i--;
			  }
			  else
			  {
				  password2[i] = ch;
				  putchar('*');
				  i++;
			  }
		  }
	  }
	  password2[i] = '\0';
	  
	  if(strcmp(password1,password2)!=0)
	  {
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\t\t您两次输入的密码不一致!!");
		  goto loop2;
	  }
loop3:printf("\n\n\t\t请输入用户的权限(0.管理员  1.用户):");
	  fflush(stdin);
	  scanf("%d",&state);
	  if(state!=0 && state!=1)
	  {
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\t\t您的输入有误!!");
		  goto loop3;
	  }
	  if ((f=fopen("b.dat","r+"))==NULL)
	  {
		  printf("File Can't be find!\n");
	  }
	  else
	  {
		  b++;
		  fwrite(&b,sizeof(b),1,f);
	  }
	  fclose(f);

	  if ((f=fopen("pwd.dat","r"))==NULL)
	  {
		  printf("File Can't be find!\n");
	  }
	  else
	  {
		  fread(&em2,sizeof(em2),1,f);
	  }
	  fclose(f);

	  if ((f=fopen("pwd.dat","r+"))==NULL)
	  {
		  printf("File Can't be find!\n");
	  }
	  else
	  {
		  strcpy(em2[b].name,name);
		  strcpy(em2[b].pwd,password1);
		  em2[b].state=state;
		  em2[b].record=0;
		  em2[b].first=0;
		  fwrite(&em2,sizeof(em2),1,f);
	  }
	  fclose(f);
}



// // // // // // // // // // 删 除 用 户 // // // // // // // // // // 
void del(emploe em1[10],int k)
{
	FILE *f;
	int i=0,j=0,m=0,b=0;
	char name[10],n;
	emploe em2[10];
	if ((f=fopen("b.dat","r"))==NULL)
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&b,sizeof(b),1,f);
	}
	fclose(f);

	if ((f=fopen("pwd.dat","r"))==NULL)		//从文件pwd.dat中读入数据
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&em2,sizeof(em2),1,f);
	}
	fclose(f);
	i=0;

loop1:printf("\n\t\t\t\t\t\t\t\t\t管理员");
	  printf("\n________________________________________________________________________________");
	  printf("\n\n\t\t请输入您要删除的用户:");
	  fflush(stdin);
	  gets(name);
	  if(name[0]=='\0')					//判断是否输入用户名
	  {
		  printf("\n\n\n\n\n\n\t\t\t您没有输入用户名,请重新输入!");
		  printf("\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  goto loop1;
	  }
	  if (strlen(name)>10)				//判断用户名长度
	  {
		  printf("\n\n\n\n\n\n\t\t\t用户名不符合要求,请重新输入!");
		  printf("\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  goto loop1;
	  }
	  for(i=0;name[i]!='\0';i++)		//判断用户名为字母或数字
	  {
		  if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
		  {
			  printf("\n\n\n\n\n\n\t\t\t用户名必须是字母或数字!!");
			  printf("\n\n\n\n\n\n\n\n\n================================================================================");
			  printf("\n\t\t\t\t(按任意键返回)");
			  fflush(stdin);
			  n=getch();
			  system("cls");
			  goto loop1;
		  }
	  }
	  if (strcmp(name,em1[k].name)==0)
	  {
		  printf("\n\n\n\n\n\n\t\t\t您输入的用户名正在登陆中!!");
		  printf("\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  goto loop1;
	  }
	  for (i=0;i<10;i++) 
	  {
		  if (strcmp(name,em2[i].name)==0)
		  {
			  for (j=0;j<10;j++)
			  {
				  if (strlen(em2[j].name)>10)
				  {
					  break;
				  }
			  }
			  goto loop2;
		  }
	  }
	  printf("\n\n\n\n\n\n\t\t\t没有找到您输入的用户名");
	  printf("\n\n\n\n\n\n\n\n\n================================================================================");
	  printf("\n\t\t\t\t(按任意键返回)");
	  fflush(stdin);
	  n=getch();
	  goto loop4;

loop2:printf("\n\n\t\t是否确定要删除 %s 用户(Y/N)?",em2[i].name);
//	  printf("%d,%d",i,j);
//	  printf("%d,%d,%d,%d",strlen(em2[0].name),strlen(em2[1].name),strlen(em2[2].name),strlen(em2[3].name));

	  fflush(stdin);
	  scanf("%c",&n);
	  switch(n)
	  {
	  case 'y':
	  case 'Y':
		  if ((f = fopen("pwd.dat", "w+b")) == NULL)
		  {
			  printf("File Can't be find!\n");
		  }
		  else
		  {
			  for (m=i;m<j;m++)
			  {
				  strcpy(em2[m].name,em2[m+1].name);
				  strcpy(em2[m].pwd,em2[m+1].pwd);
				  em2[m].state=em2[m].state;
				  em2[m].record=em2[m].record;
				  em2[m].first=em2[m].first;
			  }
			  fwrite(&em2, sizeof(em2),1 ,f);
		  }
		  fclose(f);

		  if ((f=fopen("b.dat","r+"))==NULL)
		  {
			  printf("File Can't be find!\n");
		  }
		  else
		  {
			  b--;
			  fwrite(&b,sizeof(b),1,f);
		  }
		  fclose(f);

		  printf("\n\n\n\n\n\t\t\t用户 %s 已成功删除!!",name);
		  printf("\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  break;
	  case 'N':
	  case 'n':
		  goto loop4;
		  break;
	  default:
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
		  printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  printf("\n\t\t\t\t\t\t\t\t\t管理员");
		  printf("\n________________________________________________________________________________");
		  goto loop2;
	  }
	  
loop4:;
}
// // // // // // // // // // 修 改 权 限 // // // // // // // // // // 
void power(emploe em1[10],int k)
{
	FILE *f;
	int i=0,j=0;
	char name[10],n;
	emploe em2[10];

	if ((f=fopen("pwd.dat","r"))==NULL)		//从文件pwd.dat中读入数据
	{
		printf("File Can't be find!\n");
	}
	else
	{
		fread(&em2,sizeof(em2),1,f);
	}
	fclose(f);
	i=0;

loop1:printf("\n\t\t\t\t\t\t\t\t\t管理员");
	  printf("\n________________________________________________________________________________");
	  printf("\n\n\t\t请输入您要修改权限的用户名:");
	  fflush(stdin);
	  gets(name);
	  if(name[0]=='\0')					//判断是否输入用户名
	  {
		  printf("\n\n\n\n\n\n\t\t\t您没有输入用户名,请重新输入!");
		  printf("\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  goto loop1;
	  }
	  if (strlen(name)>10)				//判断用户名长度
	  {
		  printf("\n\n\n\n\n\n\t\t\t用户名不符合要求,请重新输入!");
		  printf("\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  goto loop1;
	  }
	  for(i=0;name[i]!='\0';i++)		//判断用户名为字母或数字
	  {
		  if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
		  {
			  printf("\n\n\n\n\n\n\t\t\t用户名必须是字母或数字!!");
			  printf("\n\n\n\n\n\n\n\n\n================================================================================");
			  printf("\n\t\t\t\t(按任意键返回)");
			  fflush(stdin);
			  n=getch();
			  system("cls");
			  goto loop1;
		  }
	  }
	  if (strcmp(name,em1[k].name)==0)
	  {
		  printf("\n\n\n\n\n\n\t\t\t您输入的用户名正在登陆中!!");
		  printf("\n\n\n\n\n\n\n\n\n================================================================================");
		  printf("\n\t\t\t\t(按任意键返回)");
		  fflush(stdin);
		  n=getch();
		  system("cls");
		  goto loop1;
	  }
	  for (i=0;i<10;i++) 
	  {
		  if (strcmp(name,em2[i].name)==0)
		  {
			  goto loop2;
		  }
	  }
	  printf("\n\n\n\n\n\n\t\t\t没有找到您输入的用户名");
	  printf("\n\n\n\n\n\n\n\n\n================================================================================");
	  printf("\n\t\t\t\t(按任意键返回)");
	  fflush(stdin);
	  n=getch();
	  goto loop4;

loop2:printf("\n\n\t\t用户 %s 目前的权限为: ",em2[i].name);
	  j=0;
	  if (em2[i].state==0)
	  {
		  printf("管理员!!\n\n\n\t\t是否降为普通员工(Y/N)?");
loop3:	  fflush(stdin);
		  scanf("%c",&n);
		  switch(n)
		  {
		  case 'y':
		  case 'Y':
			  if ((f = fopen("pwd.dat", "w+b")) == NULL)
			  {
				  printf("File Can't be find!\n");
			  }
			  else
			  {
				  em2[i].state=1;
				  fwrite(&em2, sizeof(em2),1 ,f);
			  }
			  fclose(f);
			  if (j==0)
			  {
				  printf("\n\n\n\n\t\t\t用户 %s 已成为普通员工!!",em2[i].name);
				  printf("\n\n\n\n\n================================================================================");
			  }
			  else
			  {
				  printf("\n\n\n\n\n\t\t\t用户 %s 已成为普通员工!!",em2[i].name);
				  printf("\n\n\n\n\n\n\n\n\n================================================================================");
			  }
			  printf("\n\t\t\t\t(按任意键返回)");
			  fflush(stdin);
			  n=getch();
			  break;
		  case 'n':
		  case 'N':
			  system("cls");
			  goto loop1;
			  break;
		  default:
			  system("cls");
			  j++;
			  printf("\n\t\t\t\t\t\t\t\t\t管理员");
			  printf("\n________________________________________________________________________________");
			  printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
			  printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
			  printf("\n\t\t\t\t(按任意键返回)");
			  fflush(stdin);
			  n=getch();
			  system("cls");
			  printf("\n\t\t\t\t\t\t\t\t\t管理员");
			  printf("\n________________________________________________________________________________");
			  printf("\n\n\n\t\t是否降为普通员工(Y/N)?");
			  goto loop3;
		  }
	  }
	  else
	  {
		  printf("员工!!\n\n\n\t\t是否升为管理员(Y/N)?");
		  fflush(stdin);
		  scanf("%c",&n);
		  switch(n)
		  {
		  case 'y':
		  case 'Y':
			  if ((f = fopen("pwd.dat", "w+b")) == NULL)
			  {
				  printf("File Can't be find!\n");
			  }
			  else
			  {
				  em2[i].state=0;
				  fwrite(&em2, sizeof(em2),1 ,f);
			  }
			  fclose(f);
			  if (j==0)
			  {
				  printf("\n\n\n\n\t\t\t用户 %s 已成为管理员!!",em2[i].name);
				  printf("\n\n\n\n\n================================================================================");
			  }
			  else
			  {
				  printf("\n\n\n\n\n\t\t\t用户 %s 已成为管理员!!",em2[i].name);
				  printf("\n\n\n\n\n\n\n\n\n================================================================================");
			  }
			  printf("\n\t\t\t\t(按任意键返回)");
			  fflush(stdin);
			  n=getch();
			  break;
		  case 'n':
		  case 'N':
			  goto loop1;
			  break;
		  default:
			  system("cls");
			  j++;
			  printf("\n\t\t\t\t\t\t\t\t\t管理员");
			  printf("\n________________________________________________________________________________");
			  printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
			  printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
			  printf("\n\t\t\t\t(按任意键返回)");
			  fflush(stdin);
			  n=getch();
			  system("cls");
			  printf("\n\t\t\t\t\t\t\t\t\t管理员");
			  printf("\n________________________________________________________________________________");
			  printf("\n\n\n\t\t是否降为普通员工(Y/N)?");
			  goto loop3;
		  }
	  }
loop4:;
}

⌨️ 快捷键说明

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