C++实现对机械手臂动作的简单模拟
#include <iostream.h>
#include <string>
using namespace std;
int ls=0;//当前左手状态,全局变量
int rs=0;//当前右手状态
int lw=0;//当前左手负重
int rw=0;//当前右手负重
class Handup
{
private:
int leftstate;//用户输入的左手动作
int rightstate;//用户输入的右手动作
int leftweight;//用户输入的左手承重
int rightweight;//用户输入的右手承重
public:
Handup()//初始化,双手为空,双手承重都为0,即双手都没有拿东西
{
leftstate=0;
rightstate=0;
leftweight=0;
rightweight=0;
}
Handup(int x, int y, int z, int w)
{
leftstate=x;
leftweight=y;
rightstate=z;
rightweight=w;
}
bool lstatecheck()//对左手状态进行检测
{
if(ls==0 && leftstate==1)
{
return 1;
}
else
{
return 0;
}
}
bool lweightcheck()
{
if(leftweight <= 80 && leftweight >0)
{
return 1;
}
else
{
return 0;
}
}
bool rstatecheck()//对右手状态进行检测
{
if(rs==0 && rightstate==1)
{
return 1;
}
else
{
return 0;
}
}
bool rweightcheck()
{
if(rightweight <= 80 && rightweight>0)
{
return 1;
}
else
{
return 0;
}
}
void disp()//输出当前机械手状态
{
string leftch, rightch;//用来存放“无物品”和“有物品”的字符串
if(lstatecheck() && lweightcheck())
{
ls=leftstate;
lw=leftweight;
}
if(rstatecheck() && rweightcheck())
{
rs=rightstate;
rw=rightweight;
}
if(ls==0)
{
leftch="无物品";
}
else
{
leftch="有物品";
}
if(rs==0)
{
rightch="无物品";
}
else
{
rightch="有物品";
}
cout << "当前机械手状态:" << endl;
cout << "左手:" << leftch << endl << "左手物品重量:" << lw << " Kg" << endl << "右手:" << rightch << endl << "右手物品重量:" << rw << " Kg" << endl;
}
};
class Handdown
{
private:
int leftstate;//用户要求对左手的操作
int rightstate;//用户要求对右手的操作
public:
Handdown(int x, int y)//初始化用户要求
{
leftstate=x;
rightstate=y;
}
bool leftcheck()
{
if(ls==1 && leftstate==1)
{
return 1;
}
else
{
return 0;
}
}
bool rightcheck()
{
if(rs==1 && rightstate==1)
{
return 1;
}
else
{
return 0;
}
}
void disp()
{
string leftch, rightch;//用来存放“无物品”和“有物品”的字符串
if(leftcheck())
{
ls=0;
lw=0;
}
if(rightcheck())
{
rs=0;
rw=0;
}
if(ls==0)
{
leftch="无物品";
}
else
{
leftch="有物品";
}
if(rs==0)
{
rightch="无物品";
}
else
{
rightch="有物品";
}
cout << "当前机械手状态:" << endl;
cout << "左手:" << leftch << endl << "左手物品重量:" << lw << " Kg" << endl << "右手:" << rightch << endl << "右手物品重量:" << rw << " Kg" << endl;
}
};
int main()
{
Handup handupstart;//默认空构造函数初始化为全0
handupstart.disp();//输出机械手初始状态
int i=0;
while(true)
{
do{
int left=0, right=0, leftweight=0, rightweight=0;//用户输入机械手动作
cout << "请输入您要求机械手做的动作:" << endl;//数据的输入
cout << "如果要求左手拿东西,请输入:1 ; 否则请输入:0" << endl;
cin >> left;
if(left==1)
{
cout << "左手拿东西的重量(单位Kg):" << endl;
cin >> leftweight;
}
cout << "如果要求右手拿东西,请输入:1 ; 否则请输入:0" <<endl;
cin >> right;
if(right==1)
{
cout << "请输入右手拿东西的重量(单位Kg):" << endl;
cin >> rightweight;
}
Handup handup(left,leftweight,right,rightweight);//创建对象,构造函数进行初始化
handup.disp();
cout << "要进行放下操作么?\"是\"请输入:1; \"否\"请输入:0" << endl;
cin >> i;
}while(i==0);
do{
int leftdown=0, rightdown=0;//用户是否要求放下,0为否,1为是,默认为否。
cout << "如果要求放下左手物品,请输入:1; 否则请输入:0" << endl;
cin >> leftdown;
cout << "如果要求放下右手物品,请输入:1; 否则请输入:0" << endl;
cin >> rightdown;
Handdown handdown(leftdown, rightdown);
handdown.disp();
cout << "要进行放下操作么?\"是\"请输入:1; \"否\"请输入:0" << endl;
cin >> i;
}while(i==1);
}
system("pause");
return 0;
}
浙公网安备 33010602011771号