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


      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 }

  • 相关阅读:
    走读OpenSSL代码从一张奇怪的证书说起(二)
    从数学到密码学(十八)
    从数学到密码学(十七)
    走读OpenSSL代码从一张奇怪的证书说起(一)
    从数学到密码学(十六)
    从数学到密码学(十五)
    从数学到密码学(十三)
    从数学到密码学(十九)
    从数学到密码学(十四)
    关于Terracotta DSO 安装
  • 原文地址:https://www.cnblogs.com/Glamingo/p/5003873.html
Copyright © 2020-2023  润新知