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

下载本文档

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

文档简介

1、#include<iostream>#include<stdlib.h>usingnamespacestd;classpet/建立一个宠物类public:pet(inta=0,inth=0,intt=0,intm=0,inthe=0,intst=15)/构造函数age=a;hunger=h;thirst=t;mood=m;health=he;step=st;intgeta()returnage;/提取各个私有成员intgeth()returnhunger;intgett()returnthirst;intgetm()returnmood;intgethe()return

2、health;intgetst()returnstep;voidp2();voidshow();voidemergency(intw);voidfeed()hunger-;step=step-5;/饥饿、口渴以及心情随时间的变化函数/各个数值的输出函数/各种特殊状态函数/喂食函数voiddrink()thirst-;step=step-3;voiddoctor()step=step-10;voidtouch(intw);voidfun(intw);virtualintgetl()returnage;/喂水函数/看医生函数/抚摸函数/玩耍函数/提取寿命值virtualvoidaction(int

3、act,intw,intemg)/主人采取各种动作函数,定义为纯虚函private:intage;inthunger;intthirst;intmood;inthealth;intstep;/年龄/饥饿值/口渴值/心情指数/健康指数/行动点数inlinevoidpet:p2()inlinevoidpet:p2()/饥饿、口渴以及心情随时间的变化函数intm;m=rand()%15;if(m<5)mood=mood-2;elseif(m<12)mood-;elsemood+;age+;hunger=hunger+;thirst=thirst+;inlinevoidpet:show()

4、各个数值的输出函数coutvv"现在的状态:"vvendl;coutvv"年龄:"vvage;coutvv"饥饿度:"vvhunger;coutvv"口渴度:"vvthirst;coutvv"心情指数:"vvmood;coutvv"健康指数:"vvhealth;inlinevoidpet:emergency(intemg)step=step+5;if(emg=20)health-;if(hunger=3)mood-;coutvv"主人,我已经很饿了。if(hunge

5、r=-2)mood-;coutvv"主人,我已经很饱了。if(hunger>3)mood=mood-2;inlinevoidpet:emergency(intemg)step=step+5;if(emg=20)health-;if(hunger=3)mood-;coutvv"主人,我已经很饿了。if(hunger=-2)mood-;coutvv"主人,我已经很饱了。if(hunger>3)mood=mood-2;/各种特殊状态函数"vvendl;"vvendl;health-;health-;if(hunger<-2)mood

6、=mood-2;health-;if(thirst=2)mood-;coutvv"这天好热啊,主人,给口喝的吧。"vvendl;if(thirst=-2)mood-;coutvv"面对着一大杯水,你的宠物恶心地说道:“主人,我已经喝够了。”"vvendl;if(thirst>2)mood=mood-2;health-;coutvv"伟大的主人在上,我已经渴的快受不鸟啦。"vvendl;if(thirstv-2)mood=mood-2;health-;coutvv"好吧,我都喝撑的都吃不下饭了。"vvendl;

7、if(hunger>6|thirst>5)age=100;coutvv"啊“!天呐,你降道雷劈了这个万恶的主人吧!”说完,某宠物口吐白沫,到底不起。"vvendl;if(hunger>5&&thirst>4)age=100;coutvv"如果有来世的话,打死我也不跟你混了。"vvendl;if(healthv-6)age=100;/抚摸函数/抚摸函数inlinevoidpet:touch(intw)step=step-3;switch(w)case0:mood=mood+2;break;case1:mood+;br

8、eak;case2:mood+;break;case3:mood-;thirst-;break;case4:mood-;hunger-;break;/玩耍函数inlinevoidpet:fun(intw)step=step-8;switch(w)case0:mood=mood+2;break;case2:hunger+;thirst+;health+;break;case3:hunger=hunger+2;thirst+;health+;break;case4:hunger+;thirst+;health+;break;voidinstruction。/饲养说明coutvv"饲养说明

9、:"vvendl;coutvv"每个时间段作为主人的你5点行动点,未用完可以累积到下一时段,初始新增有20点。"vvendl;coutvv"当行动点相当低时,出现badend,饲养结束。"vvendl;coutvv"每天有三个时间段,你可以进行5项操作,喂食、喂水、抚摸、玩耍、不做任何事o"vvendl;coutvv"行动点对应消耗:喂食5点,喂水3点,抚摸3点,玩耍8点。"vvendl;coutvv"选择不做任何事,则跳到下一时间段。"vvendl;coutvv"当饥饿与口

10、渴相当低的时候,或者健康指数相当低的时候,会出现badend,宠物死亡。"vvendl;coutvv"当宠物年龄到达寿命极限时,出现happyend,宠物寿终正"vvendl;寝。coutvv"PS:不同的天气对宠物的心情和健康又影响。"vvendl;coutvv"在不同天气中进行抚摸玩耍会有特殊情况发生,请注意。"vvendl;coutvv""vvendl;classrabbit:virtualpublicpetpublic:rabbit(intl=31)life=l;/pet类派生的兔子类intget

11、l()returnlife;voidaction(intact,intw,intemg);private:/主人对小牛的动作函数,虚函数成员intlife;/兔子的寿命;inlinevoidrabbit:action(intact,intw,intemg)switch(act)case0:case1:feed();break;case2:drink();break;case3:touch(w);break;case4:fun(w);break;case5:break;case6:emg=0;doctor。;break;/类派生的小马驹类petclasshorse:virtualpublicpe

12、tpublic:horse(intl=41)life=l;intgetl()returnlife;voidaction(intact,intw,intemg);private:/主人对小牛的动作函数,虚函数成员intlife;/小马的寿命;inlinevoidhorse:action(intact,intw,intemg)switch(act)case0:instruction();break;case1:feed();break;case2:drink();break;case3:touch(w);break;case4:fun(w);break;case5:break;case6:emg=

