编写c语言学校运动会管理系统
时间: 2023-07-13 19:34:11 浏览: 283
好的,学校运动会管理系统可以分为多个功能模块,包括:
1.运动员信息录入模块,负责输入每个运动员的基本信息,如姓名、性别、年龄、所属班级、参加的比赛项目等。
2.比赛信息录入模块,负责输入每个比赛项目的基本信息,如项目名称、比赛时间、比赛地点、参赛队伍等。
3.比赛成绩录入模块,负责输入每个参赛队伍的比赛成绩,包括每个队员的得分和总分。
4.成绩查询模块,可以根据不同的查询条件,查询某个或某些运动员在某个或某些比赛项目中的成绩情况。
5.报表生成模块,可以根据不同的报表模板,生成各种统计报表,如个人成绩报表、团队成绩报表、项目排名报表等。
下面是一个简单的学校运动会管理系统的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
// 运动员结构体
typedef struct {
int id; // 运动员编号
char name[20]; // 运动员姓名
int age; // 运动员年龄
char gender; // 运动员性别
char team[20]; // 运动员所属队伍
char event[20]; // 运动员参加的比赛项目
} Athlete;
// 比赛项目结构体
typedef struct {
int id; // 比赛项目编号
char name[20]; // 比赛项目名称
char time[20]; // 比赛时间
char place[20]; // 比赛地点
char team[20][20]; // 参赛队伍
int teamNum; // 参赛队伍数量
} Event;
Athlete athleteList[MAX_SIZE]; // 运动员列表
int athleteNum = 0; // 运动员数量
Event eventList[MAX_SIZE]; // 比赛项目列表
int eventNum = 0; // 比赛项目数量
// 添加运动员
void addAthlete() {
Athlete athlete;
printf("请输入运动员编号:");
scanf("%d", &athlete.id);
printf("请输入运动员姓名:");
scanf("%s", athlete.name);
printf("请输入运动员年龄:");
scanf("%d", &athlete.age);
printf("请输入运动员性别(M/F):");
scanf(" %c", &athlete.gender);
printf("请输入运动员所属队伍:");
scanf("%s", athlete.team);
printf("请输入运动员参加的比赛项目:");
scanf("%s", athlete.event);
athleteList[athleteNum++] = athlete;
printf("添加成功!\n");
}
// 添加比赛项目
void addEvent() {
Event event;
printf("请输入比赛项目编号:");
scanf("%d", &event.id);
printf("请输入比赛项目名称:");
scanf("%s", event.name);
printf("请输入比赛时间:");
scanf("%s", event.time);
printf("请输入比赛地点:");
scanf("%s", event.place);
printf("请输入参赛队伍数量:");
scanf("%d", &event.teamNum);
for (int i = 0; i < event.teamNum; i++) {
printf("请输入第%d支参赛队伍名称:", i + 1);
scanf("%s", event.team[i]);
}
eventList[eventNum++] = event;
printf("添加成功!\n");
}
// 显示运动员列表
void showAthleteList() {
printf("编号\t姓名\t年龄\t性别\t所属队伍\t比赛项目\n");
for (int i = 0; i < athleteNum; i++) {
Athlete athlete = athleteList[i];
printf("%d\t%s\t%d\t%c\t%s\t\t%s\n", athlete.id, athlete.name, athlete.age, athlete.gender, athlete.team, athlete.event);
}
}
// 显示比赛项目列表
void showEventList() {
printf("编号\t名称\t时间\t地点\t参赛队伍\n");
for (int i = 0; i < eventNum; i++) {
Event event = eventList[i];
printf("%d\t%s\t%s\t%s\t", event.id, event.name, event.time, event.place);
for (int j = 0; j < event.teamNum; j++) {
printf("%s ", event.team[j]);
}
printf("\n");
}
}
// 查询个人成绩
void queryPersonalScore() {
char name[20];
printf("请输入运动员姓名:");
scanf("%s", name);
int found = 0;
for (int i = 0; i < athleteNum; i++) {
Athlete athlete = athleteList[i];
if (strcmp(athlete.name, name) == 0) {
printf("%s参加的比赛项目成绩如下:\n", name);
for (int j = 0; j < eventNum; j++) {
Event event = eventList[j];
if (strcmp(event.name, athlete.event) == 0) {
printf("%s:", event.name);
for (int k = 0; k < event.teamNum; k++) {
if (strcmp(event.team[k], athlete.team) == 0) {
printf("%d分\n", rand() % 100); // 生成随机成绩
found = 1;
break;
}
}
break;
}
}
break;
}
}
if (!found) {
printf("未找到%s的成绩信息!\n", name);
}
}
// 查询团队成绩
void queryTeamScore() {
char team[20];
printf("请输入队伍名称:");
scanf("%s", team);
int score = 0;
int found = 0;
for (int i = 0; i < eventNum; i++) {
Event event = eventList[i];
for (int j = 0; j < event.teamNum; j++) {
if (strcmp(event.team[j], team) == 0) {
printf("%s参加的比赛项目成绩如下:\n", event.name);
for (int k = 0; k < athleteNum; k++) {
Athlete athlete = athleteList[k];
if (strcmp(athlete.team, team) == 0 && strcmp(athlete.event, event.name) == 0) {
printf("%s:%d分\n", athlete.name, rand() % 100); // 生成随机成绩
score += rand() % 100;
found = 1;
}
}
break;
}
}
}
if (!found) {
printf("未找到%s队的成绩信息!\n", team);
} else {
printf("%s队总成绩:%d分\n", team, score);
}
}
int main() {
int choice = -1;
while (choice != 0) {
printf("欢迎使用学校运动会管理系统!\n");
printf("请选择操作:\n");
printf("1. 添加运动员\n");
printf("2. 添加比赛项目\n");
printf("3. 显示运动员列表\n");
printf("4. 显示比赛项目列表\n");
printf("5. 查询个人成绩\n");
printf("6. 查询团队成绩\n");
printf("0. 退出系统\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
addAthlete();
break;
case 2:
addEvent();
break;
case 3:
showAthleteList();
break;
case 4:
showEventList();
break;
case 5:
queryPersonalScore();
break;
case 6:
queryTeamScore();
break;
case 0:
printf("谢谢使用学校运动会管理系统!\n");
break;
default:
printf("无效的操作编号,请重新输入!\n");
break;
}
}
return 0;
}
```
这是一份简单的示例代码,你可以根据自己的需求进行修改和完善。
阅读全文