1、C程序设计电子宠物#include #include using namespace std;class pet /建立一个宠物类public: pet(int a=0,int h=0,int t=0,int m=0,int he=0,int st=15) /构造函数 age=a;hunger=h;thirst=t;mood=m;health=he;step=st; int geta() return age; /提取各个私有成员 int geth() return hunger; int gett() return thirst; int getm() return mood; int ge
2、the() return health; int getst() return step; void p2(); /饥饿、口渴以及心情随时间的变化函数 void show(); /各个数值的输出函数 void emergency(int w); /各种特殊状态函数 void feed() /喂食函数 hunger-; step=step-5; void drink() thirst-;step=step-3; /喂水函数 void doctor() step=step-10; /看医生函数 void touch(int w); /抚摸函数 void fun(int w); /玩耍函数 virt
3、ual int getl() return age; /提取寿命值 virtual void action(int act,int w,int emg) /主人采取各种动作函数,定义为纯虚函数 private: int age; /年龄 int hunger; /饥饿值 int thirst; /口渴值 int mood; /心情指数 int health; /健康指数 int step; /行动点数;inline void pet:p2() /饥饿、口渴以及心情随时间的变化函数 int m; m=rand()%15; if(m5) mood=mood-2; else if(m12) mood
4、-; else mood+; age+; hunger=hunger+; thirst=thirst+;inline void pet:show() /各个数值的输出函数 cout现在的状态:endl; cout年龄:age; cout 饥饿度:hunger; cout 口渴度:thirst; cout 心情指数:mood; cout 健康指数:health;inline void pet:emergency(int emg) /各种特殊状态函数 step=step+5; if(emg=20) health-; if(hunger=3) mood-; cout主人,我已经很饿了。endl; i
5、f(hunger=-2) mood-; cout主人,我已经很饱了。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面对着一大杯水,你的宠物恶心地说道:“主人,我已经喝够了。”2) mood=mood-2; health-; cout伟大的主人在上,我已经渴的快受不鸟啦。endl; if(
6、thirst-2) mood=mood-2; health-; cout好吧,我都喝撑的都吃不下饭了。6|thirst5) age=100; cout“啊!天呐,你降道雷劈了这个万恶的主人吧!”说完,某宠物口吐白沫,到底不起。5&thirst4) age=100; cout如果有来世的话,打死我也不跟你混了。endl; if(health-6) age=100; cout你骨瘦如柴的宠物最后饱含深情地看了你一眼,缓缓倒下了。endl; inline void pet:touch(int w) /抚摸函数 step=step-3; switch(w) case 0: mood=mood+2; b
7、reak; case 1: mood+; break; case 2: mood+; break; case 3: mood-; thirst-; break; case 4: mood-; hunger-; break; inline void pet:fun(int w) /玩耍函数 step=step-8; switch(w) case 0: mood=mood+2; break; case 2: hunger+; thirst+; health+; break; case 3: hunger=hunger+2; thirst+; health+; break; case 4: hung
8、er+; thirst+; health+; break; void instruction() /饲养说明 cout饲养说明:endl; cout每个时间段作为主人的你新增5点行动点,未用完可以累积到下一时段,初始有20点。endl; cout当行动点相当低时,出现bad end,饲养结束。endl; cout每天有三个时间段,你可以进行5项操作,喂食、喂水、抚摸、玩耍、不做任何事。endl; cout行动点对应消耗:喂食5点,喂水3点,抚摸3点,玩耍8点。endl; cout选择不做任何事,则跳到下一时间段。endl; cout当饥饿与口渴相当低的时候,或者健康指数相当低的时候,会出现ba
9、d end,宠物死亡。endl; cout当宠物年龄到达寿命极限时,出现happy end,宠物寿终正寝。endl; coutPS:不同的天气对宠物的心情和健康又影响。endl; cout在不同天气中进行抚摸玩耍会有特殊情况发生,请注意。endl; cout-endl;class rabbit:virtual public pet /pet类派生的兔子类public: rabbit(int l=31) life=l; int getl() return life; void action(int act,int w,int emg); /主人对小牛的动作函数,虚函数成员private: int
10、 life; /兔子的寿命;inline void rabbit:action(int act,int w,int emg) switch(act) case 0: instruction();break; case 1: feed(); break; case 2: drink(); break; case 3: touch(w); break; case 4: fun(w); break; case 5: break; case 6: emg=0; doctor(); break; class horse:virtual public pet /pet类派生的小马驹类public: hor
11、se(int l=41) life=l; int getl() return life; void action(int act,int w,int emg); /主人对小牛的动作函数,虚函数成员private: int life; /小马的寿命;inline void horse:action(int act,int w,int emg) switch(act) case 0: instruction();break; case 1: feed();break; case 2: drink();break; case 3: touch(w);break; case 4: fun(w);bre
12、ak; case 5: break; case 6: emg=0; doctor(); break; class calf:virtual public pet /pet类派生的小牛类public: calf(int l=51) life=l; int getl() return life; void action(int act,int w,int emg); /主人对小牛的动作函数,虚函数成员private: int life; /小牛的寿命;inline void calf:action(int act,int w,int emg) switch(act) case 0: instruc
13、tion();break; case 1: feed();break; case 2: drink();break; case 3: touch(w);break; case 4: fun(w);break; case 5: break; case 6: emg=0; doctor(); break; void petshop(int select) /宠物外形 switch(select) case 1: cout恭喜,你已经领养了一只兔子。endl; cout-endl; cout ,-*,-* endl; cout ( ( ( endl; cout ) ) _.-._ endl; cou
14、t _)/ ,*,* *. endl; cout ,* * ,-. *. endl; cout ,* 0 * * endl; cout (Y ( ;*. endl; cout *-._, , ; endl; cout (_ ,-* ,-* _,*_,* endl; cout (_,- (_,-* endl; cout-endl; break; case 2: cout恭喜,你已经领养了一匹小马驹。endl; cout-endl; cout %_,_, endl; cout %-*/./ endl; cout %-* / *. endl; cout %* . ,-; endl; cout %*
15、: O endl; cout %* : *. endl; cout %* *. -, * endl; cout %* .*-.- *. endl; cout %* : *-. (,; endl; cout %* : *.-.* endl; cout %* ; endl; cout-endl; break; case 3: cout恭喜,你已经领养了一头小牛犊。endl; cout-endl; cout / / endl; cout / / / / endl; cout | |_| | endl; cout / / endl; cout /-_| / / |_- endl; cout / = /
16、| | 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; void period(int t) /时间函数 t=t%3; switch(t) case
17、 0:cout上午。endl;break; case 1:cout下午。endl;break; case 2:cout晚上。endl;break; ;int weather() /天气函数 int w; w=rand()%5; switch(w) case 0:cout天气:晴。endl;break; case 1:cout天气:阴。endl;break; case 2:cout天气:小雨。endl;break; case 3:cout天气:暴雨。endl;break; case 4:cout天气:大风。getl(); /提取寿命 for(date=1;datelife;date+) /开始饲
18、养,如无意外,则到寿命时循环结束 cout今天是你领养第date日p2(); /调用饥饿、口渴以及心情随时间的变化函数 while(t3) /控制时间的循环 emg=rand()%20; /emg为随机数,控制是否生病 coutendl; cout现在是; period(t); /调用时间函数 cout-endl; coutgetst(); /提取行动点数 cout你的行动点数还有:Nstependl; coutshow(); /调用数值输出函数 if(emg-19)=1) cout 健康状况:生病endl; else cout 健康状况:良好endl; cout请选择你想做的事:endl;
19、cout0、参看说明 1、喂食 2、喂水 3、抚摸 4、逗它玩耍 5、不做任何事; if(emg-19)=1) cout 6、看医生。endl; else coutendl; coutact; cout-action(act,w,emg); /调用主人动作函数 while(act+1)%6); petx-emergency(emg); /调用特殊状态函数 Nage=petx-geta(); /提取年龄 if(Nagelife) cout-endl; cout很遗憾,由于饲养不善,你的宠物已经死亡。endl; cout-endl; break; /非正常死亡,bad end if(Nstep0) cout-endl; cout真不幸,宠物的饲养已经让你感到心力交瘁。endl; cout看来你和它共同的生活要就此告一段落了。endl; cout唉,你的修行还未够班啊,继续努力吧。endl; cout-endl; break; /非正常结束饲养,bad end t+; cout-life|Nstep0) break; /非正常死亡,跳出循环 system(cls); /调用系统清屏函数 if(date=life) cout-endl; cout恭喜,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1