编写计票程序的方法取决于具体的需求和环境。以下是几种不同编程语言编写的计票程序示例:
Python计票程序
使用`input`函数接收选民输入的候选人姓名,直到输入“”结束。
使用字典`dic`存储每个候选人的得票数。
遍历字典并打印出每个候选人及其得票数。
```python
dic = {}
s = input('请输入候选人的姓名(输入“”结束):')
while s != '':
dic[s] = dic.get(s, 0) + 1
s = input('请输入候选人的姓名(输入“”结束):')
print('候选人及得票数如下:')
for key in dic.keys():
print(key, str(dic.get(key)) + '票')
```
C语言计票程序
定义一个结构体`Person`来存储候选人姓名和得票数。
实现`Ticket`函数来统计每个候选人的得票数。
实现`Show`函数来打印所有候选人的得票数。
```c
include
include
define MAX_CANDIDATES 5
typedef struct {
char name;
int count;
} Person;
void Ticket(Person *arr, int len) {
char name;
for (int i = 0; i < len; i++) {
scanf("%s", name);
for (int j = 0; j < len; j++) {
if (strcmp(arr[j].name, name) == 0) {
arr[j].count++;
break;
}
}
}
}
void Show(Person *arr, int len) {
for (int i = 0; i < len; i++) {
printf("%s:%d\n", arr[i].name, arr[i].count);
}
}
int main() {
Person arr[MAX_CANDIDATES] = {{"liubei", 0}, {"xiaoming", 0}, {"xiaohong", 0}, {"xiaowang", 0}, {"xiaoliu", 0}};
int len = 5;
Ticket(arr, len);
Show(arr, len);
return 0;
}
```
SQL计票程序
设计两个表:`Vote`(选票主表)和`VoteDetail`(选票细表)。
使用SQL查询统计每个候选人的得票数,并将结果导出到Excel文件。
```sql
-- 创建选票主表
CREATE TABLE Vote (
Id INT PRIMARY KEY,
Editor VARCHAR(255),
AddTime DATETIME
);
-- 创建选票细表
CREATE TABLE VoteDetail (
Id INT PRIMARY KEY,
VoteId INT,
OptionId INT
);
-- 统计每个候选人的得票数
SELECT
Editor,
AddTime,
CASE
WHEN SUM(CASE WHEN OptionId = 1 THEN 1 ELSE 0 END) = 1 THEN '选择1'
WHEN SUM(CASE WHEN OptionId = 2 THEN 1 ELSE 0 END) = 1 THEN '选择2'
WHEN SUM(CASE WHEN OptionId = 3 THEN 1 ELSE 0 END) = 1 THEN '选择3'
-- ...
WHEN SUM(CASE WHEN OptionId = 32 THEN 1 ELSE 0 END) = 1 THEN '选择32'
END AS Option1,
CASE
WHEN SUM(CASE WHEN OptionId = 1 THEN 1 ELSE 0 END) = 1 THEN 1
ELSE 0
END AS Option2,
CASE
WHEN SUM(CASE WHEN OptionId = 1 THEN 1 ELSE 0 END) = 1 THEN 1
ELSE 0
END AS Option3,
-- ...
CASE
WHEN SUM(CASE WHEN OptionId = 1 THEN 1 ELSE 0 END) = 1 THEN 1
ELSE 0
END AS Option32
FROM
Vote
JOIN
VoteDetail ON Vote.Id = VoteDetail.VoteId
GROUP BY
Editor, AddTime;
```
这些示例展示了如何使用不同的编程语言和数据库技术来编写计票程序。根据具体需求,