您好,欢迎访问三七文档
数据结构实验指导书1实验XX(例:一):实验名称一、实验目的1.了解线性表(List)的逻辑结构特性,以及这种特性在计算机内的两种存储结构:数组和链表。2.重点是线性表的基本操作在两种存储结构上的实现;其中以链表的操作为侧重点;并进一步学习面向对象的程序设计方法。3.进一步掌握面向对象的程序设计方法,提高程序设计能力。二、实验内容(代码)//TheLifeOfGame.cpp:定义控制台应用程序的入口点。//#includestdafx.h#includelife.h#includeiostreamusingnamespacestd;voidinstructions()/*Pre:None.Post:InstructionsforusingtheLifeprogramhavebeenprinted.*/{coutWelcometoConway'sgameofLife.endl;coutThisgameusesagridofsizemaxrowbymaxcolinwhichendl;couteachcellcaneitherbeoccupiedbyanorganismornot.endl;coutTheoccupiedcellschangefromgenerationtogenerationendl;coutaccordingtothenumberofneighboringcellswhicharealive.endl;}booluser_says_yes(){intc;boolinitial_response=true;数据结构实验指导书2do{//Loopuntilanappropriateinputisreceived.if(initial_response)cout(y,n)?flush;elsecoutRespondwitheitheryorn:flush;do{//Ignorewhitespace.c=cin.get();}while(c=='/n'||c==''||c=='/t');initial_response=false;}while(c!='y'&&c!='Y'&&c!='n'&&c!='N');return(c=='y'||c=='Y');}intmain()//ProgramtoplayConway'sgameofLife./*Pre:Theusersuppliesaninitialconfigurationoflivingcells.Post:TheprogramprintsasequenceofpicturesshowingthechangesintheconfigurationoflivingcellsaccordingtotherulesforthegameofLife.Uses:TheclassLifeanditsmethodsinitialize(),print(),andupdate();thefunctionsinstructions(),user_says_yes().*/{Lifeconfiguration;instructions();configuration.initialize();configuration.print();coutContinueviewingnewgenerations?endl;数据结构实验指导书3while(user_says_yes()){configuration.update();configuration.print();coutContinueviewingnewgenerations?endl;}}/****************************下面是life.h源码***********************/#ifndef_LIFE_H#endif_LIFE_Hconstintmaxrow=20,maxcol=60;//griddimensionsclassLife{public:voidinitialize();voidprint();voidupdate();private:intgrid[maxrow+2][maxcol+2];//Allowtwoextrarowsandcolumns.intneighbor_count(introw,intcol);};/**********************************下面是life.cpp***************************/#includestdafx.h#includeiostream#includelife.husingnamespacestd;voidLife::print()/*Pre:TheLifeobjectcontainsaconfiguration.Post:Theconfigurationiswrittenfortheuser.*/{数据结构实验指导书4introw,col;cout/nThecurrentLifeconfigurationis:endl;for(row=1;row=maxrow;row++){for(col=1;col=maxcol;col++)if(grid[row][col]==1)cout'*';elsecout'';coutendl;}coutendl;}intLife::neighbor_count(introw,intcol)/*Pre:TheLifeobjectcontainsaconfiguration,andthecoordinatesrowandcoldefineacellinsideitshedge.Post:Thenumberoflivingneighborsofthespecifiedcellisreturned.*/{inti,j;intcount=0;for(i=row-1;i=row+1;i++)for(j=col-1;j=col+1;j++)count+=grid[i][j];//Increasethecountifneighborisalive.count-=grid[row][col];//Acellisnotitsownneighbor.returncount;}voidLife::update()/*Pre:TheLifeobjectcontainsaconfiguration.数据结构实验指导书5Post:TheLifeobjectcontainsthenextgenerationofconfiguration.*/{introw,col;intnew_grid[maxrow+2][maxcol+2];for(row=1;row=maxrow;row++)for(col=1;col=maxcol;col++)switch(neighbor_count(row,col)){case2:new_grid[row][col]=grid[row][col];//Statusstaysthesame.break;case3:new_grid[row][col]=1;//Cellisnowalive.break;default:new_grid[row][col]=0;//Cellisnowdead.}for(row=1;row=maxrow;row++)for(col=1;col=maxcol;col++)grid[row][col]=new_grid[row][col];}voidLife::initialize()/*Pre:None.Post:TheLifeobjectcontainsaconfigurationspecifiedbytheuser.*/{introw,col;数据结构实验指导书6for(row=0;row=maxrow+1;row++)for(col=0;col=maxcol+1;col++)grid[row][col]=0;coutListthecoordinatesforlivingcells.endl;coutTerminatethelistwiththethespecialpair-1-1endl;cinrowcol;while(row!=-1||col!=-1){if(row=1&&row=maxrow)if(col=1&&col=maxcol)grid[row][col]=1;elsecoutColumncolisoutofrange.endl;elsecoutRowrowisoutofrange.endl;cinrowcol;}}三、实验结果四、总结(软件设计与实现过程种的经验与体会,进一步的改进设想,可再加入哪些部分?哪些部分可删除?哪些部分可合并?哪些可降低复杂度?怎样设计能提高其可复用性?多思考,多总结,才能不断提高程序设计能力。)数据结构实验指导书7
本文标题:C++实验报告模板
链接地址:https://www.777doc.com/doc-4285605 .html