用c语言面向对象定义一个结构体类型,可输入多个学生的学号、姓名、三门科目成绩
时间: 2024-10-13 15:19:08 浏览: 64
在C语言中,虽然C本身并不完全支持面向对象编程,但我们可以通过模拟的方式来创建类似的概念。这里我们可以定义一个结构体(struct),它包含了学生的基本信息,如学号、姓名和三门科目的成绩。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个结构体类型,表示一个学生
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float score_english; // 英语成绩
float score_math; // 数学成绩
float score_science; // 科学成绩
} Student;
// 功能:创建并初始化一个新的学生实例
Student* create_student(int id, const char* name, float english_score, float math_score, float science_score) {
Student* new_student = (Student*)malloc(sizeof(Student));
if (new_student != NULL) {
new_student->student_id = id;
strncpy(new_student->name, name, sizeof(new_student->name) - 1); // 注意字符串结束符'\0'
new_student->score_english = english_score;
new_student->score_math = math_score;
new_student->score_science = science_score;
}
return new_student;
}
// 功能:打印学生信息
void print_student(const Student* student) {
printf("学号:%d, 姓名:%s\n", student->student_id, student->name);
printf("英语:%.2f, 数学:%.2f, 科学:%.2f\n", student->score_english, student->score_math, student->score_science);
}
int main() {
// 创建并显示一个学生示例
Student* example = create_student(1, "张三", 85.0, 90.0, 88.5);
print_student(example);
// 可以添加更多操作函数,如删除学生等
free(example); // 释放内存
return 0;
}
```
阅读全文