C++程序设计电子宠物_第1页
C++程序设计电子宠物_第2页
C++程序设计电子宠物_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、# i n elude< i o s t r e a#in elude <stdlib.h>using n amespaee std;class pet/建立一个宠物类 public:pet(i nt a=0,i nt h=0,i nt t=0,i nt m=0,i nt he=0,i nt st=15) age=a;hu nger=h;thirst=t;mood=m;health=he;step=st; int geta() retur n age;/构造函数/提取各个私有成员int geth() retur n hun ger;int gett() retur n thi

2、rst;int getm() return mood;int gethe() retur n health;int getst() return step;void p2();void show();void emerge ncy(i nt w);void feed()hun ger-;step=step-5;void dri nk() thirst-;step=step-3;void doctor() step=step-10;void touch(i nt w);void fun (i nt w);virtual int getl() retur n age;/饥饿、口渴以及心情随时间的变

3、化函数/各个数值的输岀函数/各种特殊状态函数/喂食函数喂水函数/看医生函数/抚摸函数玩耍函数提取寿命值virtual void acti on (i nt act,i nt w,i nt emg) /主人采取各种动作函数,定义为纯虚函数/年龄/饥饿值/ 口渴值心情指数健康指数行动点数/饥饿、口渴以及心情随时间的变化函数private:int age;int hun ger;int thirst;int mood;int health;int step;in li ne void pet:p2()int m;m=ra nd()%15;if(m<5) mood=mood-2;else if(

4、m<12) mood-;elsemood+;age+;hun ger=hu nger+; thirst=thirst+;in li ne void pet:show()/各个数值的输岀函数cout«"现在的状态:"<<endl; cout«"年龄:"<<age;cout«"饥饿度:"<<hu nger;cout«"口渴度:"thirst;cout«"心情指数:"vvmood; cout«&quo

5、t;健康指数:"vvhealth;in li ne void pet:emerge ncy(i nt emg)step=step+5;if(emg=20)health-;if(hu nger=3)mood-;coutvv"主人,我已经很饿了if(hu nger=-2)mood-;coutvv"主人,我已经很饱了/各种特殊状态函数"<<e ndl;"<<e ndl;if(hu nger>3)mood=mood-2;health-;coutvv"再不给我吃东西,我就要饿死啦!"<<e n

6、dl;if(hu ngerv-2)mood=mood-2;health-;coutvv"再给我吃东西,我就要撑死啦!"<<e ndl;if(thirst=2)mood-;cout«"这天好热啊,主人,给口喝的吧。"<<e ndl;if(thirst=-2)mood-;cout«"面对着一大杯水,你的宠物恶心地说道:主人,我已经喝够了。” "<<endl;if(thirst>2)mood=mood-2;health-;coutvv"伟大的主人在上,我已经渴的快受不鸟

7、啦。"<<e ndl;if(thirst<-2)mood=mood-2;health-;coutvv"好吧,我都喝撑的都吃不下饭了。"<<e ndl;if(hu nger>6|thirst>5)age=100;cout<< "啊!天呐,你降道雷劈了这个万恶的主人吧!”说完,某宠物口吐白沫,到底不起。"<<endl;if(hu nger>5&&thirst>4)age=100;coutvv"如果有来世的话,打死我也不跟你混了。"<

8、;<e ndl;if(health<-6)age=100;coutvv"你骨瘦如柴的宠物最后饱含深情地看了你一眼,缓缓倒下了。"<<e ndl;in li ne void pet:touch(i nt w)/ 抚摸函数step=step-3;switch(w)mood=mood+2;break;case 1:mood+; break;case 2:mood+; break;case 3: mood-; thirst-; break;case 4: mood-; hun ger-; break;in li ne void pet:fu n(i nt w

9、)/玩耍函数step=step-8;switch(w)case 0:mood=mood+2;break;case 2:hun ger+;thirst+;health+;break;case 3:hun ger=hu nger+2;thirst+;health+;break;case 4:hun ger+;thirst+;health+;break;void in structio n()/饲养说明cout«"饲养说明:"<<endl;cout<<"每个时间段作为主人的你新增5点行动点,未用完可以累积到下一时段,初始有20点。&qu

