用C语言编写一个校园十大优秀青年评比系统,它的功能要求是(1) 提名优秀学生和投票。 (2) 查看提名学生的基本信息。 (3) 显示各提名学生的票数。 (4) 显示排行榜。
时间: 2024-03-10 15:46:01 浏览: 187
以下是一个简单的 C 语言版本的校园十大优秀青年评比系统,实现了提名优秀学生和投票、查看提名学生的基本信息、显示各提名学生的票数和显示排行榜的功能,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT 100
#define MAX_NAME 20
typedef struct {
char name[MAX_NAME];
int age;
char gender[MAX_NAME];
char major[MAX_NAME];
int votes;
} Student;
void printStudent(Student s) {
printf("姓名:%s\n", s.name);
printf("年龄:%d\n", s.age);
printf("性别:%s\n", s.gender);
printf("专业:%s\n", s.major);
printf("票数:%d\n", s.votes);
}
int main() {
Student students[MAX_STUDENT];
int n;
int voteCount = 0;
printf("请输入评选人数:");
scanf("%d", &n);
if (n > MAX_STUDENT) {
printf("评选人数超过最大限制!\n");
return 1;
}
for (int i = 0; i < n; i++) {
printf("请输入第 %d 位候选人的姓名:", i + 1);
scanf("%s", students[i].name);
printf("请输入第 %d 位候选人的年龄:", i + 1);
scanf("%d", &students[i].age);
printf("请输入第 %d 位候选人的性别:", i + 1);
scanf("%s", students[i].gender);
printf("请输入第 %d 位候选人的专业:", i + 1);
scanf("%s", students[i].major);
students[i].votes = 0;
}
while (1) {
printf("请选择操作:\n");
printf("1. 提名学生\n");
printf("2. 投票\n");
printf("3. 查看学生信息\n");
printf("4. 显示各学生的票数\n");
printf("5. 显示排行榜\n");
printf("6. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
if (voteCount >= n) {
printf("所有学生已经被提名!\n");
} else {
printf("请输入提名学生的编号(1-%d):", n);
int index;
scanf("%d", &index);
if (index < 1 || index > n) {
printf("无效的编号!\n");
} else if (students[index - 1].votes > 0) {
printf("该学生已经被提名!\n");
} else {
students[index - 1].votes = 1;
printf("提名成功!\n");
voteCount++;
}
}
break;
case 2:
printf("请输入投票学生的编号(1-%d):", n);
int index;
scanf("%d", &index);
if (index < 1 || index > n) {
printf("无效的编号!\n");
} else if (students[index - 1].votes == 0) {
printf("该学生未被提名!\n");
} else {
students[index - 1].votes++;
printf("投票成功!\n");
}
break;
case 3:
printf("请输入要查看的学生编号(1-%d):", n);
scanf("%d", &index);
if (index < 1 || index > n) {
printf("无效的编号!\n");
} else {
printStudent(students[index - 1]);
}
break;
case 4:
printf("各学生的票数如下:\n");
for (int i = 0; i < n; i++) {
printf("%d. %s: %d 票\n", i + 1, students[i].name, students[i].votes);
}
break;
case 5:
printf("排行榜如下:\n");
Student sortedStudents[MAX_STUDENT];
memcpy(sortedStudents, students, sizeof(students));
int sorted = 0;
while (sorted < n) {
int maxIndex = 0;
for (int i = 1; i < n; i++) {
if (sortedStudents[i].votes > sortedStudents[maxIndex].votes) {
maxIndex = i;
}
}
printStudent(sortedStudents[maxIndex]);
sortedStudents[maxIndex].votes = -1;
sorted++;
}
break;
case 6:
printf("感谢使用本系统!\n");
return 0;
default:
printf("无效的操作!\n");
break;
}
}
return 0;
}
```
程序中使用了结构体来存储每位候选人的姓名、年龄、性别、专业和得票数,并提供了菜单供用户选择操作。注意,该程序仅为简单示例,实际的评选程序可能会更加复杂,需要根据实际需求进行修改和完善。
阅读全文