码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-12-05 22:10:51      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:sys   stat   --   ios   demo   技术分享   tle   bre   car   

作者:李君威U201310747

    状态机图示:

技术分享

 

将起落杆的位置状态和通行灯信号作为两个类对象,汽车出入闸传感器信号作为输入,编写代码:

 1 // qichemenjin.cpp 
 2 //Copy right by Justin.
 3 
 4 #include "stdafx.h"
 5 #include <iostream>
 6 using namespace std;
 7 class Liftlever
 8 {
 9 public:
10     bool Leverstate;  //起落杆位置
11     void Changeleverstate()
12     {
13         Leverstate = !Leverstate;
14     };
15 };
16 
17 class Light
18 {
19 public:
20     bool Lightstate;  //通行灯信号
21     void Changelightstate()
22     {
23         Lightstate = !Lightstate;
24     };
25 };
26 
27 void showleverstate(bool state) 
28 {
29     if(state==true)
30         cout << "起落杆升起" << endl;
31     else
32         cout << "起落杆落下" << endl;
33 };
34 
35 void showlightstate(bool state)
36 {
37     if (state == true)
38         cout << "绿灯亮" << endl;
39     else
40         cout << "红灯亮" << endl;
41 };
42 
43 Liftlever Liftleverdemo;
44 Light Lightdemo;
45 
46 bool Controlsystem(char car)
47 {
48     switch (car)
49     {
50     case y:
51         Liftleverdemo.Changeleverstate();
52         break;
53     case n:
54         break;
55     };
56 
57     showleverstate(Liftleverdemo.Leverstate);
58     
59     switch (Liftleverdemo.Leverstate)
60     {
61     case true:
62         Lightdemo.Lightstate = true;
63         cout << "绿灯亮" << endl;
64         break;
65     case false:
66         Lightdemo.Lightstate = false;
67         cout << "红灯亮" << endl<<endl;
68         break;
69     };
70     return Lightdemo.Lightstate;
71 };
72 
73 
74 int main()
75 {
76     char carin;
77     char carout;
78     while (1)
79     {
80         cout << "是否有车辆进入?(y/n)" << endl;
81         cin >> carin;
82         bool nextstep = Controlsystem(carin);
83         while (nextstep)
84         {
85             cout << "车辆是否已经驶出?(y/n)" << endl;
86             cin >> carout;
87             nextstep = Controlsystem(carout);
88         };
89     };
90     return 0;
91 }

运行结果:

技术分享

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

标签:sys   stat   --   ios   demo   技术分享   tle   bre   car   

原文地址:http://www.cnblogs.com/Justin1253610681/p/6134293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!