


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年土地承包合同的附加協議
- 2025標準租賃合同協議范本2
- 2025汽車租賃評估合同
- 2025年室內外租擺植物合同范本
- 采購豬肉、蔬菜監獄2023年大宗伙食物資政府采購項目(D、E包)通派-副食品
- 2025全球知名品牌授權合同范本
- 《深度解析》課件
- 山東省泰安市肥城市2024-2025學年度下學期期中考試六年級歷史試題統編版(五四學制)(含答案)
- 福建省福州市八縣(市區)協作校2024-2025學年高二下學期期中聯考語文試卷(含答案)
- 皮帶船租賃合同協議
- 消費者起訴狀模板范文
- 2022年工程機械設備租賃服務方案(含應急處理方案、保障措施)
- (完整版)外科護理學知識點整理
- 2019版《壓力性損傷的預防和治療:臨床實踐指南》解讀
- 在那遙遠的地方課件
- 圍堰吹填施工方案
- 創業計劃書案例-產品類-南大無醇酒創業完全版
- 食品生產企業動態風險因素量化分值表食品生產日常監督檢查要點表
- 基層醫療衛生機構依法執業自查表
- 氣管插管術培訓課件
- 普通高等學校畢業生就業協議書(三方協議)
評論
0/150
提交評論