📄 jianfei.cpp
字号:
#include <iostream.h>
#include <string.h>
class CMan {
private:
char szName[20];//区分不同的人
float height, weight;//保存一个人的身高和体重信息
float figureQuota;//保存一个人的体重指标信息
static int peopleTotal; //保存群体的总人数
static float quotaSum; //保存群体的全部体重指标之和
float computeQuota();//计算体重指标
public :
CMan(char* name, float h, float w);
float getDiffToAverage();
//查看体重指标与群体平均指标的差
float getQuota();//查看体重指标
~CMan();
//运算符重栽
// man>>5:man的身高增长了5厘米
// man+8:man的体重增长了8公斤
// 7+man:man的体重增长了7公斤
CMan &operator>>(int varHeight);
CMan &operator+(int varWeight);
friend CMan &operator+(int varWeight, CMan &man);
//强制类型转换
// quota = (float) man: 把man根据他的体重指数转换成一个浮点数
operator float() const;
};
int CMan::peopleTotal=0;
float CMan::quotaSum=0;
CMan::CMan( char * name, float h, float w)
{
strcpy(szName,name );
height = h;
weight = w;
figureQuota = computeQuota();//在成员函数中调用其他的private成员函数
peopleTotal++;
quotaSum += figureQuota;
return;
}
float CMan:: computeQuota() {
float temp;
temp=height-105;
temp=(temp/weight)*100;
return(temp);
}
float CMan::getQuota(){ //获取一个人的体重指标信息
return (figureQuota);
}
float CMan::getDiffToAverage(){
return(figureQuota-quotaSum/peopleTotal);
}
CMan::~CMan(){ //消除一个人对群体的影响
peopleTotal--;
quotaSum -=figureQuota;
return;
}
CMan &CMan::operator>>(int varHeight){ //长高了
quotaSum -= figureQuota; //减少一个人对群体的影响
height= height+varHeight;
figureQuota = computeQuota();//重计算
quotaSum =quotaSum+figureQuota; //加上一个人对群体的影响
return(*this);
}
CMan &CMan::operator+(int varWeight){ //增加体重
quotaSum =quotaSum-figureQuota;;
weight += varWeight;
figureQuota =computeQuota() ;
quotaSum =quotaSum+figureQuota;
return(*this);
}
CMan &operator+(int varWeight, CMan &man){ //增加体重
man.quotaSum =man.quotaSum-man.figureQuota;;
man.weight += varWeight;
man.figureQuota =man.computeQuota() ;
man.quotaSum =man.quotaSum+man.figureQuota;
return(man);
}
CMan::operator float() const{
return ((float)figureQuota);
}
void main()
{
CMan Jimmy("Jimmy", 185, 90), Bill("Bill", 178, 65), George("Geroge", 165, 67);
cout<<"Jimmy: figure quota="<<Jimmy.getQuota()<<endl;
cout<<"Jimmy: figure quota="<<(float)Jimmy<<endl;
Jimmy>>5;//Jimmy长高了5厘米
Jimmy+20;//Jimmy体重增加了20公斤
cout<<"Jimmy: figure quota="<<(float)Jimmy<<", after 2 years"<<endl;
-14+Jimmy;//Jimmy经过节食控制后,体重下降了14公斤
cout<<"Jimmy: figure quota="<<(float)Jimmy<<", after diet"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -