class Score{ public:Score(int num,float math,float english,float programming); void setAverage(); float getAverage(); int getNum(); ~Score(); private:
int s_num; float s_math; float s_english;
float s_programming; float s_average; };
Score:: Score(int num,float math,float english,float programming) {
s_num=num; s_math=math;
s_english=english;
s_programming=programming; }
//计算平均分
void Score::setAverage() {
s_average=(s_math+s_english+s_programming)/3; }
//取平均分
float Score::getAverage() {
return s_average; }
//取学号
int Score::getNum() {
return s_num; }
Score::~Score() {
return; }
//按大小顺序排序
void Sort(Score **pScore,int n) { int k;
Score *temp;
for(int i=0;ifor(int j=(i+1);jif(pScore[j]->getAverage()>pScore[k]->getAverage()) k=j; if(k!=i) {temp=pScore[i];pScore[i]=pScore[k];pScore[k]=temp; } } }
void main() {
int n,num;
float math,english,programming; cout<<\"请输入学生个数:\"; cin>>n;
Score **p_student=new Score*[n];
cout<<\"请输入所有学生的学号和各科成绩\"
<<\"(各项之间以空格作为间隔,以回车作为一个学生输入信息的结束)\"<cin>>num>>math>>english>>programming;p_student[i]=new Score(num,math,english,programming); p_student[i]->setAverage(); }
Sort(p_student,n); for(i=0;icout<getNum()<【运行结果】:五、心得体会:
这次是C++第一实验,通过这次实验,我进一步了解了类的概念,类的定义方式和类的封装等。这次实验我也学会了构建工程文件和调试程序的基本方法,实验过程中遇到了不少困难,调试后发现,程序在调用sort子程序之后没有排序,修改之后程序实验了要求的功能。之前都没有仔细阅读老师给的程序,直接运用了上去,导致实验出错很多,在以后的实验中要多加思考,谨慎缜密。这次实验对我的帮助很大!