欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C++有限狀態(tài)機(jī)如何實(shí)現(xiàn)計(jì)算器小程序

小編這次要給大家分享的是C++有限狀態(tài)機(jī)如何實(shí)現(xiàn)計(jì)算器小程序,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供定遠(yuǎn)企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、成都網(wǎng)站制作、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為定遠(yuǎn)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

實(shí)現(xiàn)的功能

  • 支持整數(shù)、小數(shù)輸入
  • 支持+ - * / 四則運(yùn)算
  • CE 清除當(dāng)前操作數(shù)
  • C 清除所有、回到初始狀態(tài)
  • 回顯操作數(shù)和結(jié)果
     

HSM狀態(tài)圖

計(jì)算器可以分為七種狀態(tài):Start、Operand_1、Negate_1、Operator、Operand_2、Negate_2、Error。其中Start、Operand_1、Operand_1狀態(tài)又分了幾種子狀態(tài)。 下面簡(jiǎn)要的介紹下?tīng)顟B(tài)狀態(tài)轉(zhuǎn)換的過(guò)程:

  • 啟動(dòng)軟件,進(jìn)入Start狀態(tài)
  • 當(dāng)用戶(hù)點(diǎn)擊1-9、0、Point按鈕,軟件進(jìn)入Operand_1 狀態(tài)。
  • 當(dāng)用戶(hù)點(diǎn)擊+、-、*、/按鈕,軟件進(jìn)入Operator狀態(tài)。
  • 此時(shí)當(dāng)用戶(hù)再次點(diǎn)擊1-9、0、Point按鈕,軟件進(jìn)入Operand_2 狀態(tài)。
  • 如果用戶(hù)點(diǎn)擊=按鈕,軟件就進(jìn)入了Start狀態(tài)。
  • 如果此時(shí)進(jìn)行的是除法運(yùn)算且除數(shù)為0,軟件進(jìn)入Error狀態(tài),用戶(hù)只有點(diǎn)擊C按鈕才可以跳出。
     

在實(shí)際開(kāi)發(fā)的過(guò)程中,我們只需要關(guān)心現(xiàn)在程序處在什么狀態(tài),可以進(jìn)行什么樣的操作。然后就是狀態(tài)轉(zhuǎn)換的條件要處理下。

C++有限狀態(tài)機(jī)如何實(shí)現(xiàn)計(jì)算器小程序

代碼片段

下面是CalculatorDlg.cpp中的一段代碼,我們首先要獲得當(dāng)前的狀態(tài),然后進(jìn)行相應(yīng)的操作,操作完成之后設(shè)置好對(duì)應(yīng)的狀態(tài)。

void CalculatorDlg::enterOperation(Calculator::CalcOp oper)
{
 if (m_calculator.getCurrentState() == Calculator::CalcState::Error)
 {
  return;
 }
 if (m_calculator.getCurrentState() == Calculator::CalcState::Start ||
  m_calculator.getCurrentState() == Calculator::CalcState::Negate_1 ||
  m_calculator.getCurrentState() == Calculator::CalcState::Operand_1)
 {
  m_calculator.setOperand_1(_wtof(m_output));
 }
 else if (m_calculator.getCurrentState() == Calculator::CalcState::Operand_2 ||
  m_calculator.getCurrentState() == Calculator::CalcState::Negate_2)
 {
  m_calculator.setOperand_2(_wtof(m_output));
  UpdateData(TRUE);
  std::stringstream ss;
  ss << m_calculator.getResult();
  m_output = ss.str().c_str();
  UpdateData(FALSE);
  m_calculator.setCurrentState(Calculator::CalcState::Start);
  m_calculator.setOperand_1(m_calculator.getResult());
 }
 m_calculator.setCurrentState(Calculator::CalcState::Operator);
 m_calculator.setOperator(oper);
}

運(yùn)行效果展示

C++有限狀態(tài)機(jī)如何實(shí)現(xiàn)計(jì)算器小程序

看完這篇關(guān)于C++有限狀態(tài)機(jī)如何實(shí)現(xiàn)計(jì)算器小程序的文章,如果覺(jué)得文章內(nèi)容寫(xiě)得不錯(cuò)的話(huà),可以把它分享出去給更多人看到。

網(wǎng)頁(yè)標(biāo)題:C++有限狀態(tài)機(jī)如何實(shí)現(xiàn)計(jì)算器小程序
分享路徑:http://aaarwkj.com/article32/pegdpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、靜態(tài)網(wǎng)站、Google自適應(yīng)網(wǎng)站、小程序開(kāi)發(fā)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
亚洲人成伊人成综合网中文| 亚洲精品露脸自拍高清在线观看| 久久成人影院免费观看| 美女诱惑福利视频久久久| 国产精品日韩经典中文字幕| 欧美日韩在线观看黄色| 国产精品欧美日韩一区| 久久精品色一情一乱一伦| 区一区二区三视频日韩| 天堂av好男人亚洲精品| 亚洲国产欧美日韩在线不卡成人| 久久久亚洲成人国产av| 精品人妻少妇一区二区三| 久久精品国产亚洲av久| 亚洲av成人免费在线| 美女午夜福利精品视频| 日本人妻免费在线观看| 两性色午夜视频在线观看| 国产精品熟女在线视频| 麻豆av久久一区二区| 欧美日韩国产综合下一页| 久久伊人69日韩精品| 亚洲av成人三区国产精品| 久久精品国产亚洲av亚| 精品一区无遮挡免费网站| 91伊人手机在线观看| 中文字幕高清一区二区三区| 一本之道高清久久久首页| 国产熟女av一区二区| 女同毛片一区二区三区| 亚洲国产成在人网站天堂| 亚洲人成伊人久久成| 亚洲欧美日韩激情另类| 97国产一区二区精品久久呦| 国产成人91精品免费看片| 国产视频一区二区三区网| 色婷婷亚洲婷婷亚洲最大| 亚洲性码不卡视频在线| 欧美视频在线观看香蕉| 91香蕉国产精品日韩| 另类视频在线观看免费|