第七周实践项目3————用多文件组织多个类的程序
来源:互联网 发布:mac mail 设置模板 编辑:程序博客网 时间:2024/05/21 09:46
问题及代码:
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年4月10日 * 版本号:vc++6.0 * * 问题描述: 用多文件组织多个类的程序之带武器的游戏角色类 * 输入描述: * 程序输出: 输出结果 */ //文件1:类的定义,Weapon.h<pre class="cpp" name="code">#ifndef WEAPON_H_INCLUDED#define WEAPON_H_INCLUDEDusing namespace std;class Weapon{public: Weapon(string wnam, int f); int getForce();private: string wname; //名称 int force; //威力};class Role{public: Role(string nam, int b, string wnam, int f); //构造函数 ~Role(); //析构函数 void eat(int d); //吃东西,涨d血 void attack(Role &r); //攻击别人,自己涨血,同时失血 bool isAlived(); //是否活着 void show(); //显示private: string name; int blood; Weapon weapon; bool life;};#endif // WEAPON_H_INCLUDED
//类的实现,文件2Weapon.cpp#include <iostream>using namespace std;#include"Weapon.h"Weapon::Weapon(string wnam, int f):wname(wnam),force(f) {}int Weapon::getForce(){ return force;}class Role{public: Role(string nam, int b, string wnam, int f); //构造函数 ~Role(); //析构函数 void eat(int d); //吃东西,涨d血 void attack(Role &r); //攻击别人,自己涨血,同时失血 bool isAlived(); //是否活着 void show(); //显示private: string name; int blood; Weapon weapon; bool life;};//文件3,类的实现,Role.cpp#include"Weapon.h"#include <iostream>using namespace std;Role::Role(string nam, int b, string wnam, int f):name(nam),blood(b),weapon(wnam,f){ if(blood>0) life=true; else life=false;}Role::~Role(){ cout<<name<<"退出江湖..."<<endl;}void Role::eat(int d) //吃东西,涨d血{ if(isAlived()) blood+=d;}void Role::attack(Role &r) //攻击别人,涨1血{ if(isAlived()) { blood+=weapon.getForce(); r.blood-=weapon.getForce(); if(r.blood<=0) r.life=false; }}bool Role::isAlived() //是否活着{ return life;}void Role::show() //显示{ cout<<name<<" has "<<blood<<" blood, it is "; if(isAlived()) cout<<"alived."; else cout<<"dead."; cout<<endl;}//文件4,主函数,main.cpp#include <iostream>using namespace std;#include"Role.h"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;}
运行结果:
0 0
- 第七周上机实践项目——项目3-用多文件组织多个类的程序
- 第七周实践项目3————用多文件组织多个类的程序
- 第七周实践项目-用多文件组织多个类的程序
- 第七周项目3——用多文件组织多个类的程序
- 第七周项目3—用多文件组织多个类的程序
- 第七周项目3—用多文件组织多个类的程序
- 第五周上机实践项目3——用多文件组织多个类的程序
- 第七周项目3-用多文件组织多个类的程序
- 第七周项目3-用多文件组织多个类的程序
- 第七周项目3-用多文件组织多个类的程序
- 第六周上机实践项目——用多文件组织多个类的程序
- 第五周 课后实践:项目三——用多文件组织多个类的程序
- 第五周 课后实践:项目四——用多文件组织多个类的程序
- 第七周项目三 用多文件组织多个类的程序
- 第七周项目三-用多文件组织多个类的程序
- 第七周项目三 用多文件组织多个类的程序
- 第11周上机实践项目3——程序的多文件组织
- 第三周上机实践项目3——程序的多文件组织
- 107. Binary Tree Level Order Traversal II
- Error setting expression 'tel' with value '[Ljava.lang.String;@38ec843'和'user.tel' with value
- C#执行batwindows批处理
- 一文搞懂C/C++中指针那些事(上篇)
- studyjams notes 1B--width and height
- 第七周实践项目3————用多文件组织多个类的程序
- 二维数组查找问题
- 毕设笔记--MyEclipse10与MySQL建立数据库连接
- Android Studio常用快捷键及设置
- 欢迎使用CSDN-markdown编辑器
- 删除链表中重复的结点
- Ceph存储系统(ceph安装,inkscope安装)--未完
- 使用Autotools构建C++项目
- 微软 Font Size