- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c课程设计(用户猜测藏物位置)
《用户猜测藏物位置》
程序设计基础课程设计报告
专 业: 电子信息工程
班 级: 电信2班
姓 名:
指导教师:
二O 一 二 年 二 月 二十 日
目 录
1 课程设计目的………………………………………………………2
2 课程设计题目描述和要求…………………………………………2-3
3 功能模块说明………………………………………………………3-4
4 源文件………………………………………………………………4-5
5 课程设计总结………………………………………………………5
6 参考书目……………………………………………………………6
1.课程设计目的:
通过课程设计了解自己通过一学年的学习C++这门课到底学的怎么样,并将书本上的知识用于实践中,验证自己的学习成果,并进一步发现自己的不足并且改正.
2.课程设计题目描述和要求:
用户猜测藏物位置:计算机在n行n列(行号为0到n-1,列号为0到n-1)的“棋盘”的某一位置处“藏放一物件”(具体位置通过使用“rand()%10”来随机产生);用户通过输入行列号来“寻找”该物件;若没猜对时计算机要告诉用户与藏放物件的位置有多远(取整后的近似距离)。
思考:若没猜对时也可增加告诉用户藏物的方向信息;另外在猜对结束时,还可告诉用户共猜了几次。
大致的思路为:
为获得藏放某一物件的棋盘,可动态地创建一个二维数组;
对创建的二位数组赋初值(所赋的值为1~m*n的连续整数);
通过随机函数rand()来获取1~m*n之间的任一整数,并将值赋给N,N对应棋盘上的一个位置,即储物藏放的位置;
通过循环,先找到储物藏放的位置,在提示用户输入猜测的位置,通过比较这两组坐标是否相等,判断用户猜测是否正确;
还可以设计一个循环,嵌套在上面的循环里,4中的循环每执行一次,该循环可以提供帮助,告诉用户储物藏放的位置和用户猜测位置之间的距离。
在4中,同时还应设计一个循环变量,用以计算用户猜测的次数。
3.功能模块说明:
1程序运行时,首先提示设置棋盘的行、列;
2接下来,用户需输入猜测的位置的行、列,若正确,程序提示一共猜测了几次,若错误,程序告知猜测位置与储物位置之间的距离是多少,帮助用户找到储物……
3、反复执行2,直到找到储物的位置为止。
运行实例:
进一步改进:
能够添加更多的用于帮助用户的部分:
比如, 为了游戏的趣味性,还可以限制猜测的次数。设计一个结构,在猜测的次数到达一定值之后,跳出循环,终止程序。
4.源程序:
#includeiostream.h
#includestdlib.h //用到了随机函数
#includemath.h
#includetime.h
int main()
{
int i,j,m,n;
cout请设置行、列:;
cinmn;
//动态的创建一个二维数组(通过指针数组)
int **guess;
guess=new int*[m];
for(j=0;jm;j++)
{guess[j]=new int[n];
}
//初始化二维数组
for(i=0;im;i++)
for(j=0;jn;j++)
{guess[i][j]=i*n+j+1;
}
//通过随机函数,设置箱子的位置 //表示a~b的话,a+rand()%(b-a+1)
int N;
srand((unsigned) time(NULL)); /*播种子*/
N = rand() % (m*n);
//设置一个循环,进行猜词游戏
int x,y,z; //z是两坐标之间的距离
int t=1; //t是一个统计变量
int a,b; //N的位置
for(i=0;im;i++)
for(j=0;jn;j++)
if(guess[i][j]==N){a=i+1;b=j+1;i=m;break;}
while(1){
cout请输入你猜的坐标:;
cinxy;
if(x==ay==b) break;
//距离判断
z=(a-x)*(a-x)+(b-y)*(b-y);
cout与该物体的距离是:int(sqrt(z))endl; //强制数据类型转换
if(xa) cout可能是向左移且;else cout可能是向右移且;
if(yb) cout向下移!;else cout向上移!;
c
您可能关注的文档
最近下载
- 《劳动教育》教学课件PPT.pptx VIP
- TZS 0680—2025《医疗机构实验室生物安全管理组织架构规范》(水印版).pdf VIP
- 电信研发工程师L1认证培训考试复习题库资料(含答案).pdf
- 2024邮政集团湖北分公司社招笔试备考试题及答案解析.docx VIP
- 智慧教育行业解决方案(PPT).pptx VIP
- 《AIGC高效办公:Excel数据处理与分析》课件 第8章 客户数据分析.pptx VIP
- 企业合同法律风险及防范培训.pptx VIP
- 天达登机桥维保手册.pdf
- 漏扫RAS3000-山石网科远程安全评估系统用户手册V5.5-1.8.4-4.pdf VIP
- 2024年第九届“学宪法、讲宪法”知识竞赛题库及答案(中小学组).pdf VIP
文档评论(0)