C++猜测随机存放物品的位置坐标
需求分析
用户猜测藏物位置:计算机在10行10列(行号为0到9,列号为0到9)的“棋盘”的某一位置处“藏放一物件”(具体位置通过使用“rand()%10”来随机产生);用户通过输入行列号来“寻找”该物件;若没猜对时计算机要告诉用户与藏放物件的位置有多远(取整后的近似距离)。
思考:若没猜对时也可增加告诉用户藏物的方向信息;另外在猜对结束时,还可告诉用户共猜了几次。
要画出一个坐标,利用随机产生函数产生物品的真实坐标,然后用户猜测物品的坐标,如果猜对给出提示信息,如果猜错告诉用户具体方位.
5.2概要设计
利用坐标图函数画出作标图,而后通过随机函数产生物品坐标,通过用户猜测给出提示信息.
5.3详细设计与编码
代码见上传实验
流程图如下
主函数流程图 
猜测的流程图 
作标图流程图 
5.4调试分析
运行程序,会弹出一个坐标图和提示文字,提示用户输入坐标, 
输入坐标5,5,会发现系统的提示,根据提示在输入坐标,直到最后找到物品的真实坐标为止. 
5.5用户使用说明
运行程序,用户根据提示猜测物品所在地,然后在根据提示继续猜测直到找到真实坐标即可
5.6设计心得.
本实验关键是要解决真实坐标和猜测坐标的相对位置的计算问题,其中用到了一些函数,一定要细心应用.
#include <iostream>
#include <time.h>
#include <cmath>
using namespace std;
int posX,posY;         //棋盘中所藏物品的真实位置
//声明各种函数
void wupin(int& x,int& y);  //随机产生所藏物品的位置
void locate(int x,int y);     //猜测物品位置
void zuoBiaoTu();        //打印坐标图
int main()               //主函数
{
 int qiPan[10][10];    //10行10列的“棋盘”
 int count=0;        //记录猜测次数
 for(int i=0;i<10;i++)
  for(int j=0;j<10;j++)
   qiPan[i][j]=-1;
zuoBiaoTu(); //打印坐标图
 wupin(posX,posY);
 cout <<"10行10列的棋盘中的某一位置已经藏放了一个物件,请猜测它的位置(X坐标0~9,Y坐标0~9)"<<endl;
 int x,y;
 while(true)
 {
  cout <<"请输入坐标(X和Y): ";
  cin >>x>>y;
  count++;       //猜测次数加1
  if(x==posX && y==posY)
  {
   cout <<"恭喜您猜对了!"<<endl;
   break;
  }
  else
  {
   locate(x,y);        //给出对于藏放物品的相对位置
  }
 }
 cout <<"您一共猜了 "<<count<<" 次."<<endl;
 return 0;
}
void wupin(int& x,int& y)     //产生两个一位的随机数的函数
{
 time_t t;                     
    srand((unsigned)time(&t));   
    x=rand()%10;
    y=rand()%10;
}
void locate(int x,int y)   //给出x和y对于物品藏放位置的相对位置
{
 int xlength=x-posX,ylength=y-posY;        
 int length;
 if(xlength>0)
  cout <<"左";
 if(xlength<0)
  cout <<"右";
 if(ylength>0)
  cout <<"上";
 if(ylength<0)
  cout <<"下";
原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn }
void zuoBiaoTu()        //打印出坐标图
{
 for(int i=0;i<22;i++)
  cout <<"-";
 cout <<"> X"<<endl<<"|";
 for(int j=0;j<10;j++)
  cout <<j<<" ";
 cout <<endl;
 for(int k=1;k<10;k++)
  cout <<"|"<<k<<endl;
 cout <<"\\/"<<endl<<"Y"; cout <<endl;}1819