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

📄 ccc.txt

📁 投票 实习用 系统。 C语言编写的。。 大家参考一下吧。
💻 TXT
📖 第 1 页 / 共 3 页
字号:
			goto loop;
		}
    if(TempS.Number==0)
    {
     break;
    }
    printf("姓名:");
    scanf("%s",TempS.Name);
    TempS.Name[19]='\0';
    printf("密码:");
    scanf("%s",TempS.ps);
    TempS.ps[7]='\0';
    printf("权限=");
    scanf("%d",&TempS.power);
  if(TempS.power!=1)
    {
     TempS.power=0;
    }
   j++;
  
    /* 如遇无法写入文件的异常,则加以提示 */
    if(fwrite(&TempS,sizeof(user),1,fp)!=1)
    {
     printf("\n写入文件 %s失败!按任意键结束\n",DataFile);
     perror("写入文件失败");
     getch();
     exit(1);
    }
  flag++;
  if(flag>=99)
  {
	  printf("超出范围\n");
      break;
  }
   
  }
  /* 如果输入的数据量超过最大允许的范围,则提示数据不能录入 */
  fclose(fp);
  /* 在屏幕上显示文件内容 */
  printf("信息写入文件 %s 成功.\n",DataFile);
  printf("内容如下:\n");
  fp=fopen(DataFile,"rb");
  if(fp==NULL)
  {
   printf("\n打开文件 %s 失败! 按任意键结束 \n",DataFile);
   perror("Open file fail");
   getch();
   exit(1);
  }
  printf("\n序号\t\t姓名\t\t密码\t\t权限\n");
  while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t%d\n",Show.Number,Show.Name,Show.ps,Show.power);
  }
  fclose(fp);
  printf("按任意键继续...");
  getch();
}  
    
  /*删除用户信息*/
  void DelUser()
  {
   FILE *fp=NULL;
   user Show;
   user a[100];
   char name[40];
   int count=0,i;
   int m,flag=0;
   char n;
   printf("请输入文件名:\n");
   scanf("%s",name);
  again: 
    fp=fopen(name,"r+");
   system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("Open file fail");
   getch();
   exit(1);
  }
 printf("\n序号\t\t姓名\t\t密码\t\t权限\n");
	   i=0;
  while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t%d\n",Show.Number,Show.Name,Show.ps,Show.power);
   a[i].Number=Show.Number;a[i].power=Show.power;
   strcpy(a[i].Name,Show.Name,20);
   strcpy(a[i].ps,Show.ps,7);
   i++;
  }
  count=i;
  fclose(fp);
  fp=fopen(name,"wb");
    count=i;
	printf("请输入要删除的编号:\n");
	scanf("%d",&m);
	getchar();
  for(i=0;i<count;i++)
  {       flag++;
	      if(a[i].Number!=m)
		  if((fwrite(&a[i],sizeof(user),1,fp)!=1))	
		  {printf("删除错误:\n");break;}
	      if(a[i].Number==m)
		  flag--;
  }
  fclose(fp);
  fp=fopen(name,"rb"); 
  if(flag==count)
  {
	  printf("编号不存在!按任意键继续\n");
	  getch();
  }
  i=0;
   printf("文件内容如下:\n");
   printf("\n序号\t\t姓名\t\t密码\t\t权限\n");
		  while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t%d\n",Show.Number,Show.Name,Show.ps,Show.power);
   i++;
  }
  printf("是否继续 (Y/N):");
  n=getchar();
  if(n=='y'||n=='Y')
	  goto again;
  else if(n=='n'||n=='N')
	  return;  
  printf("按任意键继续...");
  getch();
} 
  void Guest(user m_user)/*m_user接收用户的登录信息*/
 {
  int choice=0;/* 存放用户选项的变量 */
  while(1)
  {
  system("cls");
  printf("+------------------------------------------+\n");
  printf("|      欢迎进入投票系统     |\n");
  printf("|----------------------+-------------------|\n");
  printf("|1.排序浏览候选人简介  |2.按号查询候选人   |\n");
  printf("|3.投票                |4.票数排序         |\n");
  printf("+----------------------+-------------------+\n");
  printf("|6.修改密码            0.结束程序          |\n");
  printf("+----------------------+-------------------+\n");
  printf("输入选择:");
  scanf("%d",&choice);
  switch(choice)
  {
   case 1:
      BrowseIntro();
      break;
   case 2:
      QueryIntro();
	  break;
   case 3:
      Vote();
      break;
   case 4:
      SortByVote();
      break;   
   case 6:
      ModifyMyPassword(m_user);
      break;
   case 0:
   exit(0);
   default:
      printf("选择错误 \n按任意键继续....\n");
      fflush(stdin);/*清空输入缓冲区*/
      getch();
      break;
  }
 }
}
  
  /*修改密码*/
  void ModifyMyPassword(m_user)
  {
   FILE *fp=NULL;
   user Show;
   user a[100];
   char name[40]="yonghu";
   int count=0,i,j=0,k,count1=0;
   int m;
   char ps[8],ps1[8],ps2[8],ps3[8];
  fp=fopen(name,"r+");
    system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("Open file fail");
   getch();
   exit(1);
  }
	   i=0;
  while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
  {
   printf("",Show.Number,Show.Name,Show.ps,Show.power);
   a[i].Number=Show.Number;a[i].power=Show.power;
   strcpy(a[i].Name,Show.Name,20);
   strcpy(a[i].ps,Show.ps,7);
   i++;
  }
  count=i;
  fclose(fp);
