问题及代码:
/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:main.cpp
*作 者:李磊涛
*完成时间:2016年4月17日
*版 本 号:v1.0
*
*问题描述:游戏情节。
*输入描述:无。
*程序输出:每个人的情况。
*/
#include <iostream>
#include<string>
using namespace std;
class weapon
{
public:
void wea(string nam);
void shuxing(int gongji);
void leixing(string lei);
void show();
int gongji();
private:
string name;
int gongjizhi;
};
void weapon::wea(string nam)
{
name=nam;
}
void weapon::shuxing(int gongji)
{
gongjizhi=gongji;
}
int weapon::gongji()
{
return gongjizhi;
}
class Role
{
public:
Role( string nam,int n,string wnam,int g);
~Role();
void show();
void attack();
void eat(int n);
void attack(Role &r);
bool life();
private:
string name;
int blood;
weapon wea;
};
bool Role::life()
{
if(blood>0)
return true;
else
return false;
}
Role::Role( string nam,int n,string wnam,int g)
{
name=nam;
blood=n;
wea.wea(wnam);
wea.shuxing(g);
}
Role::~Role()
{
cout<<name<<"退出江湖..."<<endl;
}
void Role::show()
{
cout<<"昵称:"<<name;
cout<<"血量:"<<blood;
if(life())
cout<<"生存。"<<endl;
else
cout<<"死亡。"<<endl;
}
void Role::attack(Role &r)
{
if(life())
{
blood+=wea.gongji();
r.blood-=wea.gongji();
}
}
void Role::eat(int n)
{
blood=blood+n;
}
int main( )
{
Role mary("Mary", 500, "TuLong",200);
Role jack("Jack", 10, "YiTian", 180);
cout<<"---begin---"<<endl;
mary.show();
jack.show();
cout<<"---1st round---"<<endl;
jack.attack(mary);
mary.show();
jack.show();
cout<<"---2nd round---"<<endl;
mary.attack(jack);
mary.show();
jack.show();
cout<<"---end---"<<endl;
return 0;
}
运行结果:
通过该程序,强化了我对多类联合的认识。
学习心得:
期间有很多小错误,对于两个类连起来还不是很熟悉要多做题熟悉。