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

下载本文档

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

文档简介

--------#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(){returnhealth;}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(intact,intw,intemg){} //主人采取各种动作函数,定义为纯虚函数private:intage;

//年龄inthunger;

//饥饿值intthirst;intmood;

//口渴值//心情指数inthealth;intstep;

//健康指数//行动点数};inlinevoidpet::p2(){

//饥饿、口渴以及心情随时间的变化函数intm;m=rand()%15;if(m<5)mood=mood-2;elseif(m<12)mood--;elsemood++;age++;hunger=hunger++;thirst=thirst++;}inlinevoidpet::show(){

//各个数值的输出函数cout<<"现在的状态: "<<endl;cout<<"年龄:"<<age;cout<<" 饥饿度:"<<hunger;cout<<" 口渴度:"<<thirst;cout<<" 心情指数:"<<mood;cout<<" 健康指数:"<<health;}inlinevoidpet::emergency(intemg){

//各种特殊状态函数step=step+5;if(emg==20)health--;if(hunger==3){mood--;cout<<"主人,我已经很饿了。

"<<endl;}if(hunger==-2){mood--;cout<<"主人,我已经很饱了。

"<<endl;}if(hunger>3){mood=mood-2;health--;cout<<"再不给我吃东西,我就要饿死啦! "<<endl;}if(hunger<-2){mood=mood-2;health--;cout<<"再给我吃东西,我就要撑死啦! "<<endl;}if(thirst==2){mood--;cout<<"这天好热啊,主人,给口喝的吧。 "<<endl;}if(thirst==-2){mood--;cout<<"面对着一大杯水,你的宠物恶心地说道: “主人,我已经喝够了。 ”"<<endl;}if(thirst>2){mood=mood-2;health--;cout<<"伟大的主人在上,我已经渴的快受不鸟啦。 "<<endl;}if(thirst<-2){mood=mood-2;health--;cout<<"好吧,我都喝撑的都吃不下饭了。 "<<endl;}if(hunger>6||thirst>5){age=100;cout<<"啊“!天呐,你降道雷劈了这个万恶的主人吧! ”说完,某宠物口吐白沫,到底不起。"<<endl;}if(hunger>5&&thirst>4){age=100;cout<<"如果有来世的话,打死我也不跟你混了。 "<<endl;}if(health<-6){age=100;cout<<"你骨瘦如柴的宠物最后饱含深情地看了你一眼,缓缓倒下了。 "<<endl;}}inlinevoidpet::touch(intw){

//抚摸函数step=step-3;switch(w){case0:mood=mood+2;break;case1:mood++;break;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(){

//饲养说明cout<<"饲养说明:"<<endl;cout<<"每个时间段作为主人的你新增

5点行动点,未用完可以累积到下一时段,初始有20点。"<<endl;cout<<"当行动点相当低时,出现 badend,饲养结束。 "<<endl;cout<<"每天有三个时间段,你可以进行 5项操作,喂食、喂水、抚摸、玩耍、不做任何事。

"<<endl;cout<<"行动点对应消耗:喂食 5点,喂水 3点,抚摸 3点,玩耍 8点。"<<endl;cout<<"选择不做任何事,则跳到下一时间段。 "<<endl;cout<<"当饥饿与口渴相当低的时候,或者健康指数相当低的时候,会出现 badend,宠物死亡。

"<<endl;cout<<"当宠物年龄到达寿命极限时,出现 happyend,宠物寿终正寝。cout<<"PS:不同的天气对宠物的心情和健康又影响。 "<<endl;

"<<endl;cout<<"在不同天气中进行抚摸玩耍会有特殊情况发生,请注意。"<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;}classrabbit:virtualpublicpet{public:

//pet类派生的兔子类rabbit(intl=31){life=l;}intgetl(){returnlife;}voidaction(intact,intw,intemg);

//主人对小牛的动作函数,虚函数成员private:intlife;

//兔子的寿命};inlinevoidrabbit::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=0;doctor();break;}}classhorse:virtualpublicpet

//pet

类派生的小马驹类{public: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=0;doctor();break;}}classcalf:virtualpublicpet

//pet

