string name;
若想表示字符串为空:
1:name=="";
2:name.length()<=0;
3:name.empty(); 若为空,则返回1;
F.比武大赛 | |||||
| |||||
Description | |||||
利用面向对象程序设计的方法,实现给定类的设计,并解决如下问题。 英雄三人分胜负。谁赢谁输要看他们的智商IQ、内力修炼IF、所持兵器WP三方面点数之和,设定点数之和各不相同。 英雄由类Hero表示,武器由类Weapon表示。 | |||||
Input | |||||
1组测试数据。测试数据有3行输入。 第1行输入只靠IQ的英雄(IF=0,WP=0)数据,分别是名字(string型)、智商IQ(int型)。 第2行输入仅靠IQ&IF的英雄(WP=0)数据,分别是名字(string型)、智商IQ(int型)、内力修炼IF(int型),数据之间由空格分隔。 第3行输入靠IQ&IF&WP的英雄数据,分别是名字(string型)、智商IQ(int型)、内力修炼IF(int型)、所持兵器名字(string型)及攻击力WP(int型),数据之间由空格分隔。 | |||||
Output | |||||
输出数据占1行,是最终获胜英雄的名字、点数及武器名,空格分隔。 | |||||
Sample Input | |||||
Liu 1000 Guan 200 300 Zhang 400 200 Spear 300 | |||||
Sample Output | |||||
Liu 1000 UnArmed | |||||
Hint | |||||
注意:在给定类的基础上,完善类的设计。给定主函数不能改变。 class Weapon{ private: string name;//武器名字 int power;//武器攻击力WP public: ... }; class Hero{ private: string name;//英雄名字 int IQ;//智商IQ int IF;//内力修炼IF Weapon w;//所持武器 public: ... }; int main() { string n1,n2; int iq,iif,wp; int t(0); cin>>n1>>iq; Hero ZhuGL(n1,iq); cin>>n1>>iq>>iif; Hero ZhangSF(n1,iq,iif); cin>>n1>>iq>>iif>>n2>>wp; Hero GuoJ(n1,iq,iif,n2,wp),th("",0,0,"",0); if(ZhuGL.getTotal()>ZhangSF.getTotal()) {t=ZhuGL.getTotal();th=ZhuGL;} else {t=ZhangSF.getTotal();th=ZhangSF;} if(t<GuoJ.getTotal()) {t=GuoJ.getTotal();th=GuoJ;} cout<<th.getName()<<" "<<th.getTotal()<<" "<<th.getWeapon().getName()<<endl; return 0; } |
#include<iostream>
#include<string>
using namespace std;
class Weapon {
private:
string name;//武器名字
int power;//武器攻击力WP
public:
void set(string n, int p)
{
name = n, power = p;
}
int getH()
{
return power;
}
string getName()
{
if (name=="")
{
return "UnArmed";
}
return name;
}
};
class Hero {
private:
string name;//英雄名字
int IQ;//智商IQ
int IF;//内力修炼IF
Weapon w;//所持武器
public:
Hero(string n, int i) :name(n), IQ(i), IF(0) { w.set("", 0); }
Hero(string n, int i, int iiiif) :name(n), IQ(i), IF(iiiif) { w.set("", 0); }
Hero(string n, int i, int iiiif, string w_n, int w_p) :name(n), IQ(i), IF(iiiif) { w.set(w_n, w_p); }
int getTotal()
{
int a = IQ + IF + w.getH();
return a;
}
string getName()
{
return name;
}
Weapon getWeapon()
{
return w;
}
};
int main()
{
string n1, n2;
int iq, iif, wp;
int t(0);
cin >> n1 >> iq;
Hero ZhuGL(n1, iq);
cin >> n1 >> iq >> iif;
Hero ZhangSF(n1, iq, iif);
cin >> n1 >> iq >> iif >> n2 >> wp;
Hero GuoJ(n1, iq, iif, n2, wp), th("", 0, 0, "", 0);
if (ZhuGL.getTotal() > ZhangSF.getTotal())
{
t = ZhuGL.getTotal(); th = ZhuGL;
}
else
{
t = ZhangSF.getTotal(); th = ZhangSF;
}
if (t < GuoJ.getTotal())
{
t = GuoJ.getTotal(); th = GuoJ;
}
cout << th.getName() << " " << th.getTotal() << " " << th.getWeapon().getName() << endl;
return 0;
}