zoukankan      html  css  js  c++  java
  • 第二周作业(更新)

    一、思路

    一辆汽车的通过流程为:

    起落杆处于落下状态,通行灯为红灯。
    汽车进入门禁系统,入闸传感器值变为True。
    控制起落杆上升,直到起落杆位置传感器到达升起位置。
    通行灯为绿灯。
    汽车离开门禁,触发汽车出闸传感器值为True。
    控制起落杆下降,直到起落杆位置传感器到达落下位置。
    通行灯变为红灯

    需控制的是起落杆和通行灯,需测试的是汽车进入还是出去。

    由此得到状态机图示:

    二、代码

    主函数:

    #include "./head.h"
    #include <iostream>
    using namespace std;
    int main()
    {
    GurdSystem gs;
        cout << "测试车辆进入.." << endl;
        gs.carIn();
        cout << "测试车辆出去..." << endl;
        gs.carOut();
        return 0;
    }
    

    头文件:

    #include <iostream>
    using namespace std;
    class Lifter{ //起落杆类
    private:
        bool state; //私有值表示自身状态,0落下 1升起
    public:
        Lifter(){
        state = false; //构造函数,默认起落杆处于降下状态
        }
        void setstate(bool s){ //函数方法该参
      state=s;
     }
        bool getstate(){ //获取参数函数
      return state;
     }
        void change(){ //主要功能 升降起落杆
         if(getstate()==0){
          cout << "___________升起起落杆___________" << endl;
       setstate(true);
      }
         else{
      cout << "___________降下起落杆___________" << endl;
      setstate(false);
      }
     }
    };
    class Light{ //灯类
    private:
        bool state; //私有值表示自身状态,0红灯 :1绿灯
    public:
        Light(){
        state = false; //构造函数,默认false表示红灯状态
        }
        void setstate(bool s){ //函数方法改参
      state=s;
     }
        bool getstate(){ //函数方法获取参数
      return state;
     }
       void change(){ //主要功能 升降起落杆
      
         if(getstate()==0){
          cout << "___________绿灯亮起___________" << endl;
       setstate(true);
      }
         else{
      cout << "___________红灯亮起___________" << endl;
      setstate(false);
      }
     }
    };
    class GurdSystem {
    private:
        Lifter lifter;
        Light light;
    bool state; //表示是否有车进入
    public:
        GurdSystem(){ //初始化杆和灯类
           Lifter lifter;
           Light light;
        state=false; //默认表示无车进入
        }
        void setState(bool s){ //函数方法改参
      state=s;
     }
     
        void carIn() {  // 测试车进入
         setState(true);
         cout << "___________汽车准备入门___________" << endl;
         light.change();//改变灯
      lifter.change(); //改变起落杆
        } 
        void carOut()  { //测试车出去
        setState(false);
        cout << "___________汽车准备出门___________" << endl;
        light.change();
     lifter.change(); 
        }
    };   
    

    三、测试结果

  • 相关阅读:
    <script type="javascript"> 与<script language="javascript"> 有什么区别啊
    <script language="JavaScript"> or <script type="text/javascript"> ?
    EL表达式
    为什么我用花括号jsp上就显示不出括号里的内容啊,大侠们帮帮忙
    structs2:action如何从页面获取参数值以及如何向页面传出参数值(set方法 、get方法、getParameters()方法
    HTML <script> 标签的 type 属性
    EL表达式EL表达式
    EL表达式(详解)
    java时间戳是什么
    window.onload函数用法
  • 原文地址:https://www.cnblogs.com/ouxiaohui/p/6227232.html
Copyright © 2011-2022 走看看