用C++定义一个名为"S tudent”的类,该类具有私有成员变量表示学生的姓名、学号-川和英语成绩。实现构造函数和成员函数来设置和获取这些属性,以及计算学生的-|-语平均成绩的函数。然后编写一个主程序来创建多个学生对象,并计算他们的—|-均成绩。
时间: 2024-12-02 18:28:23 浏览: 1
在C++中,我们可以这样定义一个名为"Student"的类:
```cpp
#include <iostream>
#include <string>
class Student {
private:
std::string name;
int studentID;
float englishScore;
public:
// 构造函数
Student(const std::string& name, int studentID, float englishScore)
: name(name), studentID(studentID), englishScore(englishScore) {}
// 成员函数 - 设置属性
void setName(const std::string& newName) { name = newName; }
void setStudentID(int newID) { studentID = newID; }
void setEnglishScore(float newScore) { englishScore = newScore; }
// 成员函数 - 获取属性
const std::string getName() const { return name; }
int getStudentID() const { return studentID; }
float getEnglishScore() const { return englishScore; }
// 计算平均成绩的成员函数
float calculateAverageGrade() const {
// 如果只有一门课程,假设其他都是0分
if (englishScore == 0)
return englishScore;
else
return (englishScore + 0.0) / 2.0; // 返回平均值,这里为了简单处理,假设没有其他科目
}
// 主程序中不会直接调用这个函数,但它可以作为测试部分的一部分
friend void displayStudentInfo(Student& student);
};
// 在主程序之外定义一个友元函数,用于打印学生信息
void displayStudentInfo(Student& student) {
std::cout << "Name: " << student.getName() << "\n";
std::cout << "Student ID: " << student.getStudentID() << "\n";
std::cout << "English Score: " << student.getEnglishScore() << "\n";
std::cout << "Average Grade: " << student.calculateAverageGrade() << "\n";
}
int main() {
// 创建并初始化两个学生对象
Student student1("张三", 1001, 85.5);
Student student2("李四", 1002, 90);
// 调用显示学生信息的函数
displayStudentInfo(student1);
displayStudentInfo(student2);
return 0;
}
```
在这个例子中,我们定义了一个包含姓名、学号和英语成绩的学生类,包含了相应的构造函数和getter/setter方法。`calculateAverageGrade`函数用于计算平均成绩,而`displayStudentInfo`是友元函数,它可以在main函数外部访问到学生的内部数据。
阅读全文