用c语言写代码,并详细描述代码。题目如下:用函数调用改写学生成绩管理 注意:文件格式仅限于: c、cpp、mp4。 允许多次提交,文件大小不能超过10 MB 。
时间: 2024-03-03 08:48:12 浏览: 55
好的,以下是用函数调用改写学生成绩管理的C语言代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
// 学生结构体,包含学生姓名和成绩
struct Student {
char name[20];
int score;
};
// 学生数组,存储所有学生信息
struct Student students[MAX_STUDENTS];
// 学生数量
int num_students = 0;
// 添加学生
void addStudent() {
struct Student s;
printf("请输入学生姓名:");
scanf("%s", s.name);
printf("请输入学生成绩:");
scanf("%d", &s.score);
students[num_students] = s;
num_students++;
}
// 显示所有学生信息
void showStudents() {
printf("所有学生信息如下:\n");
printf("姓名\t成绩\n");
for (int i = 0; i < num_students; i++) {
printf("%s\t%d\n", students[i].name, students[i].score);
}
}
// 查找学生
void findStudent() {
char name[20];
printf("请输入要查找的学生姓名:");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("%s的成绩为:%d\n", name, students[i].score);
return;
}
}
printf("找不到名为%s的学生\n", name);
}
// 删除学生
void deleteStudent() {
char name[20];
printf("请输入要删除的学生姓名:");
scanf("%s", name);
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
for (int j = i; j < num_students - 1; j++) {
students[j] = students[j+1];
}
num_students--;
printf("已删除名为%s的学生\n", name);
return;
}
}
printf("找不到名为%s的学生\n", name);
}
int main() {
int choice;
do {
printf("请选择要进行的操作:\n");
printf("1. 添加学生\n");
printf("2. 显示所有学生信息\n");
printf("3. 查找学生\n");
printf("4. 删除学生\n");
printf("5. 退出程序\n");
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
showStudents();
break;
case 3:
findStudent();
break;
case 4:
deleteStudent();
break;
case 5:
printf("程序已退出\n");
break;
default:
printf("无效选项,请重新输入\n");
break;
}
} while (choice != 5);
return 0;
}
```
该代码实现了一个学生成绩管理系统,包含添加学生、显示所有学生信息、查找学生和删除学生四个操作。使用了函数调用的方式,将每个操作封装成一个函数,使得代码结构更加清晰,易于维护和扩展。程序通过一个循环实现了菜单选择,根据用户的选择调用相应的函数来完成相应的操作。
阅读全文