基于C语言结构体的 选票系统
1、项目介绍
这是个基于C语言结构体模块的一个简单小项目。
- 逻辑步骤
- 1、初始化被选人的个数、姓名和选票;
- 2、定义好参与投票的人数;
- 3、开始投票;
- 4、统计出每个被选人的的得票数,以及弃权数;
- 5、进行比较,得出得胜者;
2、程序参考
编译环境:
devc++
可直接运行
#include<stdio.h>
#include<string.h>
#define nb_Man 3
#define penple 5
struct XuanMin
{
char name[32];
int ticket;
};
int main()
{
struct XuanMin xm[nb_Man];
struct XuanMin successful_man;
int flag_name[32]; //中间变量
int flag_loss_ticket = 0;
int i;
int j;
//初始化nb_man,也就是被选举人(boss)
for(i = 0; i < nb_Man; i++)
{
printf("请输入候选人%d的名字:\n",i+1);
scanf("%s",xm[i].name);
xm[i].ticket = 0;
}
//开始选票了
for(i = 0; i < penple ;i++)
{
int flag_ticket = 0; //标志位
printf("你想给谁投票?\n");
scanf("%s",flag_name);
for(j = 0;j<nb_Man; j++)
{
if(strcmp(flag_name,xm[j].name) == 0) //当strcmp里面的字符相同时,返回'0'; no1 > no2 返回'大于0'; no1 < no2 返回'小于0'
{
xm[j].ticket++;
flag_ticket = 1;
}
}
if(flag_ticket == 0)
{
printf("没有这个人,默认弃权!\n");
flag_loss_ticket++;
}
}
//公布结果
for(i=0; i<nb_Man;i++)
{
printf("%s 得票 %d\n",xm[i].name,xm[i].ticket);
}
//统计弃权人数
printf("-------------------\n");
printf("弃权人数 %d\n",flag_loss_ticket);
printf("-------------------\n\n");
//谁当选,或者平局
successful_man = xm[0];
if(xm[0].ticket == xm[1].ticket == xm[2].ticket)
{
printf("平局!\n");
}
else
{
for(i = 0; i < nb_Man; i++)
{
if(successful_man.ticket < xm[i].ticket)
{
successful_man = xm[i];
}
}
}
printf("%s 以 %d票得胜!",successful_man.name,successful_man.ticket);
}
运行结果
请输入候选人1的名字:
tp
请输入候选人2的名字:
ff
请输入候选人3的名字:
aa
你想给谁投票?
ff
你想给谁投票?
aa
你想给谁投票?
tp
你想给谁投票?
tp
你想给谁投票?
de
没有这个人,默认弃权!
tp 得票 2
ff 得票 1
aa 得票 1
-------------------
弃权人数 1
-------------------
tp 以 2票得胜!
--------------------------------
Process exited after 12.7 seconds with return value 15
请按任意键继续. . .
欢迎大家交流谈论!