1、PDE实验报告附件(四)深 圳 大 学 实 验 报 告 课程名称: 程序设计实验与课程设计 实验项目名称: 类入门 学院: 计算机与软件学院 专业: 未分 指导教师: 白鉴聪 报告人:谢伟雄 学号:2013150382 班级: 08 实验时间: 2014 年 5 月 23 日 实验报告提交时间: 2014-5-26 教务处制一、实验目的与完成说明:1. 简单介绍本实验的主要目的掌握类定义,类实现和类应用2. 说明本次实验中你完成了第几项要求(必填) 第一,第二和第三项要求二、主要思路与方法:1. 对于本次实验,介绍最重要的函数或算法,并谈谈你对这些函数或算法的理解Get函数,因为类中priva
2、te的数据不能直接使用,所以得用get方法来使用这些数据,保证数据的安全性三实验程序或内容:1. 针对每一项实验要求,给出编写的代码,可以粘贴全部代码,也可以只粘贴重要的代码(为了节省纸张),但代码必须完整,至少是完整的函数。2. 代码符合以下要求,评分更高:a. 排版整齐,可读性高b. 代码有注释,越详细越清晰越好1类定义.#includeusing namespace std;class Ultraman/奥特曼的类声明public:int getrank()return rank;int gethp()return hp;int getdamage()return damage;int
3、getmoney()return money;int getexp()return exp;void initial(int);void display();void win(int,int);/赢的情况void escape();/逃跑即输的情况void restore();/补血的情况 void upgrade();/升级的情况void attacked(int);/被攻击的情况private:/属性int rank;/等级int hp;/生命值int damage;/攻击力int money;/持有金钱int exp;/现有经验;class monster/小怪兽的类声明public:i
4、nt getrank()return rank;int gethp()return hp;int getdamage()return damage;int getmoney()return money;int getexp()return exp;void initial(int rank);void display();void attacked(int);/奥特曼攻击的情况private:int rank;/等级int hp;/生命值int damage;/攻击力int exp;/提供的经验int money;/提供的金钱 ;2.类实现#includeusing namespace std
5、;class Ultraman/奥特曼的类声明public:int getrank()return rank;int gethp()return hp;int getdamage()return damage;int getmoney()return money;int getexp()return exp;void initial(int);void display();void win(int,int);/赢的情况void escape();/逃跑即输的情况void restore();/补血的情况 void upgrade();/升级的情况void attacked(int);/被攻击的
6、情况private:/属性int rank;/等级int hp;/生命值int damage;/攻击力int money;/持有金钱int exp;/现有经验;class monster/小怪兽的类声明public:int getrank()return rank;int gethp()return hp;int getdamage()return damage;int getmoney()return money;int getexp()return exp;void initial(int rank);void display();void attacked(int);/奥特曼攻击的情况p
7、rivate:int rank;/等级int hp;/生命值int damage;/攻击力int exp;/提供的经验int money;/提供的金钱 ;void Ultraman:initial(int irank)/奥特曼的初始化函数rank=irank;hp=10*irank;damage=3*irank;money=10*irank;exp=0; void monster:initial(int irank)/怪兽的初始化函数rank=irank;hp=20*irank;damage=2*irank;money=10*irank;exp=10*irank;void Ultraman:d
8、isplay()/显示奥特曼状态的函数coutrank=rank hp=hp damage=damage exp=exp money=moneyendl;void monster:display()/显示怪兽状态的函数coutrank=rank hp=hp damage=damage exp=exp money=moneymoney/10)hp+=money/10;money=money%10;elsemoney-=(10*rank-hp)*10;hp=10*rank;void Ultraman:escape()/逃跑的情况money=0;coutloseendl;void Ultraman:
9、win(int monstermoney,int monsterexp)/赢的情况coutwint;while(t-)cinnm;/输入奥特曼和怪兽的等级a.initial(n);/奥特曼的初始化b.initial(m);/怪兽的初始化a.display();/输出奥特曼状态b.display();/输出怪兽状态flag=true;while(flag) /当战斗未结束就继续b.attacked(a.getdamage();if(b.gethp()0)a.attacked(b.getdamage();if(a.gethp()=10)a.escape();a.display();flag=fal
10、se;else if(a.gethp()=10*a.getrank()a.upgrade();a.display();flag=false;/ end while flag/ end while treturn 0;3.类应用#includeusing namespace std;class Ultraman/奥特曼的类声明public:int getrank()return rank;int gethp()return hp;int getdamage()return damage;int getmoney()return money;int getexp()return exp;void
11、initial(int);void display();void win(int,int);/赢的情况void escape();/逃跑即输的情况void restore();/补血的情况 void upgrade();/升级的情况void attacked(int);/被攻击的情况private:/属性int rank;/等级int hp;/生命值int damage;/攻击力int money;/持有金钱int exp;/现有经验;class monster/小怪兽的类声明public:int getrank()return rank;int gethp()return hp;int ge
12、tdamage()return damage;int getmoney()return money;int getexp()return exp;void initial(int,char);void display();void attacked(int);/奥特曼攻击的情况private:int rank;/等级int hp;/生命值int damage;/攻击力int exp;/提供的经验int money;/提供的金钱 ;void Ultraman:initial(int irank)/奥特曼的初始化函数rank=irank;hp=10*irank;damage=3*irank;mon
13、ey=10*irank;exp=0; void monster:initial(int irank,char type)/怪兽的初始化函数if(type=N)rank=irank;hp=10*irank;damage=2*irank;money=10*irank;exp=10*irank;else if(type=A)rank=irank;hp=5*irank;damage=5*irank;money=15*irank;exp=15*irank;else if(type=D)rank=irank;hp=25*irank;damage=irank;money=15*irank;exp=15*ir
14、ank;else if(type=M)rank=irank;hp=11*irank;damage=irank;money=25*irank;exp=25*irank;void Ultraman:display()/显示奥特曼状态的函数coutrank=rank hp=hp damage=damage exp=exp money=moneyendl;void monster:display()/显示怪兽状态的函数coutrank=rank hp=hp damage=damage exp=exp money=moneymoney/10)hp+=money/10;money=money%10;els
15、emoney-=(10*rank-hp)*10;hp=10*rank;void Ultraman:escape()/逃跑的情况money=0;coutloseendl;void Ultraman:win(int monstermoney,int monsterexp)/赢的情况coutwin=10*rank)exp-=10*rank;rank+;hp=10*rank;damage=3*rank; int main()int c,t,n,i,d,flag,lv100;char ty100;Ultraman a;monster b;cint;while(t-)d=1;cinc;/输入奥特曼等级a.
16、initial(c);/奥特曼的初始化a.display();/输出奥特曼状态cinn;for(i=0;ilvityi;/输入怪兽等级和种类i=0;while(i0)a.attacked(b.getdamage();if(a.gethp()=10)a.escape();a.display();flag=false;else if(a.gethp()5*a.getrank() a.restore(); elsea.win(b.getmoney(),b.getexp();a.upgrade();flag=false;/ end while flagi+;if(a.gethp()=10) break
17、;a.display();/ end while n/ end while treturn 0;四、实验结论: 根据你完成的每个实验要求,给出相应的实验结果图,并结合图来解析整个运行过程类实现先输入t表示有t个测试实例,接着t行输入奥特曼和怪兽的等级,每个实例输出4行结果,头两行是奥特曼和怪兽的初始状态,第3行是战斗结果,第4行是奥特曼的最终状态,结果跟要求的一样类应用第1行输入t表示有t个测试实例,对于每个测试实例,首行先输入奥特曼等级,接着下一行输入n,表示怪兽数量接着n行输入怪兽的等级和类型,输出奥特曼和每个怪兽的战斗结果,发现结果和要求的一样五、实验体会:(根据自己情况填写)类定义和应用整体来说并不难,但需要注意一些内容,如private中的数据并不能直接使用,得应用get函数,同时类函数里面并不能够直接使用另一个类里面的数据,也就是说类与类之间是独立的,并不依靠另外的。注:“指导教师批阅意见”栏请单独放置一页指导教师批阅意见:成绩评定: 指导教师签字: 年 月 日备注:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1