C程序设计电子宠物.docx

上传人:b****6 文档编号:8829410 上传时间:2023-02-02 格式:DOCX 页数:21 大小:40.49KB
下载 相关 举报
C程序设计电子宠物.docx_第1页
第1页 / 共21页
C程序设计电子宠物.docx_第2页
第2页 / 共21页
C程序设计电子宠物.docx_第3页
第3页 / 共21页
C程序设计电子宠物.docx_第4页
第4页 / 共21页
C程序设计电子宠物.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C程序设计电子宠物.docx

《C程序设计电子宠物.docx》由会员分享,可在线阅读,更多相关《C程序设计电子宠物.docx(21页珍藏版)》请在冰豆网上搜索。

C程序设计电子宠物.docx

C程序设计电子宠物

#include

#include

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--;

else

mood++;

age++;hunger=hunger++;thirst=thirst++;

//各个数值的输出函数

}

inlinevoidpet:

:

show()

{

cout<<"现在的状态:

"<

"<

cout<<"饥饿度:

"<

"<

"<

"<

}

inlinevoidpet:

:

emergency(intemg)

{

step=step+5;

if(emg==20)

health--;

if(hunger==3)

{

mood--;

cout<<"主人,我已经很饿了。

}

if(hunger==-2)

{

mood--;

cout<<"主人,我已经很饱了。

//各种特殊状态函数

"<

"<

 

}if(hunger>3)

{

mood=mood-2;

health--;

cout<<"再不给我吃东西,我就要饿死啦!

"<

if(hunger<-2)

{

mood=mood-2;

health--;

cout<<"再给我吃东西,我就要撑死啦!

"<

if(thirst==2)

mood--;

cout<<"这天好热啊,主人,给口喝的吧。

"<

}

if(thirst==-2)

{

mood--;

cout<<"面对着一大杯水,你的宠物恶心地说道:

“主人,我已经喝够了。

”"<

}

if(thirst>2)

{

mood=mood-2;

health--;

cout<<"伟大的主人在上,我已经渴的快受不鸟啦。

"<

}

if(thirst<-2)

{

mood=mood-2;

health--;

cout<<"好吧,我都喝撑的都吃不下饭了。

"<

}if(hunger>6||thirst>5)

{

age=100;

cout<<"啊“!

天呐,你降道雷劈了这个万恶的主人吧!

”说完,某宠物口吐白沫,到底不起。

"<

}if(hunger>5&&thirst>4)

{

age=100;

cout<<"如果有来世的话,打死我也不跟你混了。

"<

}

if(health<-6)

{

age=100;

cout<<"你骨瘦如柴的宠物最后饱含深情地看了你一眼,缓缓倒下了。

"<

}

}

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<<"饲养说明:

"<

cout<<"每个时间段作为主人的你新增5点行动点,未用完可以累积到下一时段,初始有20点。

"<

cout<<"当行动点相当低时,出现badend,饲养结束。

"<

cout<<"每天有三个时间段,你可以进行5项操作,喂食、喂水、抚摸、玩耍、不做任

何事。

"<

cout<<"行动点对应消耗:

喂食5点,喂水3点,抚摸3点,玩耍8点。

"<

cout<<"选择不做任何事,则跳到下一时间段。

"<

cout<<"当饥饿与口渴相当低的时候,或者健康指数相当低的时候,会出现badend,宠

物死亡。

"<

cout<<"当宠物年龄到达寿命极限时,出现happyend,宠物寿终正寝。

"<

cout<<"PS:

不同的天气对宠物的心情和健康又影响。

"<

cout<<"在不同天气中进行抚摸玩耍会有特殊情况发生,请注意。

"<

cout<<""<

}

classrabbit:

virtualpublicpet//pet类派生的兔子类

{

public:

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)

