《面向对象程序设计.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计.docx(14页珍藏版)》请在第一文库网上搜索。
1、1iaochenguniversity计算机学院实验报告120142015学年第1学期【一、基本信息】【实验课程】面向对象程序设计【设课形式】独立也非独立口【课程学分】2【实验项目】C+对C的扩充【项目类型】基础3综合口设计口研究创新其它【项目学时】2【学生姓名】高伟建【学号】2013204547【系别专业】计算机科学与技术【实验班组】2013级1班组合【同组学生】【实验室名】A309【实验日期】2014.11.18【报告日期】2014.11.18【二、实验教师对报告的最终评价及处理意见】实验成绩:(涂改无效)指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,
2、并报实验管理中心备案【三、实验预习】实验目的和要求:1、了解在面向过程程序设计中C+对C语言的扩充与增强,并善于在编写程序过程中应用这些新的功能;2、熟悉在EC1iPSe集成开发环境下编辑、编译、连接和运行C+程序的方法;3、熟悉C+程序的结构和编程方法。实验内容和原理或涉及的知识点(综合性实验):1、验证大于等于4小于等于IOOoO的偶数均可分解微量素数之和,并打印分解形式。2、编写程序进行模拟仿真。在码头酒馆和游船之间搭了一条长20米,宽4米的跳板,醉酒的船员和游客回艇时必须通过这个跳板。通过跳板时,有三种可能的结果:向前走,回到游船上休息,不再出来;转身回到酒馆,重新开始喝酒,不再出来;
3、左右乱晃,落入水中淹死。果醉酒者每次走一步,一步走1米。而且他们向前走的概率是0.7,向左走、向右走和向后走的概率各为0.1。现在假设开始时他们都是站在酒馆的门口,编写程序模拟出若干个醉酒者的最终行为结果。3、编写程序解决JoSePhUS问题。Josephus问题是说,一群小孩围坐成一圈,现在任意取一个数n,从当前编号为一的孩子开始数起,依次数到n(因为围成了一圈,所以可以不停的数下去),这时被数到n的孩子离开,然后圈子缩小一点。如此重复进行,小孩数不断减少,圈子也不断缩小。最后所剩的那个小孩就是胜利者。请找出这个胜利者。4、编写程序实现五子棋棋游戏。五子棋的规则为:双方各执一色棋子,轮流下子
4、(将子放在棋盘的任一未下子的点上),直到有一方的棋子有5个排成一线(无论是横、竖还是斜均可),则棋局结束,该方胜利。O实验条件(实验设备、软件、材料等):1、装有WindOWS操作系统的微型计算机;2、EC1iPSe集成开发环境和CDT插件;3、MinGW编译环境。实验设计方案(实验方法、步骤、操作过程、设计型实验、实验数据记录表格):1、熟悉在ECIiPSe集成开发环境下编辑、编译、连接和运行C+程序的方法。2、借助流程图对程序进行“自顶向下、逐步求精”的结构化分析。3、熟悉C+中ConSt、引用、new、de1ete的用法。4、利用“筛法”生成素数表。5、实现模拟仿真要利用随机值函数。实验
5、预习成绩(涂改无效)合格口不合格口【四、实验过程、数据和实验结果记录】实验方法、步骤、操作过程的记录描述或程序代码。实验过程中输入/输出数据、程序运行结果的记录。(可加附页)实验1.1#inc1ude#inc1ude#defineM100()11、验证大于等于4小于等于I(XX)O的偶数均可分解微量素数之和,并打印分解形式。voidCreatPrime1ist(int*Prime1ist)for(inti=0;iM;+i)Prime1isti=1;Prime1istO=Prime1ist1=0;fbr(inti=2;i*iM;+i)if(Prime1isti=1)for(intj=2*i;jM
6、;j+=i)Prime1istj=O;voidPrint1ist(int*Prime1ist)intm=1;for(inti=4;m&(i=M-1);i+=2)for(intj=2;j=i2;+j)if(Prime1istj&Prime1isti-j)(std:couti=,j+ij=i2)std:coutThisconc1usionisworning;m=0;)intmain()(intPrime1ist1IO(XX);CreaiPrime1ist(Prime1ist);Print1ist(Prime1ist);return0;实验1.2#inc1ude#inc1ude#inc1udeint
7、drunkar()(intx=-20;inty=0;intstep=O;whi1e(fabs(x)=20&fabs(y)=2)switch(rand()%10)caseO:y=y-1;break;case 1: y=y+1;break;case 2: x=x-I;break;case 3: case4:case5xase6:case7:case8:case9:x=x+I:step=step+1;if(x-20)std:coutstep,步后,人回到酒馆喝酒。20)std:coutstep步后,一人走到游船上。std:end1;return2;e1sestd:coutstep步后,一人掉到水里。
8、std:end1;return3;intmain()(intn,A=O,B=O,C=O;std:CoUI”醉酒人数为:”;std:cinn;fbr(inti=1;i=n;i+)switch(drunkar()case 1: A+;break;case 2: B+;break;case 3: C+;break;s1d:CoUIA人回到酒馆喝酒。std:CoUtB人走到游船上。;std:CoUtC人掉到水里。”;return0;tota1+;COUt最后剩余的是:i+1end1;returnO;实验1.4#inc1ude#inc1ude# defineX20# defineY20# defineN
9、5usingnamespacestd;intisWin(intaXY,inttype);voidcreat(intaXYJ);voidprint(intaXY);voidmyse1f(intaXY,int&t,int&x,int&y);voidcomputer(intaXY,int&t,intx,inty);intmain()intaXx,y,t;creat(a);print(a);for(inti=O;i=(X-I)*(Y-1);i+)(if(i%2=O)(COUt请输入落子的坐标(x,y):myse1fU,t,x,y);e1secomputer(a,t,x,y);print(a);if(i
10、sWin(a,t)=t)(if(t=I)coutend1iswinend1;if(t=2)coutend1iswinXHxYHyO)cout”输出的x,y超出了棋盘范围end1;e1seif(axy!=O)cout此处已有子end1;e1sebreak;cinXy;x-=1;y-=1;axy=1;t=1;voidcomputer(intaXY,int&t,intx,inty)(whi1e(axy!=0)(intk=rand()%4;switch(k)(case0:x+;break;x-;break;y+;break;y-;break;axy=2;t=2;intisWin(intaX(Y,int
11、type)(for(intx=O;xX;x+)(fbr(inty=0;yY;y+)(判断横方向上是否有连子fbr(inti=x;(ix+N)&(i=X-N);i+)(if(aiy!=type)break;if(i=x+N-1)returntype;判断纵方向上是否有连子fbr(intj=y;(jy+N)&(j=Y-N);j+)(if(axj!=type)break;if(j=y+N-I)returntype;判断正斜方向上是否有连子inti=xj=y;whi1e(i=x+N&i=X-N&j=y+N&n=N)(if(amn!=type)break;if(n=y+N-1)returntype;m-
12、;n+;returnO;voidcreat(intaX(Y)(fbr(inti=O;iX;i+)fbr(intj=0;jY;j+)a(iU=O;voidprint(intaXY)(COUt,五子棋end1r;for(inti=O;iX;i+)coutt;cout,-,end1;fbr(intj=O;jY;j+)(coutF;for(inti=O;iX;i+)(if(aij=1)coute1seif(aijj=2)cout,Or;e1secoutcoutHend1;cout1;fbr(inti=O;iX;i+)coutj-;cout,-jend1;记录成绩(涂改无效)合格不合格口【五、实验结果分析】根据理论知识对所得到的实验数据或结果进行解释、分析。对实验结果所作的一般性的判断、归纳、概括,实验的心得体会、建议等。1,、熟练应用C+等语法.C和C+语言要掌握牢固。