(1)设计一个学生类Student:
属性有:学号、姓名、成绩;
行为包括:1.设置各个属性值(用构造函数完成);
2.得到某个属性值;
3.显示所有属性值;
(2)设计Student类的一个友元函数friend void sort(Student s[],int n)将学生成绩排序
有5个学生的数据,每个学生的数据包括学号、姓名和成绩:
101 王刚 89
102 张刚 68
103 李刚 78
104 刘刚 56
105 赵刚 69
主函数中定义一个对象数组teststudent[5],并用5名学生的学号、姓名和成绩对其初始化。然后完成以下任务:
(1) 统计大于或等于平均分的人数;
(2) 将5个学生按成绩由高到低排序;
(3) 输出排序后学生的学号、姓名和平均成绩;
完成这个与实验后(用的是面向对象程序设计方法)与实验五中处理同样的问题(用的是面向过程程序设计方法)做一下比较,体会它们的不同之处。进而逐步适应和掌握面向对象程序设计方法。
注:假设a,b是两个同类的对象,那么
a = b;
相当于b的数据成员对a的数据成员分别赋值
部分代码:
#include <iostream.h>
#include <string.h>
class Student{
public:
Student(int no,char name[], int g); //构造函数
Student();//默认构造函数
char *getName();//得到姓名
int getNo(); //得到学号
int getScore();//得到成绩
void output();//显示所有属性值
friend void sort(Student s[],int n);//友元函数用于根据成绩排序
private:
int sNo;
char sName[10];
int score;
};
void sort(Student s[],int n){ //友元函数定义
.......
}
void main(){
const int number=5;
Student teststudent[number]={Student(101,” 王刚”, 89),Student(102,”张刚”, 68),
Student(103,”李刚”, 78),Student(104,”刘刚”,56), Student(105,”赵刚”, 69)};
/*若从键盘输入数据,需下面这段代码
int i,s,no;
char name[10];
for(i=0;i<number;i++){
cin>>no>>name>>s;//从键盘输入一个学生的学号、姓名和成绩
teststudent[i]=Student(no,name,s);//将一个无名对象赋给对象数组元素
}
*/
.......
.......
}
我帮你写!你什么时候要呢!
下面的程序已经按照你的要求写好了!如果有疑问的话就追问!
如果没有问题了的话就麻烦把我的答案选为满意答案!
#include <iostream.h>