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

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è)
丝袜美腿一区二区三区动态图| 国产激情福利一区二区| 亚洲中少妇久久中文字幕| 亚洲国产精品一区二区成人| 中文字幕一区二区中文字幕| 国产成人久久精品二区三区| 欧美一区二区成人精品视频| 成人黄色小视频下载| 国产麻豆精品免费喷白浆视频网站 | 日本a级片免费在线观看| 国产亚洲欧美日韩激情在线| 日韩中字在线一区二区| 99热精品综合在线观看| 最近免费欧美一级黄片| 日日添夜夜躁欧美一区二区| 亚洲成av人在线播放| 精品久久人妻中文字幕免费| 小仙女精品经典三级永久| 亚洲黄色大片在线免费观看| 国产农村妇女一区二区三区 | 国产精品视频一区二区三区网站| 国产白丝扒开做爽爽爽网站| 夫妻性生活一级片视频| 亚洲精品成人在线国产| 日韩精品中文字幕有码在线| 中文字幕久精品视频免费| 精品传媒国产在线观看| 久久最新最热视频精品| 美女性生活免费视频网站| 给我搜一个一级黄色片| 精品人妻二区中文字幕| 日韩在线视频 一区二区三区| 欧美经典三级一区二区三区| 尤物视频网站在线观看| 少妇高潮在线观看免费| 亚洲精品香蕉久久情趣| 国产69精品久久久久久人| av资源天堂第一区第二区第三区| 一区二区三区四区蜜桃av| 美女午夜精品国产福利| 亚洲一区二区精品欧美日韩|