问题:创建一个对象指针,动态给这个指针分配连续空间构成类似数组的数据结构,数组的元素是学生对象,学生的信息包括学号、姓名和成绩(一门课成绩),在main函数中将数组元素按学生成绩从小到大的顺序排序并显示出来。(学生对象不得少于5个,显示定义构造函数和析构函数,并在里面加上测试语句)
我写的:
#include<iostream>
#include<string>
using namespace std;
class student//声明学生类
{public:
student() = default;//默认构造函数
student(string student_name, double student_id, double student_score)//有参构造函数
{
name = student_name;
id = student_id;
score = student_score;
}
~student()//析构函数
{
cout << "student的析构函数调用" << endl;
}
void getinfo()//获取信息
{
cout << "名字:" << name << "\t学号:" << id << "\t成绩:" << score << endl;
}
double getscore()//获取成绩
{
return score;
}
string name;
double id;
double score;
};
void test01()//测试
{
student p1("james", 11111, 100);
p1.getinfo();
}
int main()
{
//test01();测试语句
student info[5] = {
student("小李",111,92),
student("小张",112,98),
student("小谭",113,93),
student("小冉",114,97),
student("小陈",115,95)
};
cout << "五名学生的信息为:" << endl;
for (int i = 0; i < 5; i++)
{
info[i].getinfo();
}
cout << "五名学生按照成绩从小到大排列:" << endl;
for (int j = 0; j < 4; j++)//按成绩从小到大将每名学生的位置交换
{
for (int i = 0; i < 4; i++)
{
if (info[i].getscore() > info[i + 1].getscore())
{
student temp;
temp = info[i];
info[i] = info[i + 1];
info[i + 1] = temp;
}
}
}
for (int i = 0; i < 5; i++)
{
info[i].getinfo();
}
system("pause");
return 0;
}
怎么创建对象指针啊!
#include<iostream>
#include<string>
using namespace std;
class student//声明学生类
{
public:
student() {}//默认构造函数
student(string student_name, double student_id, double student_score)//有参构造函数
{
name = student_name;
id = student_id;
score = student_score;
}
~student()//析构函数
{
cout << "student的析构函数调用" << endl;
}
void getinfo()//获取信息
{
cout << "名字:" << name << "\t学号:" << id << "\t成绩:" << score << endl;
}
double getscore()//获取成绩
{
return score;
}
string name;
double id;
double score;
};
void test01()//测试
{
student p1("james", 11111, 100);
p1.getinfo();
}
int main()
{
//test01();测试语句
student* info = new student[5]; //动态申请5个空间
info[0] = student("小李",111,92);
info[1] = student("小张",112,98);
info[2] = student("小谭",113,93);
info[3] = student("小冉",114,97);
info[4] = student("小陈",115,95);
cout << "五名学生的信息为:" << endl;
for (int i = 0; i < 5; i++)
{
info[i].getinfo();
}
cout << "五名学生按照成绩从小到大排列:" << endl;
for (int j = 0; j < 4; j++)//按成绩从小到大将每名学生的位置交换
{
for (int i = 0; i < 4; i++)
{
if (info[i].getscore() > info[i + 1].getscore())
{
student temp;
temp = info[i];
info[i] = info[i + 1];
info[i + 1] = temp;
}
}
}
for (int i = 0; i < 5; i++)
{
info[i].getinfo();
}
system("pause");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!