{

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

cout<<"

"<

case1:

cout<<"恭喜,

cout<<"

你已经领养了一只兔子。

"<

"<

cout<<"

**

JJ

"<

cout<<"

(((

"<

cout<<"

\))_..-

"<

cout<<"

__)/,*,*

*

"<

cout<<"

*

J

**

*

J・・

"<

cout<<"

*

J

0*'

*\

"<

cout<<"

(Y

J・

"<

cout<<"

*

___,\

JJ

"<

cout<<"

((_,

**

J

**

—J—J

"<

cout<<"

(((_,-(((

*

J

"<

cout<<"

"<

break;

case2:

cout<<"恭喜,

你已经领养了一匹小马驹。

"<

cout<<"

"<

~~%%%%%%%%_,_,

~~%%%%%%%%%-*/./

~~%%%%%%%-*/*.

~~%%%%%%%%*.,--;

~~%%%%%%%%*:

\O\

~~%%%%%%%%*:

*.

~~%%%%%%%%**.-,*

~~%%%%%%%%*.**-.-*.

~~%%%%%%%%%*:

*-.(,;~~%%%%%%%%*:

*.-\-.*

"<

cout<<"

break;

"<

---"<

---"<

/~~~~//~~~~/

case3:

你已经领养了一头小牛犊。

cout<<"恭喜,

cout<<"

cout<<"

"<

"<

cout<<"

////

"<

cout<<"

||||

"<

cout<<"

/~

~/

"<

cout<<"

/~~~~~-_|/~~/

/~~~/|_-~~~~~\

cout<<"

/====

/||O||O||/=

===/"<

cout<<"

~-__-

~||_---+--+_||~-__-

~"<

"<

cout<<"

|/~

~/|

"<

cout<<"

/

/

"<

cout<<"

OO)

"<

cout<<"

/

./

"<

cout<<"

~--~|

"<

cout<<"

||/__/||

"<

cout<<"

||/~~/||

"<

cout<<"

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

"<

cout<<"

||||

"<

cout<<"

||||

}

}

cout<<"

break;

---"<

voidperiod(intt)//时间函数

{

t=t%3;

switch(t)

case0:

cout<<"上午。

"<

cout<<"下午。

"<

cout<<"晚上。

"<

}

};

intweather(){

intw;

w=rand()%5;

switch(w)

{

case0:

cout<<"天气

晴。

"<

case1:

cout<<"天气

阴。

"<

case2:

cout<<"天气

小雨。

"<

case3:

cout<<"天气

暴雨。

"<

case4:

cout<<"天气}

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

//提取寿命

//开始饲养,如无意外,则到寿命时循环结束

 

w=weather();

t=t%3;

petx->p2();

while(t<3)

{

emg=rand()%20;

//调用天气函数

//t为控制时间整形

//调用饥饿、口渴以及心情随时间的变化函数

//控制时间的循环

//emg为随机数,控制是否生病

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~"<

cout<<"现在是";period(t);cout<<"

//调用时间函数

"<

cout<

 

生病"<

Nstep=petx->getst();cout<<"你的行动点数还有:

cout<<"你的宠物";petx->show();if((emg-19)==1)

cout<<"健康状况:

//提取行动点数

"<

//调用数值输出函数

else

良好"<

"<

cout<<"健康状况:

cout<<"请选择你想做的事:

cout<<"0、参看说明1、喂食2、喂水3、抚摸4、逗它玩耍5、不做任

何事";

if((emg-19)==1)

cout<<"6、看医生。

"<

cout<

";cin>>act;

"<

cout<<"很遗憾,由于饲养不善,你的宠物已经死亡。

"<

cout<<""<

break;

}//非正常死亡,badend

if(Nstep<0)

{

cout<<""<

cout<<"真不幸,宠物的饲养已经让你感到心力交瘁。

"<

"<

"<

cout<<""<

break;

}//非正常结束饲养,badend

t++;

cout<<""<

}if(Nage>life||Nstep<0)

break;//非正常死亡,跳出循环system("cls");//调用系统清屏函数

}

if(date==life)

{

cout<<""<

cout<<"恭喜,你的宠物已经寿终正寝。

"<

}

}

intadopt()//领养函数,实现宠物的领养

{

intsel;

intch1;

charname[10];

cout<<"现在宠物商店还有可以领养的宠物如下:

"<

cout<<"1、小兔2、小马驹3、小牛"<

cout<<"请选择:

";

cin>>sel;petshop(sel);cout<<"再给你领养的小家伙起个名字呗:

";

cin>>name;

cout<<"你已经成功领养了一只叫做"<

"<

cout<<""<

cout<<"是否参看饲养说明:

1、是2、否"<

cout<<"请选择:

";

cin>>ch1;

cout<<"if(ch1==1)instruction();

returnsel;

}

intmain()

{

intchoose=0;while(!

choose)

{

cout<<"

//判断是否调用饲养说明函数

//参看饲养说明

//返回所选择的种类

//实现整个函数的循环

"<

"<

 

intch,ch2;

intsel;

sel=adopt();//调用领养函数,返回所选种类

cout<<"是否开始饲养现有宠物:

1、是2、否"<

";

cin>>ch;//判断是否开始饲养

cout<<"

1********************************************************************

if(ch==1)

raise(sel);//调用饲养函数

//判断是否继续领养宠物

cout<<"是否需要继续领养宠物:

1、是2、退出程序"<

"cin>>ch;

choose=ch-1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1