封装一个结构体,结构体中包含一个私有数组,用来存放学生的成绩,包含一个私有变量,用来记录学生个数,
提供一个公有成员函数,void setNum(int num)用于设置学生个数
提供一个公有成员函数:void input(),用来对所有学生的成绩进行输入工作
提供一个公有成员函数:void sort(),用来实现对存储的学生成绩进行降序排序
提供一个公有的成员函数:void show(),用于将所有学生的成绩展示出来
在主程序中,完成相关函数的调用
#include <iostream>
using namespace std;
struct Stu
{
private:
int *score = nullptr; //定义一个储存学生成绩的数组
private:
int num;
public:
void setNum()
{
cout<<"请设置学生个数:";
cin>>num;
cout<<endl;
score = new int[num]; //申请成绩数组的空间
}
//输入学生成绩
public:
void input()
{
//循环输入学生成绩
for(int i=0; i<num; i++)
{
cout<<"请输入第"<<i+1<<"个学生的成绩:";
cin>>score[i];
cout<<endl;
}
}
//排序
public:
void sort()
{
int temp;
for(int i=1; i<num; i++)
{
for(int j=0; j<num-i; j++)
{
if(score[j]<score[j+1])
{
temp = score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}
}
//显示成绩
public:
void show()
{
cout<<"共有"<<num<<"个学生"<<endl;
cout<<"学生成绩降序为:";
for(int i=0; i<num; i++)
{
cout<<score[i]<<" ";
}
cout<<endl;
}
//释放内存
public:
void free()
{
delete []score;
score = nullptr;
}
};
int main()
{
Stu s1;
s1.setNum();
s1.input();
s1.sort();
s1.show();
s1.free();
return 0;
}