#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
class student
{
private:
string name;
int deg1,deg2,deg3;
public:
student(); //构造函数
~student(){}; //析构函数
void input(); //信息输入函数
void display(); //信息输出函数
friend student operator+(student &c1, student &c2);//双目运算符+的重载
void student::avg(int n);
};
student::student()//构造函数
{
name="no mame";
deg1=1;
deg2=0;
deg3=0;
}
void student::input()//输入函数
{
cout<<"姓名:";
cin>>name;
cout<<"高数成绩:";
cin>>deg1;
cout<<"英语成绩:";
cin>>deg2;
cout<<"计算机成绩:";
cin>>deg3;
}
student operator+( student &s1, student &s2)//运算符重载函数,返回值为student类
{
student all;
all.deg1=s1.deg1+s2.deg1;
all.deg2=s1.deg2+s2.deg2;
all.deg3=s1.deg3+s2.deg3;
return all;//因为是友元函数,所以可以访问 c1 c2类的私密成员
}
void student::avg(int n)//求平均值并输出
{
cout<<endl<<"班级平均分:"<<endl;
cout<<"高数:"<<this->deg1/n;
cout<<"英语:"<<this->deg2/n;
cout<<"计算机:"<<this->deg3/n;
}
void main()
{
student all;
int i;
char x='0';
student a[5]; //对象数组
cout<<"请输入五位同学的信息:"<<endl;
for( i=0;i<5;i++)//输入信息
{
cout<<i+1<<"号 ";
a[i].input();
}
all=a[0];
for(int j=1;j<i;j++)//求和,计算平均值
{
all=all+a[j];
}
all.avg(i);
}
重载 类对象作参数假设某班有N(5)名学生,开设M(3)门课程,依次为高数、英语、计算机,计算班级单科平均成绩。
于 2022-05-12 20:48:50 首次发布