10、ot;<<endl;cout«"当行动点相当低时,岀现bad end,饲养结束。"<<endl;coutvv"每天有三个时间段,你可以进行5项操作,喂食、喂水、抚摸、玩耍、不做任何事。"<<endl;coutvv"行动点对应消耗:喂食5点,喂水3点,抚摸3点,玩耍8点。"<<endl;coutvv"选择不做任何事,则跳到下一时间段。"<<endl;coutvv"当饥饿与口渴相当低的时候,或者健康指数相当低的时候,会岀现bad end,宠

11、物死亡。"vvendl;coutvv"当宠物年龄到达寿命极限时,岀现happy end,宠物寿终正寝。"vvendl;coutvv"PS :不同的天气对宠物的心情和健康又影响。"vvendl;coutvv"在不同天气中进行抚摸玩耍会有特殊情况发生,请注意。"vvendl;coutvv""vve ndl;class rabbit:virtual public pet/pet 类派生的兔子类public:rabbit(i nt l=31)life=l;in t getl()return life;void a

12、ctio n(int act,i nt w,i nt emg);/主人对小牛的动作函数,虚函数成员private:int life;/兔子的寿命;in li ne void rabbit:acti on (i nt act,i nt w,i nt emg)switch(act)case 0:in structi on() ;break;case 1:feed();break;case 2:drin k();break;touch(w);break;case 4:fun( w);break;case 5:break;case 6:emg=0;doctor();break;class horse:

13、virtual public pet/pet 类派生的小马驹类public:horse(i nt 1=41)life=l;in t getl()return life;void actio n(int act,i nt w,i nt emg);/主人对小牛的动作函数,虚函数成员private:int life;小马的寿命;in li ne void horse:acti on (i nt act,i nt w,i nt emg)switch(act)case 0:in structi on() ;break;case 1:feed();break;case 2:drin k();break;c

14、ase 3:touch(w);break;case 4:fun( w);break;case 5:break;emg=O;doctor();break;class calf:virtual public pet/pet 类派生的小牛类public:calf(i nt l=51) life=l;in t getl()return life;void actio n(int act,i nt w,i nt emg);/主人对小牛的动作函数,虚函数成员private:int life;/小牛的寿命;in li ne void calf:acti on (i nt act,i nt w,i nt em

15、g)switch(act)case 0:in structi on() ;break;case 1:feed();break;case 2:drin k();break;case 3:touch(w);break;case 4:fun( w);break;case 5:break;case 6:emg=0;doctor();break;void petshop(i nt select)宠物外形switch(select)coutvv""vvendl;coutvv"1* *1")""vve ndl;coutvv"("

16、vve ndl;coutvv" ) ) _.-._"vve ndl;coutvv")/ ,*,*"vve ndl;coutvv"*> -*"vve ndl;coutvv"*0 *'* "vve ndl;coutvv"(丫(;*) "vve ndl;coutvv"*, "vve ndl;coutvv"(_,-* * *一)一)"vve ndl;coutvv"(,-( ,*"vve ndl;coutvv""

17、vvendl;break;case 2:cout«"恭喜,你已经领养了一匹小马驹。"<<e ndl;cout«""<<e ndl;cout«"%_"vve ndl;coutvv"%-*/./"vve ndl;coutvv"%-*/ *."vve ndl;coutvv"%* ."vve ndl;coutvv"%* :0"vve ndl;cout«"%*"<<e n

