用C语言编写一个班级的学生信息管理系统,系统的主要功能如下。要求在前边CStudent类的基础上, 定义一个班级类CGrade, 其中包含如下成员:
时间: 2024-11-06 16:17:01 浏览: 4
在C语言中,由于缺乏内置的类支持,我们通常会使用结构体和函数来模拟这种面向对象的概念。首先,我们可以创建一个`CStudent`结构体表示学生,然后定义一个`CGrade`结构体表示班级,包含学生的数组和一些管理功能。
```c
// 定义CStudent结构体
typedef struct {
char name[50];
int age;
float score; // 分数
} CStudent;
// 定义CGrade结构体,包含一个CStudent数组和班级人数
typedef struct {
int capacity;
CStudent students[MAX_STUDENTS];
int currentStudents;
} CGrade;
// 班级相关函数
void initGrade(CGrade* grade) {
grade->capacity = MAX_STUDENTS;
grade->currentStudents = 0;
}
void addStudent(CGrade* grade, const char* name, int age, float score) {
if (grade->currentStudents < grade->capacity) {
strcpy(grade->students[grade->currentStudents].name, name);
grade->students[grade->currentStudents].age = age;
grade->students[grade->currentStudents].score = score;
grade->currentStudents++;
} else {
printf("班级已满,无法添加更多学生。\n");
}
}
void displayGrade(const CGrade* grade) {
for (int i = 0; i < grade->currentStudents; i++) {
printf("学生 %d: 姓名:%s, 年龄:%d, 成绩:%f\n", i + 1, grade->students[i].name, grade->students[i].age, grade->students[i].score);
}
}
// 示例如何使用
int main() {
CGrade class;
initGrade(&class);
// 添加学生
addStudent(&class, "小明", 18, 90.5);
addStudent(&class, "小红", 17, 85.0);
// 显示班级信息
displayGrade(&class);
return 0;
}
```
阅读全文