问题及代码:
/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:main.cpp
*作 者:李磊涛
*完成时间:2016年4月10日
*版 本 号:v1.0
*
*问题描述:简单游戏设计+武器。
*输入描述:武器属性。
*程序输出:角色血量和存活情况。
*/
#include <iostream>
#include<string>
using namespace std;
int shanghai;
class weapon
{
public:
void wea(string nam);
void shuxing(int gongji,int baoji,int gongsu,int fangyu);
void leixing(string lei);
void show();
private:
string name,pinzhi;
int gongjizhi,baojizhi,gongsuzhi,fangyuzhi;
};
void weapon::wea(string nam)
{
name=nam;
}
void weapon::shuxing(int gongji,int baoji,int gongsu,int fangyu)
{
gongjizhi=gongji;
shanghai=gongji;
baojizhi=baoji;
gongsuzhi=gongsu;
fangyuzhi=fangyu;
}
void weapon::leixing(string lei)
{
pinzhi=lei;
}
void weapon::show()
{
cout<<"名字"<<name<<endl;
cout<<"品质"<<pinzhi<<endl;
cout<<"攻击"<<gongjizhi<<endl;
cout<<"暴击"<<baojizhi<<endl;
cout<<"攻速"<<gongsuzhi<<endl;
cout<<"防御"<<fangyuzhi<<endl;
}
class Role
{
public:
void setRole( string nam,int n);
void show();
void attack();
void eat(int n);
void beAttack();
bool life();
private:
string name;
int blood;
};
int main( )
{
weapon jian;
jian.wea("jian");
int a,b,c,d;
cout<<"攻击力";
cin>>a;
cout<<"暴击值";
cin>>b;
cout<<"攻速";
cin>>c;
cout<<"防御";
cin>>d;
jian.shuxing(a,b,c,d);
jian.leixing("shenqi");
jian.show();
Role mary;
mary.setRole("Mary", 4);
mary.show();
mary.attack();
mary.eat(2);
mary.beAttack();
mary.beAttack();
mary.show();
return 0;
}
bool Role::life()
{
if(blood>0)
return true;
else
return false;
}
void Role::setRole( string nam,int n)
{
name=nam;
blood=4;
}
void Role::show()
{
cout<<"昵称:"<<name;
cout<<"血量:"<<blood;
if(life())
cout<<"生存。"<<endl;
else
cout<<"死亡。"<<endl;
}
void Role::attack()
{
blood=blood+shanghai;
}
void Role::eat(int n)
{
blood=blood+n;
}
void Role::beAttack()
{
blood=blood-shanghai;
}
运行结果:
通过该程序,强化了我对类的组合的认识。
学习心得:
期间有很多小错误,不过比上星期有了一些进步。