18、dl;cout«"%*"vve ndl;coutvv"%*"vve ndl;"vve ndl;coutvv"%*: *(,;"vve ndl;coutvv"%*.-.*"vve ndl;coutvv"%*coutvv"break;"vve ndl;"<<e ndl;"vven dl;coutvv"恭喜,你已经领养了一头小牛犊。COut«"COut«"/"<<e n

19、dl;COut«"/ / /"<<e ndl;COut«"| | |"<<e ndl;COut«"/"<<e ndl;COut«"/-|/ |"<<e ndl;COut«"/ = /| |O| |O| |/ = /"<<e ndl;COut«"-| | 11 1 -一-"<<e ndl;COut«"|/|"<&

20、lt;e ndl;COut«"/"<<e ndl;COut«"(OO)"<<e ndl;COut«"/./"<<e ndl;COut«"-1"<<e ndl;COut«"| |/_/|"<<e ndl;COut«"| |/|"<<e ndl;COut«"| |"<<e ndl;COut«&quo

21、t;| | |"<<e ndl;COut«"| | |"<<e ndl;COut«""<<endl;break;void period( int t)/ 时间函数t=t%3;switch(t)case O:cout<<"上午。"<<endl;break;case 1:cout<<"下午。"<<endl;break;case 2:cout<<"晚上。"<<end

22、l;break;int weather()/ 天气函数int w;w=ra nd()%5; switch(w)case 0:cout<<"天气晴。"<<e ndl;break;case 1:cout<<"天气阴。"<<e ndl;break;case 2:cout<<"天气小雨。"<<e ndl;break;case 3:cout<<"天气暴雨。"<<e ndl;break;case 4:cout<<&quo

23、t;天气return w;大风。"<<e ndl;break;void raise(i nt select) int life,date,w,act;int t=0;/动态建立对象,实现领养int emg,Nstep,Nage; pet *petx;switch(select)case 1:petx=new rabbit; break;case 2:petx=new horse; break;case 3:petx=new calf;break;life=petx->getl();for(date=1;date<life;date+)cout<<&

24、quot;今天是你领养第/提取寿命/开始饲养,如无意外,则到寿命时循环结束w=weather(); t=t%3;petx->p2();while(t<3)"wdatevv"日"<<endl;调用天气函数/t为控制时间整形/调用饥饿、口渴以及心情随时间的变化函数/控制时间的循环emg=ra nd()%20;/emg为随机数,控制是否生病"<<en dl;COUtvv"现在是"period(t);cout<<"-/调用时间函数"vven dl;cout<<e

25、ndl;doNstep=petx->getst(); cout<<"你的行动点数还有: coutvv"你的宠物" petx->show();/提取行动点数"vvNstepvve ndl;/调用数值输岀函数if(emg-19)=1)cout<<" 健康状况:生病"<<e ndl;elsecout«"健康状况:良好"<<e ndl;cout«"请选择你想做的事:"<<endl;cout<<&quo

26、t;0、参看说明1、喂食2、喂水3、抚摸4、逗它玩耍 5、不做任何 事";if(emg-19)=1)cout«" 6、看医生。"<<endl;elsecout«e ndl;coutvv"请选择:"cin> >act;cout«""<<e ndl;petx->actio n(act,w,emg);/ 调用主人动作函数while(act+1)%6);petx->emerge ncy(emg);/调用特殊状态函数Nage=petx->geta();

27、/ 提取年龄if(Nage>life)cout«""<<e ndl;coutvv"很遗憾,由于饲养不善,你的宠物已经死亡。"<<endl;cout«""<<e ndl;break;/非正常死亡,bad endif(NstepvO)coutvv""<<endl;coutvv"真不幸,宠物的饲养已经让你感到心力交瘁。"<<endl;coutvv"看来你和它共同的生活要就此告一段落了。"vvend

28、l;coutvv"唉,你的修行还未够班啊,继续努力吧。"vvendl;coutvv""vve ndl;break;/非正常结束饲养,bad endt+;coutvv""vve ndl;if(Nage>life|Nstepv0)break;/非正常死亡,跳岀循环system("cls");调用系统清屏函数if(date=life)"vve ndl;-"vven dl;/正常死亡coutvv"coutvv"恭喜,你的宠物已经寿终正寝。int adopt()/领养函数,实现宠物的领养int sei;int chi;char

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论