#include
#include<string>
using namespace std;
class Student
{
public:
Student(string no,int g)
{
num=no;
grade=g;
}
string get_num();
int get_grade();
private:
string num;
int grade;
};
int main(){
Student stu[5]={
Student("1",90),
Student("2",95),
Student("3",80),
Student("4",85),
Student("5",100)
};
}
之后怎么写,因为grade是私有数据写的话不知道怎么调用
题目:main函数中建立一个对象数组,内放5个学生数据(学号(字符串类型)、成绩(整型))。设计一个函数max,形式为string max(Student *p),用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者并返回其学号,在main函数中输出其学号。
“Devil组”引证GPT后的撰写:
在 Student 类中添加一个公有成员函数 get_num() 来获取学生的学号。另外,由于需要比较成绩大小,可以添加一个公有成员函数 get_grade() 来获取学生的成绩。
下面是实现 max 函数的示例代码:
#include <iostream>
#include <string>
using namespace std;
class Student
{
public:
Student(string no, int g)
{
num = no;
grade = g;
}
string get_num()
{
return num;
}
int get_grade()
{
return grade;
}
private:
string num;
int grade;
};
string max(Student *p)
{
int max_grade = 0;
string max_num;
for (int i = 0; i < 5; i++)
{
if (p[i].get_grade() > max_grade)
{
max_grade = p[i].get_grade();
max_num = p[i].get_num();
}
}
return max_num;
}
int main()
{
Student stu[5] = {
Student("1", 90),
Student("2", 95),
Student("3", 80),
Student("4", 85),
Student("5", 100)
};
string max_num = max(stu);
cout << "最高成绩的学生学号为:" << max_num << endl;
return 0;
}
在 max 函数中,使用一个 for 循环遍历所有学生,找出成绩最高的学生的学号并返回。在 main 函数中,调用 max 函数并输出最高成绩的学生学号。
不知道你这个问题是否已经解决, 如果还没有解决的话: