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

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二区三区人妻| 午夜亚洲欧美日韩在线| 最近中文字幕免费手机版| 久久 久久国内精品亚洲| 人妻的秘密一区二区三区| 免费无遮挡18禁视频| av剧情在线观看免费| 91伊人激情综合久久| 国产精品久久久天美传媒| 日本人妻系列在线播放| av毛片在线观看地址| 欧美成人一区二区三区八| 国产精致成人免费视频| 最新日韩欧美一区二区| 欧美亚洲清纯唯美另类| 国产剧情av在线播放| 国产b片免费在线观看| 高清亚洲一区二区三区| 精品在线中文字幕不卡| 午夜性生活免费在线观看| 特黄一级黄色大片免费看| 91免费观看视频高清| 午夜福利欧美日本视频| 一级黄片视频免费下载| 欧美二区三区精品在线| 日韩欧美高清一区二区三区| 日韩不卡在线免费观看视频| 97视频在线观看网站| 五月婷婷六月丁香综合激情| 亚洲另类视频一区二区| 精品国产自在现线拍手机| 白白色发布青青在线视频观看| 欧美日韩视频一区二区| 国产精品黄黄久久久免费|