c语言用结构体设计一个灵活的投票系统,能够完成至少 2 个候选人的投票统计工作:(1) 输入候选人个数和选举人个数;(2) 输入候选人姓名;(3) 投票:每个投票人输 入一次候选人的姓名;(4) 统计各个候选人的的票情况
时间: 2024-03-17 18:47:21 浏览: 20
好的,这是一个比较简单的投票系统,可以通过结构体来实现。以下是一个简单的实现方式:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LENGTH 20
#define MAX_CANDIDATE_COUNT 10
#define MAX_VOTER_COUNT 100
// 候选人结构体
typedef struct Candidate {
char name[MAX_NAME_LENGTH];
int vote_count;
} Candidate;
// 投票人结构体
typedef struct Voter {
char name[MAX_NAME_LENGTH];
int voted; // 是否已投票,0表示未投票,1表示已投票
} Voter;
int main() {
int candidate_count, voter_count;
Candidate candidates[MAX_CANDIDATE_COUNT];
Voter voters[MAX_VOTER_COUNT];
// 输入候选人个数和选举人个数
printf("请输入候选人个数和选举人个数:\n");
scanf("%d %d", &candidate_count, &voter_count);
// 输入候选人姓名
printf("请输入候选人姓名:\n");
for (int i = 0; i < candidate_count; i++) {
scanf("%s", candidates[i].name);
candidates[i].vote_count = 0; // 初始化得票数为0
}
// 投票
printf("请投票:\n");
for (int i = 0; i < voter_count; i++) {
printf("请输入第%d个投票人的姓名:\n", i + 1);
scanf("%s", voters[i].name);
voters[i].voted = 0; // 初始化为未投票状态
// 循环输入候选人姓名,直到输入正确为止
while (1) {
printf("请输入您的投票对象的姓名:\n");
char candidate_name[MAX_NAME_LENGTH];
scanf("%s", candidate_name);
// 查找候选人是否存在
int found = 0;
for (int j = 0; j < candidate_count; j++) {
if (strcmp(candidate_name, candidates[j].name) == 0) {
found = 1;
candidates[j].vote_count++; // 给该候选人的得票数加1
break;
}
}
if (found) {
printf("投票成功!\n");
voters[i].voted = 1; // 标记为已投票
break;
} else {
printf("您输入的候选人不存在,请重新输入。\n");
}
}
}
// 统计各个候选人的得票数
printf("投票结果如下:\n");
for (int i = 0; i < candidate_count; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].vote_count);
}
return 0;
}
```
这个投票系统可以支持最多10个候选人和100个选举人,可以根据需要修改相应的宏定义。在输入候选人姓名和投票人姓名时,需要注意输入的长度不能超过20个字符,否则会出现问题。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)