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;
}

posted @ 2010-11-15 19:22  阿暴  阅读(1179)  评论(0)    收藏  举报