![《計算機基礎(chǔ)實驗課程》綜合實驗報告簡單生態(tài)系統(tǒng)仿真_第1頁](http://file4.renrendoc.com/view/b653d2be1e24a57fbea34b3af5468c50/b653d2be1e24a57fbea34b3af5468c501.gif)
![《計算機基礎(chǔ)實驗課程》綜合實驗報告簡單生態(tài)系統(tǒng)仿真_第2頁](http://file4.renrendoc.com/view/b653d2be1e24a57fbea34b3af5468c50/b653d2be1e24a57fbea34b3af5468c502.gif)
![《計算機基礎(chǔ)實驗課程》綜合實驗報告簡單生態(tài)系統(tǒng)仿真_第3頁](http://file4.renrendoc.com/view/b653d2be1e24a57fbea34b3af5468c50/b653d2be1e24a57fbea34b3af5468c503.gif)
![《計算機基礎(chǔ)實驗課程》綜合實驗報告簡單生態(tài)系統(tǒng)仿真_第4頁](http://file4.renrendoc.com/view/b653d2be1e24a57fbea34b3af5468c50/b653d2be1e24a57fbea34b3af5468c504.gif)
![《計算機基礎(chǔ)實驗課程》綜合實驗報告簡單生態(tài)系統(tǒng)仿真_第5頁](http://file4.renrendoc.com/view/b653d2be1e24a57fbea34b3af5468c50/b653d2be1e24a57fbea34b3af5468c505.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
院 系:計算機學(xué)院實驗課程:計算機基礎(chǔ)實驗課程實驗項目:簡單生態(tài)系統(tǒng)仿真軟件指導(dǎo)老師:XXX開課時間:XXXX?XXXX年度第2學(xué)期專業(yè):XXXX班級:XXXX級本X班學(xué)生:XXX學(xué)號:XXXXXXX設(shè)計和開發(fā)一個簡單的生態(tài)系統(tǒng)仿真軟件二、 中文摘要:簡單生態(tài)系統(tǒng)是指環(huán)境與生物之間相互關(guān)系的一個動態(tài)系統(tǒng)。在這個系統(tǒng)中,每種生物都有自己的發(fā)展形態(tài),各種生物相互作用之后,使系統(tǒng)處于動態(tài)發(fā)展之中,最終達(dá)到平衡狀態(tài)?,F(xiàn)在可以用面向?qū)ο蟪绦蛟O(shè)計來設(shè)計一個簡單生態(tài)系統(tǒng),實現(xiàn)該動態(tài)過程。環(huán)境、生物分別用不同的類進(jìn)行設(shè)計,各種生物的發(fā)展規(guī)律由各生物類中的函數(shù)來實現(xiàn)。通過對此簡單生態(tài)系統(tǒng)的設(shè)計,使自己加深對面向?qū)ο蟪绦蛟O(shè)計的認(rèn)識和實踐操作能力。三、 關(guān)鍵詞:簡單生態(tài)系統(tǒng)面向?qū)ο蟪绦蛟O(shè)計類與對象C卄四、 前言:(一) 實驗?zāi)康模和ㄟ^本次綜合開發(fā),加深對面向?qū)ο蟾拍畹睦斫?,提高軟件設(shè)計和開發(fā)能力,培養(yǎng)自學(xué)能力和刻苦鉆研的精神,增強獨立思考的習(xí)慣和勇于創(chuàng)新的魄力。(二) 實驗任務(wù):在了解供參考的仿真模型后,閱讀供參考的代碼,然后在代碼的基礎(chǔ)上進(jìn)行完善或者重寫,默認(rèn)采用控制臺的彩色顯示方式(參考代碼的basic.h中有相關(guān)的實現(xiàn)代碼),也可以考慮用圖形用戶界面(GUI)的方式顯示。修改完善各類生物物種的現(xiàn)有規(guī)則;嘗試著添加新的物種,并定義相應(yīng)的規(guī)則;通過不斷的重構(gòu)來完善系統(tǒng)的設(shè)訃和實現(xiàn),在改進(jìn)中體會如何權(quán)衡各種因素,通過合理有效的面向?qū)ο笤O(shè)計和實現(xiàn),帶來代碼復(fù)用、隔離變化、#增加擴展性等方面的好處。仿真模型和代碼結(jié)構(gòu)提倡按照自己的理解和能力進(jìn)行自山發(fā)揮,使得仿真模型更合理、顯示方式更直觀、配置更方便、擴展更容易、可維護(hù)性更好。(三) 實驗要求:按照綜合設(shè)計實驗的格式要求撰寫本實驗的實驗報告;代碼規(guī)范、注釋簡潔清晰;獨立完成代碼的編寫和調(diào)試以及實驗報告的撰寫;(四) 供參考的仿真模型介紹:將作為我們研究對象的生態(tài)系統(tǒng)的世界地圖分為若干個方格,比如說40*40。假設(shè)本生態(tài)系統(tǒng)中存在一種植物(青草),兩種動物(兔子和狐貍)。每個方格根據(jù)上面是否生存有生物,相應(yīng)地分為空白、有青草、有兔子、有狐貍。初始時,按照某種預(yù)設(shè)的生物分布對方格進(jìn)行配置,形成初始的生態(tài)系統(tǒng)狀態(tài)。每次仿真循環(huán)時,對于每個給定的方格,計算周圉鄰居中不同生命物種的數(shù)量,再決定哪種生物將繼續(xù)生存下去,注意周圍鄰居要包括當(dāng)前的方格本身。隨著仿真的推進(jìn),生態(tài)系統(tǒng)根據(jù)預(yù)設(shè)的生物生存規(guī)律和其它限制條件而變化。在若干仿真周期后,形成了不同的生態(tài)系統(tǒng)狀態(tài)。假設(shè)的生物生存規(guī)律和限制條件為:青草:如果在相鄰區(qū)域有比兔子能吃到的更多的草存在,則草存留下來,否則,草被吃光。兔子:如果兔子的年齡超過DRAB的限制,則兔子會老死;如果兔子附近有適當(dāng)數(shù)量的狐貍,它們將被狐貍吃掉。狐貍:狐貍會死于過度擁擠或者年老。(五) 供參考的代碼介紹:程序類層次框架:用面向?qū)ο蟮姆绞皆O(shè)計了主體框架,其中包含3個主要的類,場景類Scene.世界類World、生物類LivingUnit,然后從生物類派生出4個類,空白方格單元類EmptyUnit>有青草的方格單元類GrassUnit、有兔子的方格單元類RabbitUnit.有狐貍的方格單元類FoxUnito各類的主要功能分別介紹如下:場景類Scene主要包含下列公有函數(shù):voidupdate(); 〃更新場景voiddisplayO; 〃顯示當(dāng)前的場景voidrun(); 〃場景運行世界類World主要包含下列公有函數(shù):voidupdate(); 〃更新世界voiddisplayO; 〃顯示世界voidsums(Positionpos,intsum[STATES]);//指定位置周圍的各類生物的〃總數(shù)的列表,返回結(jié)果保存在〃數(shù)組intsum[STATES]中以及5個供內(nèi)部調(diào)用的私有函數(shù):voidinitWorldO; 〃初始化世界,默認(rèn)全空voidworldOfGrass(); 〃配置青草的世界voidworldOfRabbit();〃配置兔子的世界voidworldOfFox(); 〃配置狐貍的世界LivingUnit*locate(introw,intcolum);//根據(jù)指定位置返回指向存在于〃該位置的對象的指針此外,有1個私有屬性:Map*curMap;〃當(dāng)前的世界地圖生物類LivingUnit該類為抽象基類,包含了3個純虛函數(shù),需要派生類去實現(xiàn):virtualStategetState()=O; 〃獲取生物所在位置的當(dāng)前仿真時刻狀態(tài)virtualStatenextState()=O;〃該單元下一個仿真時刻的狀態(tài)virtualvoidround()=0; 〃周圍態(tài)勢,得到各類主物數(shù)訂統(tǒng)訃還有3個私有屬性Positionpos; 〃所在的位置WorldWorld; 〃所在的世界intsum[STATES]; 〃所在位置附近的各類生物數(shù)U統(tǒng)計程序運行方式:仿真開始時,按照內(nèi)置的某種世界創(chuàng)建世界類World的一個對象,然后創(chuàng)建場景類Scene的一個對象用來加載,然后在仿真周期內(nèi),場景類Scene的對象循環(huán)運行,完成仿真任務(wù)。五、軟件的開發(fā)過程:本程序在原有的基礎(chǔ)上添加了一個新的生物一一Human,并對該程序中部分類的功能做了修改,開發(fā)過程如下:(一)添加新物種Human添加頭文件human,h;在human,h中添加如下內(nèi)容,定義一個新的類HumanUnito#indude"living.h"classHumanUnitpublicLivingUnitpublic:HumanUnitfWorld*w,intrintc,inta=0)pos.row=r;pos.colum=c;world=w;}StategetStateO;StatenextState0;voidroundO;protected:intage;};添加cpp文件human,cpp;實現(xiàn)HumanUnit的功能。#include"human.h"#include”emptyh”StateHumanUnit:getStateQreturnHUMAN;StateHumanUnit::nextState0{roundO;if[sum[HUMAN]>TMHUM){returnEMPTY;}elseif(age>DHUM){returnEMPTY;}elseif(sum[RABBIT]==O&&sum[FOX]==0&&sum[GRASS]==0){returnEMPTY;}else{returnHUMAN;}}voidHumanUnit:roundO{world->sums(possum);}在basic,h中的枚舉類型State中添加HUMAN,添加人類的壽命DHUM=5,太多的人類數(shù)為THHUM=2o在world,h中添加classHumanUnit;在枚舉類型Simworld中添加WORLD_OFJIUMAN;在World中添加空型類函數(shù)WorldofHuman()。在world,cpp中編入worldofHuman的世界初始化的代碼;在world的構(gòu)造函數(shù)中修改switch,如下:caseWORLD_OF_HUMAN:worldOfHumanO;break;在display函數(shù)中添加顏色的顯示,人類單元為藍(lán)色單元格。在empty,cpp中StateEmptyUnit::nextState()添加以下代碼:if(sum[HUMAN]>l){returnHUMAN;}(二)修改原來存有的代碼,增加其功能修改grass的類函數(shù):StateGrassUnit:nextStateO{round0;if(sum[GRASS]>(sum[RABBIT]+sum[HUMAN])){returnGRASS;}else{returnEMPTY;}}修改rabbit的類函數(shù):StateRabbitUnit:nextState0{round0;if(sum[RABBIT]>(sum[FOX]+sum[HUMAN])){returnRABBIT;}elseif(age>DRAB){returnEMPTY;}elseiffsum[GRASS]==0){returnEMPTY;}else{returnEMPTY;}}修改fox的類函數(shù):StateFoxUnit:nextState0{round0;if(sum[HUMAN]>sum[FOX]){returnEMPTY;}elseif(sum[FOX]>TMFOX){returnEMPTY;}else{if(age>DFOX){returnEMPTY;}elseif(sum[RABBIT]==0){returnEMPTY;}else{returnFOX;}}}在world,cpp中修改WORLD_OF_GRASSWORLD_OF_RABBITW0RLD_0F_F0X和添加WORLD_OF_HUMAN,使之都形如下列代碼:for(inti=2;i<N-2;++i)for(intj=2;j<N-2;++j){if((i+j)%7==0){(*curMap)[i][j]=RABBIT;}else(*curMap)[i][j]=FOX;else{if[(i+j)%7==2){(*curMap)[i][j]=HUMAN;}else{(*curMap)[i][j]=GRASS;}六、系統(tǒng)測試情況:一一Gras:s:-Rabbit-Fox~H?man 00000000000000000000000000000000000000000000000000000000000000000000000000000000&&ZQZQ2 8 .2 800001200200200280000012002002002808000;1200200200200890■2 00 2 00 2 00 2 80 02002002002000200200200200002 09 2 09 2 00 2 000020020022002002002000200200200200002 09 2 09 2 00 2 0000200200200200020020020011200000200200200000 2 00 2 00 2 002j00020020020020009302 00i200 2 00 2 000299 2 00i200 2 00 2 000299 200 200 200002 99 2 99 2 00 2 0000209 29911200 200 02001111200200200000120011200 200 00020020020021009 2 00 2 00 2 00 20003090909000900302 00i2 00 2 00 2 0002 00 2 00i2 00 2 00 2 0002 00 2 00 2 00L20000112 0011112 00 12 00i.i20000290 290 丄290 280 898000000TOC\o"1-5"\h\z002 00 12 90 2 80 2 00 8002 90 2 90 12 00 2 80 00000-2901200丄200.200000200200200i2000030 2 00 2 00 2 80 2 08000000000000000000000000in00000005151515151515155T5I5000000.51511112111121111211112iS0000000000008000200280200830001L200:i2(80000000200l20000200200280200111120011200i1211120011200!i2112001120011200000000200290000l2092301111290;l239001112112300303033'51500;12002002002001i200000000112800000:i20011200112001i200J2091;2001I20011200112111121112112002909000011200112000000!1200!120080000112001120011200001i200112001A200!1200112001L210001120011200:12001120011200000000000000002000120000200000000030000000000003000000000000000000000000000008000IH00000000000000000000000000000000000000000000000000000000000000000000000000000000H0j1 12 0 2 0111:.2 8 ,2 000L111200.112091111200-20000L1120002000111200020000090L12000020000120000L200000TOC\o"1-5"\h\z001200002000020000200000002 0009 2 0000 2 0008 2 0000 0&&000020000200082000020QQ&QQ92 0000 2 0008 2 0008 200QQQQ&Q2 0000 2 0000 2 0000 2 0080> 2 000012 0900 2 0000 2 00000 2QQQ92 00001i2 0000 2 000000 2 0000 2&QQQ2 0000 2 0000000J2 0000 2 0000 2 0000 2 000000002&9QQ2 0000 2 0000 2 0000 8002 0000 2 0009 2 0000 2 0000 00& 0000 2 0009 2 0000 2 0000 20000000200002000020000200000000 2 0003 2 0000 2 0000 2 0000120000200002000020000OJ2 0003 2 0000 2 0000 2 000000 \2 9999 2 9999 2 0000 2 0000009 2 0999 2 0989 2 0000 2 00000000J.2 0999 2 9999 2 0000 2 0008 0002 9909 2 0909 2 0000!2 0000 009 0999 2 0009 2 0000 2 0000 20000009 2 0009 2 0000 2 0000 200099099 2S909 200002000020009A11120999 2000020000200000.1112:000020000120000120000TOC\o"1-5"\h\z00 2 0900 2 0000 2 0000 2 00000002000020000120000200000000.2 0000 2 0009 2 0000 2 0000 0002 0000.2 0000一2 0090 2 0000 8000000.20000_280002800020000000 2 9000.2 0008.2 8000-2009000002000020000.20008.200QQQ&QQQQQQQ0000000000000008000000000000300000000000000000000000000000000300000 00000002J0002000020000>00200200200;0000002002002R9:1000230002002002002103020020020020003020020920020000020020028112002002002030111200200200209928020020020330802002002002003000280200200200002002002002J00020020020000020020020000020020020!128020020020111280200200200002802002002030980200200200200000020020020028000802002002002J000200200200800902030000000000000000000000000000000000000003000009000000090000000000000000000000000(5l5>5<55EEin0000Y00000000000000000002000000020000000200000000L1U1202011111202000Lilian11112111121111200L1120L20L2QL20L120.20L20L2002002002002000090000000000000000000000000000000000000010009090000090900000900000000000000000000111120111112011111201111120002002002002000012 0090 2 0999 2 0000 2 000002 0909912 0099912 000002 0000002 0909002 0090902 0000002 00000005155T55155T5002 0999092 0990992 0000002 000000009 0999992 0099092 0000002 0000002011121121220000002■51515I5I5I5B頃fcisBiysiggr0000002GEEEEhfa000000200000020000000002000000200000000002000000200000200000020000002000000000000200000020000000000000200000020000000000000200000020000002^00000002000000200000000200000020000000020000002000GEEEEhfa00200000020000002000032 0000002 0000002 00000200000020800002080000000000200000028000000000000200000020000000觀0002 8008002 008000200000020080002800000200000003002 0000002 0000002 0000002 800000000 0000000 0308000 8000000 80000000000030000000300000000000000000000000irr
5T510090090990009900990000000000000000000000111120111112011111201111120005T5WA200200200200002 0099 2 0999 2 0000112 00000WA2 09999L200909i2 000002 0000001002 0090092 0000002 0000002 0000000002 0000002 0000092 00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DBCO-C3-amide-PEG6-NHS-ester-生命科學(xué)試劑-MCE-2122
- 二零二五年度新能源汽車產(chǎn)業(yè)鏈入股合同協(xié)議書
- 二零二五年度旅游巴士駕駛員雇傭協(xié)議
- 二零二五年度自動售賣機智能物流配送與倉儲服務(wù)合同
- 2025年度二零二五年度餐飲品牌形象授權(quán)租賃合同
- 二零二五年度水電工程合同糾紛處理合同
- 2025年度時尚主題飯店出租運營合同
- 二零二五年度個人信用貸款合作協(xié)議書
- 施工現(xiàn)場施工防外部干擾制度
- 施工現(xiàn)場冬季掃雪方案
- 城市基礎(chǔ)設(shè)施修繕工程的重點與應(yīng)對措施
- GB 12710-2024焦化安全規(guī)范
- 2022年中考化學(xué)模擬卷1(南京專用)
- 【??途W(wǎng)】2024秋季校園招聘白皮書
- 2024-2025銀行對公業(yè)務(wù)場景金融創(chuàng)新報告
- 2025屆鄭州市高三一診考試英語試卷含解析
- 《我國個人所得稅制下稅收征管問題研究》
- 腫瘤中醫(yī)治療及調(diào)養(yǎng)
- DB21-T 1720-2017海水源熱泵系統(tǒng)工程技術(shù)規(guī)程
- 組長競選課件教學(xué)課件
- 2022年公務(wù)員多省聯(lián)考《申論》真題(遼寧A卷)及答案解析
評論
0/150
提交評論