c语言中实现学生成绩录入,学生成绩的输出和按成绩查询学生信息 要用数组存储学生信息,基本功能用函数实现程序执行正确,用菜单调用
时间: 2024-03-24 16:41:25 浏览: 53
以下是C语言实现学生成绩录入、输出和按成绩查询学生信息的示例代码,使用数组存储学生信息,基本功能用函数实现,在菜单中调用不同的函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
struct student {
char name[20];
int score;
};
struct student students[MAX_STUDENTS];
int num_students = 0;
// 录入学生成绩
void add_student() {
if (num_students >= MAX_STUDENTS) {
printf("Error: Too many students!\n");
return;
}
struct student s;
printf("Enter name: ");
scanf("%s", s.name);
printf("Enter score: ");
scanf("%d", &s.score);
students[num_students++] = s;
}
// 输出学生成绩
void list_students() {
printf("Name\tScore\n");
for (int i = 0; i < num_students; i++) {
printf("%s\t%d\n", students[i].name, students[i].score);
}
}
// 按成绩查询学生信息
void find_students() {
int min_score, max_score;
printf("Enter min score: ");
scanf("%d", &min_score);
printf("Enter max score: ");
scanf("%d", &max_score);
printf("Name\tScore\n");
for (int i = 0; i < num_students; i++) {
if (students[i].score >= min_score && students[i].score <= max_score) {
printf("%s\t%d\n", students[i].name, students[i].score);
}
}
}
// 菜单函数
void menu() {
int choice;
do {
printf("\n");
printf("1. Add student\n");
printf("2. List students\n");
printf("3. Find students by score\n");
printf("4. Exit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
list_students();
break;
case 3:
find_students();
break;
case 4:
printf("Goodbye!\n");
break;
default:
printf("Invalid choice!\n");
break;
}
} while (choice != 4);
}
int main() {
menu();
return 0;
}
```
在这个示例代码中,我们仍然使用了一个结构体来表示学生信息,使用一个全局数组 `students` 来保存所有学生的信息,其中 `num_students` 表示已经录入的学生数量。
我们将基本功能函数 `add_student`、`list_students` 和 `find_students` 分别实现了录入学生成绩、输出学生成绩和按成绩查询学生信息的功能。在 `menu` 函数中,我们使用一个循环来接受用户输入的操作,并根据用户的选择调用不同的函数。
在主函数中,我们仅仅调用了 `menu` 函数,这个函数包含了所有的功能实现。
阅读全文