- 整理思维导图
2.定义一个Student结构体,里面的成员有公有成员name、age,私有成员:score,从堆区连续分配3个结构体大小的空间,从键盘上输入3个学生的信息,分别存放到对应的位置上,按成绩的升序排序后输出三名学生的信息。
#include <iostream>
using namespace std;
struct Student
{
string name;
int age;
private:
float score;
public:
float set_score()
{
cin >> score;
}
float show_score()
{
return score;
}
};
void input(Student* a)
{
for(int i=0;i<3;i++)
{
cout << "请输入" << i+1 << "的信息:" << endl;
cout << "please input the name of student:";
cin >> a[i].name;
cout << "please input the age of student:";
cin >> a[i].age;
cout << "please input the score of student:";
a[i].set_score();
}
}
void bubble(Student *a)
{
Student temp;
for(int i=1;i<3;i++)
{
for(int j=0;j<3-i;j++)
{
if(a[j].show_score()>a[j+1].show_score())
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void output(Student* a)
{
for(int i=0;i<3;i++)
{
cout << "姓名" << a[i].name << " ";
cout << "年龄" << a[i].age << " ";
cout << "分数" << a[i].show_score() << endl;
}
}
int main()
{
Student* ptr = new Student[3];
//输入学生信息
input(ptr);
//按成绩排序
bubble(ptr);
//输出
output(ptr);
return 0;
}