//
#include<bits/stdc++.h>
using namespace std;
class robot
{
private:
double x,y;
bool judge( const double& a,const double& b )
{
return ( ( a>=0 && a<=(double)100 ) && ( b>=0 && b<=(double)100 ) );
}
public:
robot( double a=0,double b=0 ):x(a),y(b) {}
void init() { x=0; y=0; }
bool left( double dis )
{
if( judge( x-dis,y ) ) { x-=dis; return true; }
else return false;
}
bool right( double dis )
{
if( judge( x+dis,y ) ) { x+=dis; return true; }
else return false;
}
bool forward( double dis )
{
if( judge( x,y+dis ) ) { y+=dis; return true; }
else return false;
}
bool back( double dis )
{
if( judge( x,y-dis ) ) { y-=dis; return true; }
else return false;
}
bool goto_pos( double a,double b )
{
if( judge( a,b ) ) { x=a; y=b; return true; }
else return false;
}
void out() { cout<<"("<<x<<","<<y<<")"<<endl; }
};
int main()
{
double xpos,ypos;
robot xy( 59.6,28.1 );
if( xy.left( 1.3 ) ) xy.out();
else cout<<"position error!"<<endl;
if( xy.back( 12.0 ) ) xy.out();
else cout<<"position error!"<<endl;
if( xy.right( 60.0 ) ) xy.out();
else cout<<"position error!"<<endl;
xy.init(); xy.out();
if( xy.forward( 3.5 ) ) xy.out();
else cout<<"position error!"<<endl;
cin>>xpos>>ypos;
if( xy.goto_pos( xpos,ypos ) ) xy.out();
else cout<<"position error!"<<endl;
return 0;
}
UJN_C++_1545 [C++ objects and classes] Robot class
Guess you like
Origin blog.csdn.net/qq_63173957/article/details/123883754
Ranking