类派生的小牛类{public:calf(intl=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);break;case4:fun(w);break;case5:break;case6:emg=0;doctor();break;}}voidpetshop(intselect){

//宠物外形switch(select){case1:cout<<"恭喜,你已经领养了一只兔子。 "<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;cout<<"

,-*,-*"<<endl;cout<<"(

(

(

"<<endl;cout<<"cout<<"cout<<"cout<<"

,*

\ ) )_..-..___)/,*,*** ,--.,* 0

*.

*.

*'

"<<endl;"<<endl;"<<endl;*

\"<<endl;cout<<"

(Y

(

;**."<<endl;cout<<" *--.____, \ , ; "<<endl;cout<<" ((_,----*,---* _,*_,* "<<endl;cout<<" (((_,-(((______,-* "<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;break;case2:cout<<"恭喜,你已经领养了一匹小马驹。 "<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;cout<<" ~~%%%%%%%%_,_,"<<endl;cout<<"

~~%%%%%%%%%-*/./"<<endl;cout<<"

~~%%%%%%%-*

/*."<<endl;cout<<"

~~%%%%%%%%*

.

,--;"<<endl;cout<<" ~~%%%%%%%%* : \O\"<<endl;cout<<" ~~%%%%%%%%* : *."<<endl;cout<<" ~~%%%%%%%%* *. -, *"<<endl;cout<<" ~~%%%%%%%%* .**-.- *."<<endl;cout<<" ~~%%%%%%%%%* : *-. (,;"<<endl;cout<<" ~~%%%%%%%%* : *.-\-.*"<<endl;cout<<" ~~%%%%%%%* ;"<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;break;case3:cout<<"恭喜,你已经领养了一头小牛犊。 "<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;cout<<" /~~~~/ /~~~~/"<<endl;cout<<" / / / /"<<endl;cout<<" | |_____| |"<<endl;cout<<" /~ ~/"<<endl;cout<<" /~~~~~-_| /~~/ /~~~/ |_-~~~~~\"<<endl;cout<<" /====/|| O| |O ||/====/ "<<endl;cout<<" ~-__-~||_---+--+----_||~-__-~ "<<endl;cout<<" |/~ ~/|"<<endl;cout<<" / /"<<endl;cout<<" ( O O )"<<endl;cout<<" / ./"<<endl;cout<<" ~-__________-~|"<<endl;cout<<" | |/__/| |"<<endl;cout<<" | |/~~/| |"<<endl;cout<<"

| /~~~~~~~~~/

|"<<endl;cout<<"

||

| |"<<endl;cout<<"

||

| |"<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;break;}}voidperiod(intt){

//时间函数t=t%3;switch(t){case0:cout<<"上午。"<<endl;break;case1:cout<<"下午。"<<endl;break;case2:cout<<"晚上。"<<endl;break;}};intweather(){

//天气函数intw;w=rand()%5;switch(w){case0:cout<<"天气:晴。"<<endl;break;case1:cout<<"天气:阴。"<<endl;break;case2:cout<<"天气:小雨。"<<endl;break;case3:cout<<"天气:暴雨。"<<endl;break;case4:cout<<"天气:大风。"<<endl;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;}life=petx->getl();

//提取寿命for(date=1;date<life;date++)

//开始饲养,如无意外,则到寿命时循环结束{cout<<"今天是你领养第w=weather();t=t%3;

"<<date<<"日"<<endl;//调用天气函数//t为控制时间整形petx->p2();while(t<3)

//调用饥饿、口渴以及心情随时间的变化函数//控制时间的循环{emg=rand()%20;

//emg

为随机数,控制是否生病cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;cout<<"现在是";period(t); //调用时间函数cout<<"-------------------------------------------------------------------------------"<<endl;cout<<endl;do{Nstep=petx->getst();

//提取行动点数cout<<"你的行动点数还有: "<<Nstep<<endl;cout<<"你的宠物";petx->show(); //调用数值输出函数if((emg-19)==1)cout<<" 健康状况:生病 "<<endl;elsecout<<" 健康状况:良好 "<<endl;cout<<"请选择你想做的事: "<<endl;cout<<"0、参看说明 1、喂食 2、喂水

3、抚摸

4、逗它玩耍

5、不做任何事";if((emg-19)==1)cout<<"6、看医生。"<<endl;elsecout<<endl;cout<<"请选择:";cin>>act;cout<<"-------------------------------------------------------------------------------"<<endl;petx->action(act,w,emg);

//调用主人动作函数}while((act+1)%6);petx->emergency(emg);

//调用特殊状态函数Nage=petx->geta();

//提取年龄if(Nage>life){cout<<"-------------------------------------------------------------------------------"<<endl;cout<<"很遗憾,由于饲养不善,你的宠物已经死亡。

"<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;break;}

//非正常死亡,

badendif(Nstep<0){cout<<"-------------------------------------------------------------------------------"<<endl;cout<<"真不幸,宠物的饲养已经让你感到心力交瘁。 "<<endl;cout<<"看来你和它共同的生活要就此告一段落了。 "<<endl;cout<<"唉,你的修行还未够班啊,继续努力吧。 "<<endl;cout<<"-------------------------------------------------------------------------------"<<endl;break;}

//非正常结束饲养,

badendt++;cout<<"-------------------------------------------------------------------------------"<<endl;}if(Nage>life||Nstep<0)break;

//非正常死亡,跳出循环system("cls");

//调用系统清屏函数}if(date==life){cout<<"-------------------------------------------------------------------------------"<<endl;cout<<"恭喜,你的宠物已经寿终正寝。

"<<endl;

//正常死亡}}intadopt(){

//领养函数,实现宠物的领养intsel;intch1;charname[10];cout<<"现在宠物商店还有可以领养的宠物如下: "<<endl;cout<<"1、小兔 2、小马驹 3、小牛"<<endl;cout<<"请选择:";cin>>sel;petshop(sel);cout<<"再给你领养的小家伙起个名字呗: ";cin

温馨提示

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

评论

0/150

提交评论