13、0;doctor();break;classcalf:virtualpublicpet/类派生的小牛类petpublic:calf(int1=51)life=l;intgetl()returnlife;虚函数成员voidaction(intact,intw,intemg);主人对小牛的动作函数,private:intlife;小牛的寿命;inlinevoidcalf:action(intact,intw,intemg)switch(act)case0:instruction();break;case1:feed();break;case2:drink();break;case3:touch(w

14、);break;case4:fun(w);break;case5:break;case6:emg=O;doctor。;break;voidpetshop(intselect)宠物外形switch(select)case1:coutvv"恭喜,你已经领养了一只兔子。"vvendl;"vvendl;coutvv"-"vvendl;coutvv"*厂5"vvendl;coutvv"("vvendl;coutvv")_.-"vvendl;coutvv"_)/,*,*"vve

15、ndcoutvv"5*l;*"vvendcoutvv"*50Il;vvendl;*coutvv"(Y(;*5vvendl;coutvv"*,"vvendl;coutvv"(_,-*"vvendl;coutvv"(,-(*"vvendl;coutvv"-"vvendl;break;case2:coutvv"恭喜,你已经领养了一匹小马驹。"vvendl;coutvv"-"vvendl;coutvv"%-*/./"vven

16、dl;coutvv"%/*"vvendl;coutvv"%*"vvendl;"vvendl;coutvv"%*"vvendl;"vvendl;coutvv"%*coutvv"%*coutvv"%*:*-(;coutvv"%*:*.*coutvv"%*coutvv"-II'vvendl;break;3:coutvv"恭喜,你已经领养了一头小牛犊。"vvendl;coutvv"-II'vvendl;coutvv&q

17、uot;coutvv"/coutvv"|coutvv"/coutvv"|/|coutvv"/=/|0|O|/=/"vvendl;coutvv"*"W|+|"vvendl;coutvv"|/7|coutvv"/"vvendl;"vvendl;"vvendl;"vvendl;case"vvendl;"vvendl;"vvendl;"vvendl;"vvendl;"vvendl;"v

18、vendl;coutvv""vvendl;coutvv"./"vvendl;coutvv""vvendl;coutvv""vvendl;coutvv"I|/_/|II|/|I"vvendl;|/|/|coutvv""vvendl;coutvv""vvendl;coutvv""vvendl;coutvv""vvendl;break;voidperiod(intt)/时间函数t=t%3;switch(t)case0:co

19、utvv"上午。"vvendl;break;case1:coutvv"下午。"vvendl;break;case2:coutvv"晚上。"vvendl;break;intweather()天气函数intw;w=rand()%5;switch(w)case0:coutvv"天气:晴。"vvendl;break;case1:coutvv"天气:阴。"vvendl;break;case2:coutvv"天气:小雨。"vvendl;break;case3:coutvv"天气

20、:暴雨。"vvendl;break;case4:coutvv"天气:大风。"vvendl;break;returnw;voidraise(intselect)intlife,date,w,act;intt=0;/动态建立对象,实现领养/动态建立对象,实现领养intemg,Nstep,Nage;pet*petx;switch(select)case1:petx=newrabbit;break;case2:petx=newhorse;break;case3:petx=newcalf;break;/提取寿命/开始饲养,如无意外,则到寿命时循环结束/提取寿命/开始饲养,如

21、无意外,则到寿命时循环结束life=petx->getl();for(date=1;date<life;date+)coutvv"今天是你领养第w=weather();t=t%3;petx->p2();while(t<3)emg=rand()%20;"vvdatevv"日"vvendl;/调用天气函数t为控制时间整形/调用饥饿、口渴以及心情随时间的变化函数/控制时间的循环e为随机数,控制是否生病mg"vvendcoutvv"现在是"period(t);/调用时间函数coutvv""

22、vvendl;/提取行动点数"vvNstepvvendl;/调用数值输出函数/提取行动点数"vvNstepvvendl;/调用数值输出函数coutvvendl;doNstep=petx->getst();coutvv"你的行动点数还有:coutvv"你的宠物"petx->show();if(emg-19)=1)coutvv"健康状况:生病"vvendl;elsecoutvv"健康状况:良好"vvendl;coutvv"请选择你想做的事:一"vvendl;3、抚4、逗它玩5、

23、不做任'摸耍coutvv"0、参看说明1、喂食2、喂水何事"if(emg-19)=1)coutvv"6、看医生。"vvendl;elsecoutvvendl;coutvv"请选择:coutvv"cin>>act;"vvendl;/调用主人动作函数petx->action(act,w,emg);while(act+1)%6);petx->emergency(emg);Nage=petx->geta();if(Nage>life)/调用特殊状态函数/提取年龄coutvv"&q

24、uot;vvendl;coutvv"很遗憾,由于饲养不善,你的宠物已经死"vvendl;亡。coutvv""vvendl;break;非正常死亡,badendif(Nstepv0)coutvv""vvendl;coutvv"真不幸,宠物的饲养已经让你感到心力交瘁。"vvendl;coutvv"看来你和它共同的生活要就此告一段落了。"vvendl;coutvv"唉,你的修行还未够班啊,继续努力吧。"vvendl;coutvv""vvendl;break;/非正常结束饲badend养,t+;coutvv""vvendl;if(Nage>life|Nstepv0)break;非正常死亡,跳出循环system("cls");调用系统清屏函数if(date=life)"vvendl;/正常死亡coutvv"coutvv"恭喜,你的宠物已经寿终正"vvendl;寝。intsei;int

温馨提示

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

评论

0/150

提交评论