#include<iostream>
using namespace std;
class CStudent{
private:
int id_,math_,forlan_,computer_;
char *name_;
public:
CStudent(int id=0,char *name=" ",int math=0,int forlan=0,int computer=0):id_(id),name_(name),math_(math),forlan_(forlan),computer_ (computer)
{}
int getAverage();
int getTotal();
void displayInfor();
void setName(char * name);
void setId(int id);
friend void getRank(CStudent grade[], int size);
/*{
int i, j;
CStudent temp;
for(i=0; i<size-1; i++){
for(j=i+1; j<size; j++){
if(grade[i].getTotal() < grade[j].getTotal()){
temp = grade[i];
grade[i] = grade[j];
grade[j] = temp;
}
}
}
for(i=0; i<size; i++){
grade[i].displayInfor();
}
}
*/
};
int CStudent::getAverage(){
return getTotal() / 3;
}
int CStudent::getTotal(){
return math_ + forlan_ + computer_;
}
void CStudent::displayInfor(){
cout<<"name: "<<name_ <<" ID: "<<id_<<" math: "<<math_<<
" foreign langue: "<<forlan_<<" computer: "<<computer_<<endl;
}
void CStudent::setName(char *name){
name_ = name;
}
void CStudent::setId(int id){
id_ = id;
}
void getRank(CStudent grade[], int size){
int i, j;
CStudent temp;
for(i=0; i<size-1; i++){
for(j=i+1; j<size; j++){
if(grade[i].getTotal() < grade[j].getTotal()){
temp = grade[i];
grade[i] = grade[j];
grade[j] = temp;
}
}
}
for(i=0; i<size; i++){
grade[i].displayInfor();
}
}
void main()
{
CStudent *grade = new CStudent[3];
grade[0] = CStudent(1,"hy1",1,3,3);
grade[1] = CStudent(2,"hy2",2,3,3);
grade[2] = CStudent(3,"hy3",3,3,3);
getRank(grade, 3);
delete []grade;
return;
}
转自http://bbs.csdn.net/topics/390477302?page=1#post-394666155
扩展练习4(学生类设计).设计一个友元函数,按照成绩从高到低的顺序输出姓名、学号和成绩信息
最新推荐文章于 2022-08-25 19:21:14 发布