用c语言编写一个“候选人选票统计系统”的程序,要求综合运用结构体、函数和前面所学的循环结构、输入输出、选择结构等知识技能; 3、候选人选票统计系统能够进行多名候选人简单信息的录入,选票数的录入,能够根据候选人姓名或者编号查询输出选票情况。
时间: 2024-12-25 11:29:42 浏览: 7
在C语言中,我们可以创建一个简单的候选人选票统计系统的程序,下面是一个基础的示例设计:
```c
#include <stdio.h>
#include <stdlib.h>
// 结构体定义候选人信息
typedef struct {
char name[50];
int id;
int votes; // 初始选票数为0
} Candidate;
// 函数声明
void addCandidate(Candidate *candidates);
void inputVotes(int candidateIndex);
void searchCandidate(char* nameOrID);
int main() {
// 初始化候选人的数组
Candidate candidates[10];
int numCandidates = 0;
// 添加候选人
while (numCandidates < 10) {
addCandidate(&candidates[numCandidates]);
printf("是否还要添加候选人(输入'y'继续, 'n'结束)? ");
scanf("%s", &candidates[numCandidates].name);
if (strcmp(candidates[numCandidates].name, "n") == 0)
break;
numCandidates++;
}
// 输入选票
for (int i = 0; i < numCandidates; i++) {
printf("请输入%d号候选人的选票数: ", candidates[i].id + 1);
inputVotes(i);
}
// 查询候选人
char queryName[50];
printf("请输入要查询的候选人名称或编号: ");
scanf("%s", queryName);
searchCandidate(queryName);
return 0;
}
// 添加候选人函数
void addCandidate(Candidate *candidate) {
printf("请输入候选人的姓名: ");
fgets(candidate->name, sizeof(candidate->name), stdin);
candidate->name[strlen(candidate->name) - 1] = '\0'; // 清除换行符
printf("请输入候选人的编号: ");
scanf("%d", &candidate->id);
candidate->votes = 0; // 设置初始选票数为0
}
// 输入选票函数
void inputVotes(int index) {
printf("请输入%d号候选人的选票数: ", candidates[index].id + 1);
scanf("%d", &candidates[index].votes);
}
// 搜索候选人函数
void searchCandidate(char* nameOrID) {
int foundIndex = -1;
for (int i = 0; i < numCandidates; i++) {
if (strcmp(nameOrID, candidates[i].name) == 0 || candidates[i].id == atoi(nameOrID)) {
foundIndex = i;
break;
}
}
if (foundIndex != -1)
printf("查询到的候选人 %s 的选票数: %d\n", candidates[foundIndex].name, candidates[foundIndex].votes);
else
printf("未找到该候选人。\n");
}
```
这个程序首先定义了一个`Candidate`结构体用于存储候选人的名字、编号以及选票数。接着实现了添加候选人、输入选票和查询候选人的函数。在`main()`函数里,通过循环结构引导用户操作。
阅读全文