用c语言为我写一个300行的学生成绩管理系统的代码
时间: 2023-06-17 15:09:05 浏览: 61
很抱歉,由于时间和技能限制,我无法为您编写一个完整的学生成绩管理系统。但是,我可以为您提供一些基本的思路和代码片段,希望能够帮助您完成这个项目。
首先,您需要确定您的学生成绩管理系统需要实现哪些功能。一般来说,一个学生成绩管理系统应该包括以下功能:
- 添加学生信息
- 删除学生信息
- 修改学生信息
- 查询学生信息
- 添加学生成绩
- 删除学生成绩
- 修改学生成绩
- 查询学生成绩
- 统计学生成绩
接下来,您需要设计一个数据结构来存储学生信息和成绩信息。一个简单的数据结构可以是一个结构体,包含以下字段:
```c
struct student {
char name[50];
int age;
char gender[10];
char id[20];
float scores[5];
};
```
接着,您需要编写相应的函数来实现上述功能。以下是一些参考代码:
```c
// 添加学生信息
void add_student(struct student *students, int *count) {
printf("请输入学生姓名:");
scanf("%s", students[*count].name);
printf("请输入学生年龄:");
scanf("%d", &students[*count].age);
printf("请输入学生性别:");
scanf("%s", students[*count].gender);
printf("请输入学生学号:");
scanf("%s", students[*count].id);
(*count)++;
}
// 删除学生信息
void delete_student(struct student *students, int *count, char *id) {
int i, j;
for (i = 0; i < *count; i++) {
if (strcmp(students[i].id, id) == 0) {
for (j = i; j < *count - 1; j++) {
students[j] = students[j + 1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 修改学生信息
void modify_student(struct student *students, int count, char *id) {
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("请输入学生姓名:");
scanf("%s", students[i].name);
printf("请输入学生年龄:");
scanf("%d", &students[i].age);
printf("请输入学生性别:");
scanf("%s", students[i].gender);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 查询学生信息
void query_student(struct student *students, int count, char *id) {
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("姓名:%s\n", students[i].name);
printf("年龄:%d\n", students[i].age);
printf("性别:%s\n", students[i].gender);
printf("学号:%s\n", students[i].id);
return;
}
}
printf("未找到该学生!\n");
}
// 添加学生成绩
void add_score(struct student *students, int count, char *id) {
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("请输入语文成绩:");
scanf("%f", &students[i].scores[0]);
printf("请输入数学成绩:");
scanf("%f", &students[i].scores[1]);
printf("请输入英语成绩:");
scanf("%f", &students[i].scores[2]);
printf("请输入物理成绩:");
scanf("%f", &students[i].scores[3]);
printf("请输入化学成绩:");
scanf("%f", &students[i].scores[4]);
printf("添加成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 删除学生成绩
void delete_score(struct student *students, int count, char *id) {
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
memset(students[i].scores, 0, sizeof(students[i].scores));
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 修改学生成绩
void modify_score(struct student *students, int count, char *id) {
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("请输入要修改的科目(1-语文,2-数学,3-英语,4-物理,5-化学):");
int subject;
scanf("%d", &subject);
printf("请输入新成绩:");
scanf("%f", &students[i].scores[subject - 1]);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 查询学生成绩
void query_score(struct student *students, int count, char *id) {
int i;
for (i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("语文成绩:%f\n", students[i].scores[0]);
printf("数学成绩:%f\n", students[i].scores[1]);
printf("英语成绩:%f\n", students[i].scores[2]);
printf("物理成绩:%f\n", students[i].scores[3]);
printf("化学成绩:%f\n", students[i].scores[4]);
return;
}
}
printf("未找到该学生!\n");
}
// 统计学生成绩
void statistics(struct student *students, int count) {
float chinese_sum = 0, math_sum = 0, english_sum = 0, physics_sum = 0, chemistry_sum = 0;
int i, j;
for (i = 0; i < count; i++) {
chinese_sum += students[i].scores[0];
math_sum += students[i].scores[1];
english_sum += students[i].scores[2];
physics_sum += students[i].scores[3];
chemistry_sum += students[i].scores[4];
}
printf("语文平均分:%f\n", chinese_sum / count);
printf("数学平均分:%f\n", math_sum / count);
printf("英语平均分:%f\n", english_sum / count);
printf("物理平均分:%f\n", physics_sum / count);
printf("化学平均分:%f\n", chemistry_sum / count);
}
// 主函数
int main() {
struct student students[100];
int count = 0;
while (1) {
printf("请选择要进行的操作(1-添加,2-删除,3-修改,4-查询,5-添加成绩,6-删除成绩,7-修改成绩,8-查询成绩,9-统计成绩,0-退出):");
int option;
scanf("%d", &option);
if (option == 1) {
add_student(students, &count);
} else if (option == 2) {
char id[20];
printf("请输入要删除的学生学号:");
scanf("%s", id);
delete_student(students, &count, id);
} else if (option == 3) {
char id[20];
printf("请输入要修改的学生学号:");
scanf("%s", id);
modify_student(students, count, id);
} else if (option == 4) {
char id[20];
printf("请输入要查询的学生学号:");
scanf("%s", id);
query_student(students, count, id);
} else if (option == 5) {
char id[20];
printf("请输入要添加成绩的学生学号:");
scanf("%s", id);
add_score(students, count, id);
} else if (option == 6) {
char id[20];
printf("请输入要删除成绩的学生学号:");
scanf("%s", id);
delete_score(students, count, id);
} else if (option == 7) {
char id[20];
printf("请输入要修改成绩的学生学号:");
scanf("%s", id);
modify_score(students, count, id);
} else if (option == 8) {
char id[20];
printf("请输入要查询成绩的学生学号:");
scanf("%s", id);
query_score(students, count, id);
} else if (option == 9) {
statistics(students, count);
} else if (option == 0) {
break;
}
}
return 0;
}
```
这段代码包含了一个学生成绩管理系统的基本功能,但是还有很多细节需要进一步完善和优化。希望这个代码片段能够对您有所帮助!