again:fp=fopen(name,"wb");
    count=i;
	printf("请输入你的编号:\n");
	scanf("%d",&m);
	getchar();
	memset(ps,0,8);//清空数组	
	printf("请输入你的原密码:\n");
	scanf("%s",ps);	
    getchar();
  for(i=0;i<count;i++)
  {   
	    
	  if(a[i].Number==m)
	  {   strcpy(ps3,a[i].ps);
	      if(strcmp(a[i].ps,ps)==0)
		  { 
		
			printf("请输入你的新密码:\n");
		    scanf("%s",ps1);
		    getchar();
			printf("请确认密码:\n");
			scanf("%s",ps2);
			if(strcmp(ps1,ps2)!=0)
			{
				printf("密码不匹配!\n");
				goto loop;
			}
			if(strcmp(ps1,ps2)==0)
			{
				strcpy(a[i].ps,ps1);
				j=1;
				k=i;
			}
		}
		
	  }
  
loop:		  if((fwrite(&a[i],sizeof(user),1,fp)!=1))
		  {continue;}
  }   
  if(strcmp(ps,ps3)!=0)
	  {
	  printf("密码错误\n");
	  count1=count1+1;

 if(count1==3)
	  {
		  printf("三次错误!"); 
		  
		  return;
	  }
	 goto again;
  }	
  if(j==1)
  {           printf("修改成功!\n");
			  printf("\n序号\t\t姓名\t\t密码\t\t权限\n");
		      printf("\n%ld\t\t%s\t\t%-8s\t\t%d\n",a[k].Number,a[k].Name,a[k].ps,a[k].power);
  }
  fclose(fp);
  printf("按任意键继续...\n");
  getch();
} 
   /*修改用户编号*/
  void ModifyUserNumber()
  {
   FILE *fp=NULL,*fp1=NULL;
   user Show;
   user a[100];
   char name[40];
   char mname[20],mps[8];
   int count=0,i,k;
   int m,flag;
   char n;
   printf("请输入文件名:\n");
   scanf("%s",name);
  again: 
   flag=0;
   fp=fopen(name,"r+");
   system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("打开文件失败");
   getch();
   exit(1);
  }
 printf("\n序号\t\t姓名\t\t密码\t\t权限\n");
	   i=0;
  while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t%d\n",Show.Number,Show.Name,Show.ps,Show.power);
   a[i].Number=Show.Number;a[i].power=Show.power;
   strcpy(a[i].Name,Show.Name,20);
   strcpy(a[i].ps,Show.ps,7);
   i++;
  }
  count=i;
  fclose(fp);
 
    count=i;
  printf("请输入要修改编号:\n");
	scanf("%d",&m);
	if(m==0)
		return;	
	getchar(); 
	fp=fopen(name,"wb");
  for(i=0;i<count;i++)
  {
	  
	  if(a[i].Number==m)
	  {   flag=1;
		  printf("姓名:");
		  scanf("%s",mname);
		  mname[19]='\0';
		  strcpy(a[i].Name,mname,20);
		  printf("密码:");
		  scanf("%s",mps);
		  mps[7]='\0';
		  strcpy(a[i].ps,mps,8);
          printf("权限=");
          scanf("%d",&k);
		  getchar();
		  a[i].power=k;
	      if(a[i].power!=1)
		  {
            a[i].power=0;
		  }
	  }
    	if((fwrite(&a[i],sizeof(user),1,fp)!=1))
		{printf("修改失败:\n");break;}
  }
  if(!flag)
  {
	  printf("编号不存在!按任意键继续!\n");
	  getch();
	  goto again;
  }
  fclose(fp);
  fp=fopen(name,"rb");
   printf("\n序号\t\t姓名\t\t密码\t\t权限\n");
  while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t%d\n",Show.Number,Show.Name,Show.ps,Show.power);
  }
  printf("是否继续 (Y/N):");
  n=getchar();
  if(n=='y'||n=='Y')
	  goto again;
  else if(n=='n'||n=='N')
	  return;  
  printf("按任意键继续...");
  getch();
} 
     /*修改简介*/
  void ModifyIntro()
  {
   FILE *fp=NULL,*fp1=NULL;
   candidate Show;
   candidate a[100];
   char name[40]="houxuanren";
   char intro[500];
   int count=0,i;
   int m,flag;
   char n;  
  again: 
   flag=0;
   fp=fopen(name,"r+");
   system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("打开文件失败");
   getch();
   exit(1);
  }
 printf("\n编号\t\t姓名\t\t简介\t\t\n");
	   i=0;
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t\n",Show.Number,Show.Name,Show.intro);
   printf("",Show.votenum);
   a[i].Number=Show.Number;a[i].votenum=Show.votenum;
   strcpy(a[i].Name,Show.Name,20);
   strcpy(a[i].intro,Show.intro,500);
   i++;
  }
  count=i;
  fclose(fp);
 
    count=i;
    printf("请输入要修改编号(0意味着结束):\n");
	scanf("%d",&m);
	if(m==0)
		return;	
	getchar(); 
	fp=fopen(name,"wb");
  for(i=0;i<count;i++)
  {
	  
	  if(a[i].Number==m)
	  {   printf("简介:");
		  scanf("%s",intro);
		  getchar();
		  intro[499]='\0';
		  strcpy(a[i].intro,intro,500);
		  flag=1;
	  }
    	if((fwrite(&a[i],sizeof(candidate),1,fp)!=1))
		{printf("修改失败:\n");break;}
  }
  if(!flag)
  {
	  printf("编号不存在!按任意键继续!");
	  getch();
      goto again;
  }
  fclose(fp);
  fp=fopen(name,"rb");
   printf("\n编号\t\t姓名\t\t简介\t\t\n");
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%-8s\t\t\n",Show.Number,Show.Name,Show.intro);
  }
  printf("是否继续 (Y/N):");
  n=getchar();
  if(n=='y'||n=='Y')
	  goto again;
  else if(n=='n'||n=='N')
	  return;  
  printf("按任意键继续...");
  getch();
} 
 
  /*查询简介*/
  void QueryIntro()
  {
   FILE *fp=NULL,*fp1=NULL;
   candidate Show;
   candidate a[100];
   char name[40]="houxuanren";
   int count=0,i;
   int m;
   char n;
  // printf("请输入文件名:\n");
   //scanf("%s",name);
   
  again: fp=fopen(name,"r+");
		 printf("是否显示文件信息(0显示,1不显示)\n");
		 scanf("%d",&m);
          system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("打开文件失败");
   getch();
   exit(1);
   }
 if(m==0)printf("\n编号\t\t姓名\t\t简介\t\t\n");
	   i=0;
while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {   
	  if(m==0)
      printf("\n%ld\t\t%s\t\t%-8s\t\t\n",Show.Number,Show.Name,Show.intro);
      printf("",Show.votenum);
      a[i].Number=Show.Number;a[i].votenum=Show.votenum;
      strcpy(a[i].Name,Show.Name,20);
      strcpy(a[i].intro,Show.intro,500);
      i++;
  }
  count=i;
  printf("请输入要查找编号:\n");
  scanf("%d",&m);
  if(m==0)
	return;	
  getchar(); 
  fp=fopen(name,"rb");
  for(i=0;i<count;i++)
  {	  
	  if(a[i].Number==m)
	  {   
		  printf("简介:%s\n",a[i].intro);
	  }
  }
  fclose(fp);
  printf("是否继续 (Y/N):");
  n=getchar();
  getchar();
  if(n=='y'||n=='Y')
	  goto again;
  else if(n=='n'||n=='N')
	  return;

⌨️ 快捷键说明

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