问题及代码:
/*copyright(c)2016.烟台大学计算机学院
* All rights reserved,
* 文件名称:text.Cpp
* 作者:吴敬超
* 完成日期:2016年4月5日
* 版本号:vc++6.0
*
* 问题描述:武器类
* 输入描述:
* 程序输出: 输出结果
*/
#include<iostream>
using namespace std;
class Weapon
{
public:
Weapon(string name1,int n);
int iforce();
private:
string name0;
int force;
};
Weapon::Weapon(string name1,int n):name0(name1),force(n)
{
}
int Weapon::iforce()
{
return force;
}
class Role
{
public:
Role(string name2,int x,string name1,int n);
~Role();
void eat();
void attack(Role &r);
bool live();
void show();
private:
string name;
int blood;
Weapon weapon;
bool life;
};
Role::Role(string name2,int x,string name1,int n):name(name2),blood(x),weapon(name1,n)
{
if(blood>0)
{
life=true;
}
else
{
life=false;
}
}
Role::~Role()
{
cout<<name<<"退出江湖"<<endl;
}
void Role::attack(Role &r)
{
if(live())
{
blood=weapon.iforce();
r.blood=weapon.iforce();
if(r.blood<=0)
{
r.life=true;
}
}
}
bool Role::live()
{
return life;
}
void Role::show()
{
cout<<name<<" has "<<blood<<"blood,it is ";
if(live())
{
cout<<"alive"<<endl;
}
else
{
cout<<"dead"<<endl;
}
}
int main( )
{
Role mary("Mary", 500, "TuLong",200);
Role jack("Jack", 10, "YiTian", 180);
cout<<"---开始---"<<endl;
mary.show();
jack.show();
cout<<"---第一回合---"<<endl;
jack.attack(mary);
mary.show();
jack.show();
cout<<"---第二回合---"<<endl;
mary.attack(jack);
mary.show();
jack.show();
cout<<"结束"<<endl;
return 0;
}
运行结果: