资源简介

功能概述 (1) 设置候选人的总个数。 (2) 记录各候选人的名字(为每个候选人自动生成一个编号) (3) 显示候选人的编号和名称 (4) 设置要选举的人数 (5) 输入选票信息,若选票中候选人的个数大于要选举的人数,则作为无效票。 (6) 统计总的选票数,有效票数,无效票数,每个候选人的得票数。 (7) 输出获选人的姓名和得票数。 扩展功能要求: (1) 对候选人的得票数进行排序输出。 (2) 把选票信息、统计信息存入到不同文件中。 (3) 把文件中的信息导入到程序中

资源截图

代码片段和文件信息

#include
#include 
#include
#include
typedef struct 
{
 int num;             //编号
 char name[20];       //名字
 int flag;            //票数
}Student;


void welcome()                          //欢迎界面
{
 printf(“\t\t\t\t\t        ----------------------\n“);
 printf(“\t\t\t\t\t\t|欢迎使用班干选举系统|\n“);
 printf(“\t\t\t\t\t        ----------------------\n“);
 printf(“\n“);
 printf(“\t  本班干选举系统仅支持选举一个职位多选一功能,如需选举多个职位,请选举完毕后关闭重启程序重新输入。\n“);
 printf(“\n“);
}


void input(Student stud[]int n)          //录入功能
{
 int i;
 printf(“\n“);
 printf(“现在开始录入候选人信息!\n“);
 printf(“\n“);
 srand((unsigned)time(NULL)); 
 for(i=0;i {       
  stud[i].num=rand()%100+1;            //产生随机数
  printf(“编号:%d\t“stud[i].num);
  printf(“候选人姓名:“);
  scanf(“%s“&stud[i].name);
  stud[i].flag=0;
  printf(“得票数:%d\n“stud[i].flag);
  printf(“\n“);
 }
}


void vote(Student stud[]int nint m)          //投票功能
{
 int ijnum; 
 int error=0effect=0total=0;      //error为无效票数,effect为有效票数,total为总票数
 FILE *fq;
 printf(“现在开始投票!\n“);
 for(i=1;i<=m;i++)
 {
  printf(“投票人%d\n“i);
  printf(“请输入您要投票给同学的编号:“);
  scanf(“%d“&num);
  for(j=0;j  {
   if(num==stud[j].num)
   {
   stud[j].flag +=1;
   effect+=1;                   //统计有效票数 
       break;
   }     
  }
  printf(“\n“);
 }
 total=m;                          //统计总投票数 
 error=total-effect;
 if((fq=fopen(“count.txt““w+“))==NULL)              //新建count文件
 {
   printf(“文件打开失败!\n“);
   return;
 }
 fprintf(fq“%d,%d,%d“effecterrortotal);  
 
              //将有效、无效、总票数情况写入count文件
 
 fclose(fq);
 printf(“本次投票结束!\n“);
 printf(“\n“);
}


void sort(Student stud[]int nint m)           //排序功能
{
 FILE *fp;
 int ijk;
 Student temp;                               //中间变量
 if((fp=fopen(“result.dat““w“))==NULL)              //新建result文件
 {
   printf(“文件打开失败!\n“);
   return;
 }
 for(i=0;i {
  k=i;
  for(j=i+1;j   if(stud[j].flag>stud[k].flag)
       k=j;
    temp=st

评论

共有 条评论