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

  1 include <iostream>
  2 #include<Eigen/Dense>
  3 #include<stdlib.h>
  4 #include<cmath>
  5 using Eigen::MatrixXd;
  6 using namespace std;
  7 MatrixXd input(char f[]){
  8     MatrixXd p(1,2);
  9     char a[256];
 10     char b[256];
 11     int x=0,y=0;
 12     int i,j;
 13     for(i=1;f[i]!=‘,‘;i++){
 14         a[x]=f[i];
 15         x++;
 16     }
 17     for(j=i+1;f[j]!=‘)‘;j++){
 18         b[y]=f[j];
 19         y++;
 20     }
 21     p(0,0)=atof(a);
 22     p(0,1)=atof(b);
 23     return p;
 24 }
 25 int main(){
 26     int n;
 27     char name[256];
 28     double deg,avg,PI=3.1415926;
 29     char f1[256],f2[256],f3[256],f4[256],f5[256],f6[256];
 30     MatrixXd rot(2,2);
 31     MatrixXd p1(1,2);
 32     MatrixXd p2(1,2);
 33     MatrixXd p3(1,2);
 34     MatrixXd p4(1,2);
 35     cout<<"请输入名称:"<<endl;
 36     cin>>name;
 37     cout<<"请输入端点数:" <<endl;
 38     cin>>n;
 39     cout<<"请输入点坐标:"<<endl;
 40     if(n==1){
 41         cin>>f1;
 42         p1=input(f1);
 43     }
 44     else if(n==2){
 45         cin>>f1;
 46         p1=input(f1);
 47         cin>>f2;
 48         p2=input(f2);
 49     }
 50     else if(n==3){
 51         cin>>f1;
 52         p1=input(f1);
 53         cin>>f2;
 54         p2=input(f2);
 55         cin>>f3;
 56         p3=input(f3);
 57     }
 58     else{
 59         cout<<"输入错误,请重新输入!"<<endl;
 60     }
 61     cout<<"请输入运算指令:"<<endl;
 62     cin>>f4;
 63     cout<<"请输入名称:"<<endl;
 64     cin>> f5;
 65     if(f4[0]==‘m‘&&f4[1]==‘o‘&&f4[2]==‘v‘&&f4[3]==‘e‘&&f4[4]==0){
 66         cout<<"请输入移动距离:"<<endl;
 67         cin>>f6;
 68         p4=input(f6);
 69         if(n==1){
 70             p1+=p4;
 71             cout<<"("<<p1<<")"<<endl;
 72         }
 73         else if(n==2){
 74             p1+=p4;
 75             p2+=p4;
 76             cout<<"("<<p1<<")"<<"("<<p2<<")"<<endl;
 77         }
 78         else{
 79             p1+=p4;
 80             p2+=p4;
 81             p3+=p4;
 82             cout<<"("<<p1<<")"<<"("<<p2<<")"<<"("<<p3<<")"<<endl;
 83         }
 84     }
 85     else if(f4[0]==‘r‘&&f4[1]==‘o‘&&f4[2]==‘t‘&&f4[3]==‘a‘&&f4[4]==‘t‘&&f4[5]==‘e‘&&f4[6]==0){
 86         cout<<"请输入转动角度:"<<endl;
 87         cin>>avg;
 88         deg=avg/180*PI;
 89         rot(0,0)=cos(deg);
 90         rot(0,1)=sin(deg);
 91         rot(1,0)=-sin(deg);
 92         rot(1,1)=cos(deg);
 93         if(n==1){
 94             p1*=rot;
 95             cout<<"("<<p1<<")"<<endl;
 96         }
 97         else if(n==2){
 98             p1*=rot;
 99             p2*=rot;
100             cout<<"("<<p1<<")"<<"("<<p2<<")"<<endl;
101         }
102         else{
103             p1*=rot;
104             p2*=rot;
105             p3*=rot;
106             cout<<"("<<p1<<")"<<"("<<p2<<")"<<"("<<p3<<")"<<endl;
107         }
108     }
109     return 0;
110 }

机制1204 徐云昆

U201210642

时间: 2024-10-13 22:29:35

实时控制软件设计第一次编程作业的相关文章

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

#include <iostream> #include <cstring> #include <math.h> #include <Eigen/Dense> using Eigen::MatrixXd; using namespace std; class Point {  public:  double x;  double y;  void Showpoint(void);  void movexy(MatrixXd p);//平移算子  void r

