收藏 分销(赏)

c课程设计用户猜测藏物位置.doc

上传人:a199****6536 文档编号:2929356 上传时间:2024-06-11 格式:DOC 页数:6 大小:47KB 下载积分:6 金币
下载 相关 举报
c课程设计用户猜测藏物位置.doc_第1页
第1页 / 共6页
c课程设计用户猜测藏物位置.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
《用户猜测藏物位置》 程序设计基础课程设计报告 专 业: 电子信息工程 班 级: 电信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、 为获得藏放某一物件的棋盘,可动态地创建一个二维数组; 2、 对创建的二位数组赋初值(所赋的值为1~m*n的连续整数); 3、 通过随机函数rand()来获取1~m*n之间的任一整数,并将值赋给N,N对应棋盘上的一个位置,即储物藏放的位置; 4、 通过循环,先找到储物藏放的位置,在提示用户输入猜测的位置,通过比较这两组坐标是否相等,判断用户猜测是否正确; 5、 还可以设计一个循环,嵌套在上面的循环里,4中的循环每执行一次,该循环可以提供帮助,告诉用户储物藏放的位置和用户猜测位置之间的距离。 6、 在4中,同时还应设计一个循环变量,用以计算用户猜测的次数。 3.功能模块说明: 1程序运行时,首先提示设置棋盘的行、列; 2接下来,用户需输入猜测的位置的行、列,若正确,程序提示一共猜测了几次,若错误,程序告知猜测位置与储物位置之间的距离是多少,帮助用户找到储物…… 3、反复执行2,直到找到储物的位置为止。 运行实例: 进一步改进: 能够添加更多的用于帮助用户的部分: 比如, 为了游戏的趣味性,还可以限制猜测的次数。设计一个结构,在猜测的次数到达一定值之后,跳出循环,终止程序。 4.源程序: #include<iostream.h> #include<stdlib.h> //用到了随机函数 #include<math.h> #include<time.h> int main() { int i,j,m,n; cout<<"请设置行、列:"; cin>>m>>n; //动态的创建一个二维数组(通过指针数组) int **guess; guess=new int*[m]; for(j=0;j<m;j++) {guess[j]=new int[n]; } //初始化二维数组 for(i=0;i<m;i++) for(j=0;j<n;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;i<m;i++) for(j=0;j<n;j++) if(guess[i][j]==N){a=i+1;b=j+1;i=m;break;} while(1){ cout<<"请输入你猜的坐标:"; cin>>x>>y; if(x==a&&y==b) break; //距离判断 z=(a-x)*(a-x)+(b-y)*(b-y); cout<<"与该物体的距离是:"<<int(sqrt(z))<<endl; //强制数据类型转换 if(x>a) cout<<"可能是向左移且";else cout<<"可能是向右移且"; if(y>b) cout<<"向下移!";else cout<<"向上移!"; cout<<endl; t=t+1; } cout<<"恭喜你,你猜对了!一共猜了"<<t<<"次!"<<endl; //撤销二维数组 for(i=0;i<m;i++) {delete [] guess[i]; //一下子撤销一行 } delete [] guess; return 0; } 5.课程设计总结: 在这个课程设计中,我明白了自己在学习中的许多漏洞,在课程设计中许多概念型问题还需要看书解决,说明学习还不够扎实,这门课不是老师教完就完了的,还需要自己经常的上机实验,来步步完善自己的思维,以更熟练的掌握C++的应用。 在整个设计中深刻体会到编程者的辛苦,一点点差错将导致严重后果,在整个程序设计过程中,能锻炼自己的思维使其更敏锐,发现自己的错误本是件不容易的事,但编程过程中,必须要找到自己所疏忽或考虑不周等而引起的错误。 6.参考书目: 谭浩强,《C++程序设计》,北京,清华大学出版社,2006年.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服