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

📄 ccc.txt

📁 投票 实习用 系统。 C语言编写的。。 大家参考一下吧。
💻 TXT
📖 第 1 页 / 共 3 页
字号:
  printf("按任意键继续...");
  getch(); 
}  
  
  /*按编号排序*/
  void SortByUserNum()
  {
   FILE *fp=NULL;
   user Show;
   user a[100];
   user temp;
   char name[40]="yonghu";
   int count=0,i,j,m;
   //printf("请输入文件名:\n");
  // scanf("%s",name);
  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++;
  }
loop1: printf("请输入1(升序)或2(降序)\n");
  scanf("%d",&m);

  count=i;
  fclose(fp);
  switch(m)
  {
  case 1:for(i=0;i<count;i++)
	       for(j=i;j<count;j++)
		     if(a[i].Number>a[j].Number)
			 {  temp=a[i];
		         a[i]=a[j];
			     a[j]=temp;			  
			 }break;
  case 2:for(i=0;i<count;i++)
	       for(j=i;j<count;j++)
		     if(a[i].Number<a[j].Number)
			 {   temp=a[i];
		         a[i]=a[j];
			     a[j]=temp;			  
			 }break;
  default:printf("选择错误,请重新选择!\n");
	      goto loop1;
  }
   
   fp=fopen(name,"wb");  
   for(i=0;i<count;i++)
	   if((fwrite(&a[i],sizeof(user),1,fp)!=1))
		  {printf("出现错误:\n");break;}
  fclose(fp);
  fp=fopen(name,"r");
   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("按任意键继续....\n");
	getch();
  }
    
  /*投票*/
  void Vote()
  {
   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);
   again2: fp=fopen(name,"r+");
   system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("打开文件失败");
   getch();
   exit(1);
  }
 printf("\n编号\t\t姓名\t\t票数\n");
	   i=0;
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%d\n",Show.Number,Show.Name,Show.votenum);
   printf("",Show.intro);
   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)
	  {   
		  a[i].votenum=a[i].votenum+1;
	  }
    	if((fwrite(&a[i],sizeof(candidate),1,fp)!=1))
		{printf("修改失败:\n");}
  }
  fclose(fp);
  fp=fopen(name,"rb");
   printf("\n编号\t\t姓名\t\t票数\n");
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%d\n",Show.Number,Show.Name,Show.votenum);
  }
  printf("是否继续 (Y/N):");
  n=getchar();
  if(n=='y'||n=='Y')
	  goto again2;
  else if(n=='n'||n=='N')
	  return;  
  printf("按任意键继续...");
  getch();
} 
   
  /*清空投票*/
 void ClearVote()
 {
   FILE *fp=NULL,*fp1=NULL;
   candidate Show;
   candidate a[100];
   char name[40]="houxuanren";
   int count=0,i;
   //printf("请输入文件名:\n");
   //scanf("%s",name);
   fp=fopen(name,"r+");
   system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("打开文件失败");
   getch();
   exit(1);
  }
   i=0;
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("",Show.Number,Show.Name,Show.votenum);
   printf("",Show.intro);
   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;
  fp=fopen(name,"wb");
  for(i=0;i<count;i++)
  {
	  a[i].votenum=0;
	  if((fwrite(&a[i],sizeof(candidate),1,fp)!=1))
		{printf("修改失败:\n");}
  }
  fclose(fp);
  fp=fopen(name,"rb");
   printf("\n编号\t\t姓名\t\t票数\n");
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%d\n",Show.Number,Show.Name,Show.votenum);
  }
  printf("按任意键继续...");
  getch();
} 
   
  /*按票数排序*/
  void SortByVote()
  {
   FILE *fp=NULL;
   candidate Show;
   candidate a[100];
   candidate temp;
   char name[40]="houxuanren";
   int count=0,i,j,m;
   
  fp=fopen(name,"r+");
  system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束!.\n",name);
   perror("打开文件失败");
   getch();
   exit(1);
  }
   i=0;
  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("",Show.Number,Show.Name,Show.intro,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++;
  }
