C语言代码实现高校学科竞赛管理系统
时间: 2023-09-19 18:08:05 浏览: 150
以下是一个基本的高校学科竞赛管理系统的C语言代码实现,包括对学生信息和比赛成绩的录入、查询、修改和删除等功能。代码仅供参考。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 学生信息结构体
typedef struct {
char name[20]; // 姓名
int id; // 学号
char major[20]; // 专业
} Student;
// 比赛成绩结构体
typedef struct {
char name[20]; // 比赛名称
int score; // 成绩
} Score;
// 全局变量
int student_count = 0; // 学生数量
int score_count = 0; // 成绩数量
Student students[100]; // 最多100个学生
Score scores[100]; // 最多100个比赛成绩
// 函数声明
void add_student();
void add_score();
void list_students();
void list_scores();
void search_student();
void search_score();
void update_student();
void update_score();
void delete_student();
void delete_score();
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 录入学生信息\n");
printf("2. 录入比赛成绩\n");
printf("3. 查看学生信息\n");
printf("4. 查看比赛成绩\n");
printf("5. 按姓名查找学生\n");
printf("6. 按名称查找比赛成绩\n");
printf("7. 修改学生信息\n");
printf("8. 修改比赛成绩\n");
printf("9. 删除学生信息\n");
printf("10. 删除比赛成绩\n");
printf("0. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
add_score();
break;
case 3:
list_students();
break;
case 4:
list_scores();
break;
case 5:
search_student();
break;
case 6:
search_score();
break;
case 7:
update_student();
break;
case 8:
update_score();
break;
case 9:
delete_student();
break;
case 10:
delete_score();
break;
case 0:
exit(0);
default:
printf("无效的选择,请重新选择\n");
break;
}
}
}
// 添加学生信息
void add_student() {
if (student_count == 100) {
printf("学生数量已达到上限,不能继续添加\n");
return;
}
Student student;
printf("请输入学生姓名:");
scanf("%s", student.name);
printf("请输入学生学号:");
scanf("%d", &student.id);
printf("请输入学生专业:");
scanf("%s", student.major);
students[student_count++] = student;
printf("学生信息已保存\n");
}
// 添加比赛成绩
void add_score() {
if (score_count == 100) {
printf("比赛成绩数量已达到上限,不能继续添加\n");
return;
}
Score score;
printf("请输入比赛名称:");
scanf("%s", score.name);
printf("请输入比赛成绩:");
scanf("%d", &score.score);
scores[score_count++] = score;
printf("比赛成绩已保存\n");
}
// 查看学生信息
void list_students() {
printf("学生姓名\t学号\t专业\n");
for (int i = 0; i < student_count; i++) {
printf("%s\t%d\t%s\n", students[i].name, students[i].id, students[i].major);
}
}
// 查看比赛成绩
void list_scores() {
printf("比赛名称\t成绩\n");
for (int i = 0; i < score_count; i++) {
printf("%s\t%d\n", scores[i].name, scores[i].score);
}
}
// 按姓名查找学生
void search_student() {
char name[20];
printf("请输入学生姓名:");
scanf("%s", name);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("学生姓名\t学号\t专业\n");
printf("%s\t%d\t%s\n", students[i].name, students[i].id, students[i].major);
return;
}
}
printf("未找到该学生\n");
}
// 按名称查找比赛成绩
void search_score() {
char name[20];
printf("请输入比赛名称:");
scanf("%s", name);
for (int i = 0; i < score_count; i++) {
if (strcmp(scores[i].name, name) == 0) {
printf("比赛名称\t成绩\n");
printf("%s\t%d\n", scores[i].name, scores[i].score);
return;
}
}
printf("未找到该比赛成绩\n");
}
// 修改学生信息
void update_student() {
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
for (int i = 0; i < student_count; i++) {
if (students[i].id == id) {
printf("请输入学生姓名:");
scanf("%s", students[i].name);
printf("请输入学生学号:");
scanf("%d", &students[i].id);
printf("请输入学生专业:");
scanf("%s", students[i].major);
printf("学生信息已修改\n");
return;
}
}
printf("未找到该学生\n");
}
// 修改比赛成绩
void update_score() {
char name[20];
printf("请输入要修改的比赛名称:");
scanf("%s", name);
for (int i = 0; i < score_count; i++) {
if (strcmp(scores[i].name, name) == 0) {
printf("请输入比赛成绩:");
scanf("%d", &scores[i].score);
printf("比赛成绩已修改\n");
return;
}
}
printf("未找到该比赛成绩\n");
}
// 删除学生信息
void delete_student() {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for (int i = 0; i < student_count; i++) {
if (students[i].id == id) {
for (int j = i + 1; j < student_count; j++) {
students[j - 1] = students[j];
}
student_count--;
printf("学生信息已删除\n");
return;
}
}
printf("未找到该学生\n");
}
// 删除比赛成绩
void delete_score() {
char name[20];
printf("请输入要删除的比赛名称:");
scanf("%s", name);
for (int i = 0; i < score_count; i++) {
if (strcmp(scores[i].name, name) == 0) {
for (int j = i + 1; j < score_count; j++) {
scores[j - 1] = scores[j];
}
score_count--;
printf("比赛成绩已删除\n");
return;
}
}
printf("未找到该比赛成绩\n");
}
```
以上就是一个基本的高校学科竞赛管理系统的C语言代码实现,可以根据实际需要进行修改和完善。
阅读全文