版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1LIAOCHENG计算机学院实验报告【2014~2015学年第1学期】【一、基本信息】【实验课程】面向对象程序设计【设课形式】独立eq\o\ac(□,√)非独立□【课程学分】2【实验项目】C++对C的扩充【项目类型】基础eq\o\ac(□,√)综合□设计□研究创新□其它[]【项目学时】2【学生姓名】高伟建【学号】2013204547【系别专业】计算机科学与技术【实验班组】2013级1班组台【同组学生】【实验室名】A309【实验日期】2014.11.18【报告日期】2014.11.18【二、实验教师对报告的最终评价及处理意见】实验成绩:(涂改无效)指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案【三、实验预习】实验目的和要求:1、了解在面向过程程序设计中C++对C语言的扩充与增强,并善于在编写程序过程中应用这些新的功能;2、熟悉在Eclipse集成开发环境下编辑、编译、连接和运行C++程序的方法;3、熟悉C++程序的结构和编程方法。实验内容和原理或涉及的知识点(综合性实验):1、验证大于等于4小于等于10000的偶数均可分解微量素数之和,并打印分解形式。2、编写程序进行模拟仿真。在码头酒馆和游船之间搭了一条长20米,宽4米的跳板,醉酒的船员和游客回艇时必须通过这个跳板。通过跳板时,有三种可能的结果:向前走,回到游船上休息,不再出来;转身回到酒馆,重新开始喝酒,不再出来;左右乱晃,落入水中淹死。果醉酒者每次走一步,一步走1米。而且他们向前走的概率是0.73、编写程序解决Josephus问题。Josephus问题是说,一群小孩围坐成一圈,现在任意取一个数n,从当前编号为一的孩子开始数起,依次数到n(因为围成了一圈,所以可以不停的数下去),这时被数到n的孩子离开,然后圈子缩小一点。如此重复进行,小孩数不断减少,圈子也不断缩小。最后所剩的那个小孩就是胜利者。请找出这个胜利者。4、编写程序实现五子棋棋游戏。五子棋的规则为:双方各执一色棋子,轮流下子(将子放在棋盘的任一未下子的点上),直到有一方的棋子有5个排成一线(无论是横、竖还是斜均可),则棋局结束,该方胜利。。实验条件(实验设备、软件、材料等):1、装有Windows操作系统的微型计算机;2、Eclipse集成开发环境和CDT插件;3、MinGW编译环境。。实验设计方案(实验方法、步骤、操作过程、设计型实验、实验数据记录表格):1、熟悉在Eclipse集成开发环境下编辑、编译、连接和运行C++程序的方法。2、借助流程图对程序进行“自顶向下、逐步求精”的结构化分析。3、熟悉C++中const、引用、new、delete的用法。4、利用“筛法”生成素数表。5、实现模拟仿真要利用随机值函数。实验预习成绩(涂改无效)合格□不合格□【四、实验过程、数据和实验结果记录】=1\*GB3①实验方法、步骤、操作过程的记录描述或程序代码。=2\*GB3②实验过程中输入/输出数据、程序运行结果的记录。(可加附页)实验1.1#include<iostream>#include<cmath>#defineM10001//1、验证大于等于4小于等于10000的偶数均可分解微量素数之和,//并打印分解形式。voidCreatPrimeList(int*PrimeList){for(inti=0;i<M;++i)PrimeList[i]=1;PrimeList[0]=PrimeList[1]=0;for(inti=2;i*i<M;++i){if(PrimeList[i]==1)for(intj=2*i;j<M;j+=i)PrimeList[j]=0;}}voidPrintList(int*PrimeList){intm=1;for(inti=4;m&&(i<=M-1);i+=2){for(intj=2;j<=i/2;++j)if(PrimeList[j]&&PrimeList[i-j]){std::cout<<i<<'='<<j<<'+'<<i-j<<'\n';break;}elseif(j>=i/2){std::cout<<"Thisconclusionisworning";m=0;}}}intmain(){intPrimeList[10000];CreatPrimeList(PrimeList);PrintList(PrimeList);return0;}实验1.2#include<iostream>#include<cmath>#include<cstdlib>intdrunkar(){ intx=-20; inty=0; intstep=0; while(fabs(x)<=20&&fabs(y)<=2) { switch(rand()%10) { case0:y=y-1;break; case1:y=y+1;break; case2:x=x-1;break; case3:case4:case5:case6:case7:case8:case9:x=x+1; } step=step+1; } if(x<-20) { std::cout<<step<<"步后,一人回到酒馆喝酒。"<<std::endl; return1; } else { if(x>20) { std::cout<<step<<"步后,一人走到游船上。"<<std::endl; return2; } else { std::cout<<step<<"步后,一人掉到水里。"<<std::endl; return3; } }}intmain(){intn,A=0,B=0,C=0;std::cout<<"醉酒人数为:";std::cin>>n;for(inti=1;i<=n;i++){switch(drunkar()){case1:A++;break;case2:B++;break;case3:C++;break;}}std::cout<<A<<"人回到酒馆喝酒。";std::cout<<B<<"人走到游船上。";std::cout<<C<<"人掉到水里。";return0;}实验1.3#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){int*a,n,m,total=0,i;cout<<"请输入孩子个数m和n的值:";cin>>m>>n;a=(int*)malloc(m*sizeof(int));for(i=0;i<m;i++)*(a+i)=1;i=0;while(total<m){for(intj=1;j<=n;){if(i>(m-1))i=0;i++;if(a[i]!=0)j++;}cout<<i<<"";a[i]=0;total++;}cout<<"最后剩余的是:"<<i+1<<endl;return0;}实验1.4#include<iostream>#include<cstdlib>#defineX20#defineY20#defineN5usingnamespacestd;intisWin(inta[X][Y],inttype);voidcreat(inta[X][Y]);voidprint(inta[X][Y]);voidmyself(inta[X][Y],int&t,int&x,int&y);voidcomputer(inta[X][Y],int&t,intx,inty);intmain(){inta[X][Y],x,y,t;creat(a);print(a);for(inti=0;i<=(X-1)*(Y-1);i++){if(i%2==0){cout<<"请输入落子的坐标(x,y):";myself(a,t,x,y);}else{computer(a,t,x,y);}print(a);if(isWin(a,t)==t){if(t==1)cout<<endl<<"●iswin"<<endl;if(t==2)cout<<endl<<"⊙iswin"<<endl;break;}}return0;}voidmyself(inta[X][Y],int&t,int&x,int&y){cin>>x>>y;x-=1;y-=1;while(true){if(x>X||x<0||y>Y||y<0)cout<<"输出的x,y超出了棋盘范围"<<endl;elseif(a[x][y]!=0)cout<<"此处已有子"<<endl;elsebreak;cin>>x>>y;x-=1;y-=1;}a[x][y]=1;t=1;}voidcomputer(inta[X][Y],int&t,intx,inty){while(a[x][y]!=0){intk=rand()%4;switch(k){case0:x++;break;case1:x--;break;case2:y++;break;case3:y--;break;}}a[x][y]=2;t=2;}intisWin(inta[X][Y],inttype){for(intx=0;x<X;x++){for(inty=0;y<Y;y++){//判断横方向上是否有连子for(inti=x;(i<x+N)&&(i<=X-N);i++){if(a[i][y]!=type)break;if(i==x+N-1)returntype;}//判断纵方向上是否有连子for(intj=y;(j<y+N)&&(j<=Y-N);j++){if(a[x][j]!=type)break;if(j==y+N-1)returntype;}//判断正斜方向上是否有连子inti=x,j=y;while(i<=x+N&&i<=X-N&&j<=Y-N){if(a[i][j]!=type)break;if(i==x+N-1)returntype;i++;j++;}//判断反斜方向上是否有连子intm=x,n=y;while(n>=y+N&&n<=Y-N&&m>=N){if(a[m][n]!=type)break;if(n==y+N-1)returntype;m--;n++;}}}return0;}voidcreat(inta[X][Y]){for(inti=0;i<X;i++)for(intj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度艺术捐赠协议三方合作框架2篇
- 孕妇产前心理调适与情绪管理技巧
- 二零二五年度跨境电商进口合同结算范本2篇
- 二零二五年度绿色环保家庭养老照护床位供应协议3篇
- 智慧旅游益旅行模板
- 2024铝材节能环保产品设计与生产合同范本3篇
- 2025年度销售员市场拓展与劳务合同范本3篇
- 英语阅读技能提升模板
- 2025正规的劳务的合同范本
- 二零二五年度玻璃制品安装与维护一体化服务协议3篇
- 少年宫2025年度象棋活动计划
- 2025年国家计算机网络应急技术处理协调中心省级分中心招聘39人历年高频重点提升(共500题)附带答案详解
- 上海市2024年中考英语试题及答案
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之21:“7支持-7.5成文信息”(雷泽佳编制-2025B0)
- 2023-2024年电商直播行业现状及发展趋势研究报告
- 中央2024年市场监管总局直属事业单位招聘中层干部历年参考题库(频考版)含答案解析
- 阜阳市重点中学2025届高考数学全真模拟密押卷含解析
- 房屋市政工程生产安全重大事故隐患判定标准(2024版)宣传海报
- 房屋市政工程生产安全重大事故隐患判定标准(2024版)宣传画册
- 2025年道路运输企业客运驾驶员安全教育培训计划
- 2024年市特殊教育学校工作总结范文(2篇)
评论
0/150
提交评论