⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jianfei.cpp

📁 一个关于身高体重的减肥源代码 用c++语言编写 用来对c++重载的使用训练
💻 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 + -