实时控制软件设计 第一次作业

  1 #include <iostream>
  2 #include <stdlib.h>
  3 #include <orocos_kdl/src/frames.hpp>
  4 #include <cstring>
  5 using namespace std; 
  6 using namespace KDL;
  7 class abc
  8 {public:
  9 char name[20];
 10 int m;
 11 Vector2 point[3];
 12 abc()
 13 {
 14 for(int i=0;i<20;i++)name[i]=0;
 15 m=0;
 16 }
 17 };
 18 int main()
 19 {
 20 char i,j;
 21 char a[3][20];
 22 char b[6][10];
 23 double c[6]={0,0,0,0,0,0};
 24 char d[3][20];
 25 char e[2][10];
 26 double f[2];
 27 cout<<"请输入 ";
 28 abc p;
 29 cin>>p.name;
 30 cin>>p.m;
 31 switch(p.m)
 32 {
 33 case 1: 
 34 {
 35 cin>>a[0];
 36 for(i=1;i<=10&&a[0][i]!=',';i++)b[0][i-1]=a[0][i];
 37 for(j=0,i++;j<10&&a[0][i]!=')';i++,j++)b[1][j]=a[0][i];
 38 c[0]=atof(b[0]);c[1]=atof(b[1]);
 39 p.point[0]= (Vector2(c[0],c[1]));
 40 }
 41 break;
 42 case 2:
 43 {
 44 cin>>a[0];
 45 cin>>a[1];
 46 for(i=1;i<=10&&a[0][i]!=',';i++)b[0][i-1]=a[0][i];
 47 for(j=0,i++;j<10&&a[0][i]!=')';i++,j++)b[1][j]=a[0][i];
 48 for(i=1;i<=10&&a[1][i]!=',';i++)b[2][i-1]=a[1][i];
 49 for(j=0,i++;j<10&&a[1][i]!=')';i++,j++)b[3][j]=a[1][i];
 50 c[0]=atof(b[0]);c[1]=atof(b[1]);
 51 c[2]=atof(b[2]);c[3]=atof(b[3]);
 52 p.point[0]= (Vector2(c[0],c[1]));
 53 p.point[1]= (Vector2(c[2],c[3]));
 54 }
 55 break;
 56 case 3:
 57 {
 58 cin>>a[0];
 59 cin>>a[1];
 60 cin>>a[2];
 61 for(i=1;i<=10&&a[0][i]!=',';i++)b[0][i-1]=a[0][i];
 62 for(j=0,i++;j<10&&a[0][i]!=')';i++,j++)b[1][j]=a[0][i];
 63 for(i=1;i<=10&&a[1][i]!=',';i++)b[2][i-1]=a[1][i];
 64 for(j=0,i++;j<10&&a[1][i]!=')';i++,j++)b[3][j]=a[1][i];
 65 for(i=1;i<=10&&a[2][i]!=',';i++)b[4][i-1]=a[2][i];
 66 for(j=0,i++;j<10&&a[2][i]!=')';i++,j++)b[5][j]=a[2][i];
 67 c[0]=atof(b[0]);c[1]=atof(b[1]);
 68 c[2]=atof(b[2]);c[3]=atof(b[3]);
 69 c[4]=atof(b[4]);c[5]=atof(b[5]);
 70 p.point[0]= (Vector2(c[0],c[1]));
 71 p.point[1]= (Vector2(c[2],c[3]));
 72 p.point[2]= (Vector2(c[4],c[5]));
 73 }
 74 break;
 75 default:cout<<"Error";
 76 }
 77 for(int k=0;k<20;k++)d[0][k]=0;
 78 cin>>d[0];
 79 if(d[0][0]=='m'&&d[0][1]=='o'&&d[0][2]=='v'&&d[0][3]=='e'&&d[0][4]==0)
 80 {
 81 for(int k=0;k<20;k++)d[1][k]=0;
 82 cin>>d[1];
 83 if(!strcmp(d[1],p.name))
 84 {
 85 cin>>d[2];
 86 for(i=1;i<=10&&d[2][i]!=',';i++)e[0][i-1]=d[2][i];
 87 for(j=0,i++;j<10&&d[2][i]!=')';i++,j++)e[1][j]=d[2][i];
 88 f[0]=atof(e[0]);f[1]=atof(e[1]);
 89 for(i=0;i<3;i++)p.point[i]+=Vector2(f[0],f[1]);
 90 }
 91 else cout<<"error/n";
 92 }
 93 else if(d[0][0]=='r'&&d[0][1]=='o'&&d[0][2]=='t'&&d[0][3]=='a'&&d[0][4]=='t'&&d[0][5]=='e'&&d[0][6]==0)
 94 {
 95 for(int k=0;k<20;k++)d[1][k]=0;
 96 cin>>d[1];
 97 if(!strcmp(d[1],p.name))
 98 {
 99 cin>>d[2];
100 f[0]=atof(d[2]);
101 Rotation2 rot(f[0]/180*3.1415926);
102 for(i=0;i<3;i++)p.point[i]=rot.Inverse(p.point[i]);
103 }
104 else cout<<"error/n";
105 }
106 else cout<<"error/n";
107 for(i=0;i<p.m;i++) cout<<'('<<p.point[i].x()<<','<<p.point[i].y()<<") ";
108 cout<<endl;
109 }

原文地址:https://www.cnblogs.com/Glamingo/p/5003873.html