实时控制软件设计第一周作业-汽车ABS软件系统案例分析

汽车ABS软件系统案例分析 ABS 通过控制作用于车轮制动分泵上的制动管路压力,使汽车在紧急刹车时车轮不会抱死,这样就能使汽车在紧急制动时仍能保持较好的方向稳定性. ABS系统一般是在普通制动系统基础上加装了轮速传感器,电子控制单元,制动压力调节器.制动时,通过分析传感器车速轮速数据判断车轮是否处于抱死拖滑状态,并据此控制制动压力调节器进行高频增压,保压,减压,防止车轮抱死. Q1.该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计. A1.强实时需求:

实时控制软件设计第二周作业

一.汽车出入门禁系统状态机设计 状态机所有状态: 入闸传感器(两种状态): Ture  False  (分别用ET和EF表示) 出闸传感器(两种状态): Ture  False  (分别用OT和OF表示) 起落杆(两种状态):     UP DOWN   (分别用UP和DW表示) 通行灯(两种状态):       Red Green   (分别用R和G表示) 状态机所接收到的外部事件: 汽车进入和驶离门禁系统区: Enter  Out (分别用E和O表示) 状态机所产生的动作: 起落杆的动作: 

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

以汽车ABS系统的软件系统进行案例分析: 一.强实时功能需求有:1.汽车车轮转速的实时监测,实时计算出轮速.参考车速.车轮加速度.滑移率等参数: 2.系统故障诊断,故障诊断分为两部分,分别是启动时故障诊断和行驶状态下故障诊断. 实时事件实时响应:1.制动压力调节,当车轮处于抱死的临界状态时,调节制动压力: 2.系统故障处理,如果发现故障,则应及时警示. 二.ABS的软件系统需要设计2个实时任务,分别是汽车车轮状态监测和行驶状态下故障诊断. 三.以上两个实时任务均为时间触发:1.为保证ABS的实时

实时控制软件设计第二周作业-停车场门禁控制系统状态机

画出动作转换图为: 使用模块化设计,将起落杆.出入传感器和通行灯设计成四个模块,分别继承设计好的系统模块接口: 1 //FSM_Interface.h 2 #pragma once 3 4 namespace FSM 5 { 6 7 class ISystemUnit //系统单元接口 8 { 9 public: 10 11 virtual void Initialize() = 0; //初始化 12 13 virtual void Execute() = 0; //执行动作 14 15 vi

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

1-1.Point.h #ifndef MY_POINT #define MY_POINT class Point{ private: double _x; double _y; public: Point(double x,double y); double getX(); double getY(); }; #endif  1-2.Point.cpp #include"Point.h" #include<iostream> Point::Point(double x,d

《实时控制软件设计》读书笔记

读书笔记 在浅读过<构建之法:现代软件工程>第一章和邹欣老师的一些博文后,我对以下四个方面有了一些粗陋的认识. 一.      对软件工程的理解 <构建之法>第一章中对软件工程有着自己的理解.书中提到“软件=程序+软件工程”这一概念.同时,书中还指出软件工程包含软件需求分析.软件设计.软件构建.软件测试和软件维护这些领域.看过这些介绍后,我认为首先要弄请程序.软件.软件工程的区别.正如书中提到阿超的例子一样,程序只是完成某一项或几项简单任务的代码和数据结构集成:而软件则是能满足用户

《实时控制软件设计》第一次编程作业

//代码: #include <iostream> #include <Eigen/Dense> #include <cmath> using Eigen::MatrixXd; using namespace std; float pi=3.1415926; void mpoint(MatrixXd m) { MatrixXd T(1,2),A(1,2); cout<<"请输入移动距离:"; fflush(stdin); scanf(&q

《实时控制软件设计》第一个编程作业

题目: 第一步: 写一个根据输入坐标生成一个平面图形(点.线段和三角形)并能对该几何图形进行平移和旋转操作的命令行 “软件”,要求: a) 通过命令行输入图形的名称,端点数(1为点,2为线段,3为三角形)和端点坐标(x,y). 如:输入一个点 p1 1 (2,5) 输入一个线段 l1 2 (3,5) (4,6) 输入一个三角形 t1 3 (1,1) (2,5) (-4,7) b) 输入一个计算指令,实现对上述图形的平移和绕原点旋转等操作,并输出该图形新的坐标值. 如:move l1 (3,6)