loop1: printf("请输入1(升序)或2(降序)\n");
  scanf("%d",&m);
  count=i;
  fclose(fp);
  switch(m)
  {
  case 1:for(i=0;i<count;i++)
	       for(j=i;j<count;j++)
		     if(a[i].votenum>a[j].votenum)
			 {  temp=a[i];
		         a[i]=a[j];
			     a[j]=temp;			  
			 }break;
  case 2:for(i=0;i<count;i++)
	       for(j=i;j<count;j++)
		     if(a[i].votenum<a[j].votenum)
			 {   temp=a[i];
		         a[i]=a[j];
			     a[j]=temp;			  
			 }break;
default:printf("选择错误,请重新选择!\n");
	      goto loop1;
  }
   
   fp=fopen(name,"wb");  
   for(i=0;i<count;i++)
	   if((fwrite(&a[i],sizeof(candidate),1,fp)!=1))
		  {printf("出现错误:\n");}
  fclose(fp);
  fp=fopen(name,"r");
   printf("\n编号\t\t姓名\t\t票数\n");
   while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
     printf("\n%ld\t\t%s\t\t%d\n",Show.Number,Show.Name,Show.votenum);
     fclose(fp);
	 printf("按任意键继续.....\n");
	 getch();
  }
     
  /*删除候选人信息*/
  void Delcandidate()
  {
   FILE *fp=NULL;
   candidate Show;
   candidate a[100];
   char name[40];
   int count=0,i;
   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(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%s\t\t%d\n",Show.Number,Show.Name,Show.intro,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);
  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(candidate),1,fp)!=1))
		  {printf("删除错误:\n");continue;}
	  if(a[i].Number==m)
		 --flag;
  }
  if(flag==count)
  {
	  printf("查无此人!按任意键继续!\n");
	  getch();
  }
  fclose(fp);
  fp=fopen(name,"rb");
  i=0;
		  while(fread(&Show,sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%s\t\t%d\n",Show.Number,Show.Name,Show.intro,Show.votenum);
   i++;
  }
  printf("是否继续 (Y/N):");
  n=getchar();
  if(n=='y'||n=='Y')
	  goto again;
  else if(n=='n'||n=='N')
	  return;  
  printf("按任意键继续...");
  getch();
} 
  void Addcandidate()
  {
   FILE *fp=NULL,*fp1=NULL;
   candidate Show[100],Show1;
   candidate TempS[100];
   int i=0,j;
   char DataFile[40]="houxuanren";/* 存储投票人信息的文件名 */
   char m;
   int count=0;
  again:  fp=fopen(DataFile,"ab");
		  fp1=fopen(DataFile,"r");
   system("cls");
   /* 如果当前文件不存在,提示打开文件失败 */
   if(fp==NULL)
   {
   printf("\n打开文件 %s 失败!按任意键结束\n",DataFile);
   perror("打开文件失败");
   getch();
   exit(1);
  }
  /* 如果成功打开文件,则提示输入序号、用户名、密码、权限等相关信息 */

  printf("输入 编号,姓名 和 简介.编号为0意味着结束.\n");
  printf("序号不要超过10位,姓名不要超过20个字节,简介不要超过500位\n");
  printf("文件内容如下:\n");
  printf("\n编号\t\t姓名\t\t简介\t\t票数\n");
while(fread(&Show1,sizeof(candidate),1,fp1)!=(int)NULL)
  {
	count++;	
    printf("\n%ld\t\t%s\t\t%s\t\t%d\n",Show1.Number,Show1.Name,Show1.intro,Show1.votenum);
  }

	
  /* 循环从键盘上读取投票人输入的投票人相关信息 */
while(1)
  {         
    fp1=fopen(DataFile,"rb");
again1:	j=0;
    printf("\n序号0意味着结束.\n");
    printf("请输入序号:");
    scanf("%ld",&TempS[i].Number);
	getchar();	
    while(fread(&Show[j],sizeof(candidate),1,fp1)!=(int)NULL)
	{
		if(Show[j].Number==TempS[i].Number)
		{
			printf("序号已存在,请重新输入:\n");
			goto again1;
		}
	j++;
	}
    if(TempS[i].Number==0)
    {  
     break;
    }
    printf("\n姓名:");
    scanf("%s",TempS[i].Name);
    TempS[i].Name[19]='\0';
    printf("\n简介:");
    scanf("%s",TempS[i].intro);
	getchar();
    TempS[i].intro[499]='\0';
    TempS[i].votenum=0;
    /* 如遇无法写入文件的异常,则加以提示 */
    if(fwrite(&TempS[i],sizeof(candidate),1,fp)!=1)
    {
     printf("\n写入 %s 失败! 按任意键结束\n",DataFile);
     perror("写入失败");
     getch();
     exit(1);
    }
	i++;
    count++;
	if(count>=99)
	{
		printf("超出范围\n");
	    break;
	} 
  /* 如果输入的数据量超过最大允许的范围,则提示数据不能录入 */
  fclose(fp);
  /* 在屏幕上显示文件内容 */
  printf("添加用户到 %s 成功.\n",DataFile);
  printf("添加后的内容如下:\n");
  i=0;
  fp=fopen(DataFile,"rb");
  if(fp==NULL)
  {
   printf("\n打开文件 %s 失败!按任意键结束 \n",DataFile);
   perror("打开失败\n");
   getch();
   exit(1);
  }
 printf("\n编号\t\t姓名\t\t简介\t\t票数\n");
 while(fread(&Show[i],sizeof(candidate),1,fp)!=(int)NULL)
  {
   printf("\n%ld\t\t%s\t\t%s\t\t%d\n",Show[i].Number,Show[i].Name,Show[i].intro,Show[i].votenum);
   i++;
  }
  fclose(fp);
  printf("是否继续 (Y/N):");
  m=getchar();
  if(m=='y'||m=='Y')
	  goto again;
  else if(m=='n'||m=='N')
  {   
	  printf("按任意键继续:\n"); 
      getch();
	  return;	      
  }
}
}
void Creatmaster()
  {
   FILE *fp=NULL;
   user Show;
   user TempS;
   char DataFile[40]="yonghu";/* 存储投票人信息的文件名 */
   int count=1;
   fp=fopen(DataFile,"ab");
   /* 如果成功打开文件,则提示输入序号、用户名、密码、权限等相关信息 */
  //printf("输入序号,姓名 和 密码.序号0意味着结束.\n");
  /* 循环从键盘上读取投票人输入的投票人相关信息 */
   // printf("\n输入 '序号=0' 意味着结束.\n");
   // printf("序号:");
   // scanf("%ld",&TempS.Number);
   // if(TempS.Number==0)
   //// {
    // return;
   // }
    printf("姓名:");
    scanf("%s",TempS.Name);
    TempS.Name[19]='\0';
    printf("密码:");
    scanf("%s",TempS.ps);
    TempS.ps[7]='\0';    
    TempS.power=1;
	TempS.Number=1;
    if(fwrite(&TempS,sizeof(user),1,fp)!=1)
    {
     printf("\n写入文件 %s失败!按任意键结束\n",DataFile);
     perror("写入文件失败");
     getch();
     exit(1);
    }   
  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();
  system("cls");
}

⌨️ 快捷键说明

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