通俗易懂基于MFC科學(xué)計(jì)算器_第1頁(yè)
通俗易懂基于MFC科學(xué)計(jì)算器_第2頁(yè)
通俗易懂基于MFC科學(xué)計(jì)算器_第3頁(yè)
通俗易懂基于MFC科學(xué)計(jì)算器_第4頁(yè)
通俗易懂基于MFC科學(xué)計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2013/6/22作者編寫的科學(xué)強(qiáng)大的易懂的新手入門的科學(xué)計(jì)算器,基于MFC編寫的科學(xué)計(jì)算器指導(dǎo)教師對(duì)課程設(shè)計(jì)的評(píng)定意見(jiàn)搞 要 本課程設(shè)計(jì)是在基于對(duì)話框的應(yīng)用程序中模擬一個(gè)計(jì)算器,本計(jì)算器可以進(jìn)行十進(jìn)制下的四則運(yùn)算(加、減、乘、除)和四則混合運(yùn)算,可以把十進(jìn)制轉(zhuǎn)化為二進(jìn)制或十六進(jìn)制,可以進(jìn)行一些常用的函數(shù)運(yùn)算(比如sin、cos、tan、cot、sqrt、ln等),還可以支持帶“(”,“)”符號(hào)的表達(dá)式的計(jì)算。系統(tǒng)開(kāi)發(fā)平臺(tái)為Windows XP,程序設(shè)計(jì)設(shè)計(jì)語(yǔ)言采用Visual C+6.0,程序運(yùn)行平臺(tái)為Windows 98/2000/XP。程序通過(guò)調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。關(guān)鍵詞 程序設(shè)

2、計(jì);計(jì)算器;C+;1 引言 在現(xiàn)代社會(huì)中,計(jì)算器已經(jīng)進(jìn)入了每一個(gè)家庭,人們?cè)谏詈蛯W(xué)習(xí)中經(jīng)常需要使用到計(jì)算器,它的出現(xiàn)大大減少了人們?cè)谟?jì)算方面的工作量,可以說(shuō)它在人們生活和學(xué)習(xí)中是不可缺少的。1.1 C+介紹C+語(yǔ)言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是全面兼容C語(yǔ)言,二是支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法1。(1) C+是一個(gè)更好的C,它保持了C語(yǔ)言的優(yōu)點(diǎn),大多數(shù)的C程序代碼略作修改或不作修改就可在C+的集成環(huán)境下調(diào)試和運(yùn)行。這對(duì)于繼承和開(kāi)發(fā)當(dāng)前已在廣泛的軟件是非常重要的,可以節(jié)省大量的人力和物力。(2) C+是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言它使得程序的各個(gè)模塊的獨(dú)立性更強(qiáng),程序的可讀性和可移植性更強(qiáng),程序代碼

3、的結(jié)構(gòu)更加合理,程序的擴(kuò)充性更強(qiáng)。這對(duì)于設(shè)計(jì)、編制和調(diào)試一些大型的軟件尤為重要。 (3) C+集成環(huán)境不僅支持C+程序的編譯和調(diào)試,而且也支持C程序的編譯和調(diào)試。通常,C+程序環(huán)境約定:當(dāng)源程序文件的擴(kuò)展名為c時(shí),則為C程序;而當(dāng)源程序文件的擴(kuò)展名為cpp時(shí),則為C+程序。(4) C+語(yǔ)句非常簡(jiǎn)練,對(duì)語(yǔ)法限制比較寬松,因此C+語(yǔ)法非常靈活。其優(yōu)點(diǎn)是給用戶編程帶來(lái)書(shū)寫上的方便。其缺點(diǎn)是由于編譯時(shí)對(duì)語(yǔ)法限制比較寬松,許多邏輯上的錯(cuò)誤不容易發(fā)現(xiàn),給用戶編程增加了難度。3以下是詳盡的代碼在C*Dlg添加下面代碼,這個(gè)自己一定要看懂,里面是各個(gè)按鈕的響應(yīng)函數(shù),不是叫你直接復(fù)制粘貼,而是一個(gè)個(gè)雙擊按鈕添加

4、代碼,最后成了以下的樣式。/ text2Dlg.cpp : 實(shí)現(xiàn)文件/#include "stdafx.h"#include "text2.h"#include "text2Dlg.h"#include "afxdialogex.h"#include"atlsimpstr.h"#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于應(yīng)用程序“關(guān)于”菜單項(xiàng)的 CAboutDlg 對(duì)話框class CAboutDlg : public CDialogExpublic:

5、CAboutDlg();/ 對(duì)話框數(shù)據(jù)enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 實(shí)現(xiàn)protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialogEx(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialogEx:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAbo

6、utDlg, CDialogEx)END_MESSAGE_MAP()/ Ctext2Dlg 對(duì)話框Ctext2Dlg:Ctext2Dlg(CWnd* pParent /*=NULL*/): CDialogEx(Ctext2Dlg:IDD, pParent), m_strResult(_T(""), OperatorPressed(false), Restarted(false), s(0), m_Edit3(_T(""), L(0), L1(0), PB(0), radio(0), m_strout(_T(""), m_MM3(_T(

7、""), m_Inv(false)m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void Ctext2Dlg:DoDataExchange(CDataExchange* pDX)CDialogEx:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, m_strResult);DDX_Text(pDX, IDC_EDIT3, m_Edit3);DDX_Text(pDX, IDC_MM3, m_MM3);BEGIN_MESSAGE_MAP(Ctext2Dlg, CDialogEx)ON_

8、WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_0, &Ctext2Dlg:OnBnClicked0)ON_BN_CLICKED(IDC_1, &Ctext2Dlg:OnBnClicked1)ON_BN_CLICKED(IDC_2, &Ctext2Dlg:OnBnClicked2)ON_BN_CLICKED(IDC_3, &Ctext2Dlg:OnBnClicked3)ON_BN_CLICKED(IDC_4, &Ctext2Dlg:OnBnClicked4)ON_BN_

9、CLICKED(IDC_5, &Ctext2Dlg:OnBnClicked5)ON_BN_CLICKED(IDC_6, &Ctext2Dlg:OnBnClicked6)ON_BN_CLICKED(IDC_7, &Ctext2Dlg:OnBnClicked7)ON_BN_CLICKED(IDC_8, &Ctext2Dlg:OnBnClicked8)ON_BN_CLICKED(IDC_9, &Ctext2Dlg:OnBnClicked9)ON_BN_CLICKED(IDC_POINT, &Ctext2Dlg:OnBnClickedPoint)ON_B

10、N_CLICKED(IDC_ADD, &Ctext2Dlg:OnBnClickedAdd)ON_BN_CLICKED(IDC_SUB, &Ctext2Dlg:OnBnClickedSub)ON_BN_CLICKED(IDC_mul, &Ctext2Dlg:OnBnClickedmul)ON_BN_CLICKED(IDC_DIV, &Ctext2Dlg:OnBnClickedDiv)ON_BN_CLICKED(IDC_EQUAL, &Ctext2Dlg:OnBnClickedEqual)ON_BN_CLICKED(IDC_BACKSPACE, &C

11、text2Dlg:OnBnClickedBackspace)ON_BN_CLICKED(IDC_C, &Ctext2Dlg:OnBnClickedC)ON_BN_CLICKED(IDC_SIN, &Ctext2Dlg:OnBnClickedSin)ON_BN_CLICKED(IDC_COS, &Ctext2Dlg:OnBnClickedCos)ON_BN_CLICKED(IDC_TAN, &Ctext2Dlg:OnBnClickedTan)ON_BN_CLICKED(IDC_SQRT, &Ctext2Dlg:OnBnClickedSqrt)ON_BN_C

12、LICKED(IDC_LKOUHAO, &Ctext2Dlg:OnBnClickedLkouhao)ON_BN_CLICKED(IDC_RKOUHAO, &Ctext2Dlg:OnBnClickedRkouhao)ON_BN_CLICKED(IDC_PI, &Ctext2Dlg:OnBnClickedPi)ON_BN_CLICKED(IDC_INT, &Ctext2Dlg:OnBnClickedInt)ON_BN_CLICKED(IDC_MOD, &Ctext2Dlg:OnBnClickedMod)ON_BN_CLICKED(IDC_CE, &C

13、text2Dlg:OnBnClickedCe)ON_BN_CLICKED(IDC_DAOSHU, &Ctext2Dlg:OnBnClickedDaoshu)ON_BN_CLICKED(IDC_JIAJIAN, &Ctext2Dlg:OnBnClickedJiajian)ON_BN_CLICKED(IDC_N, &Ctext2Dlg:OnBnClickedN)ON_BN_CLICKED(IDC_SQUARE, &Ctext2Dlg:OnBnClickedSquare)ON_BN_CLICKED(IDC_CUBE, &Ctext2Dlg:OnBnClicke

14、dCube)ON_BN_CLICKED(IDC_TENX, &Ctext2Dlg:OnBnClickedTenx)ON_BN_CLICKED(IDC_EXP, &Ctext2Dlg:OnBnClickedExp)ON_BN_CLICKED(IDC_LOG, &Ctext2Dlg:OnBnClickedLog)ON_BN_CLICKED(IDC_SINH, &Ctext2Dlg:OnBnClickedSinh)ON_BN_CLICKED(IDC_COSH, &Ctext2Dlg:OnBnClickedCosh)ON_BN_CLICKED(IDC_TANH,

15、 &Ctext2Dlg:OnBnClickedTanh)ON_BN_CLICKED(IDC_IN, &Ctext2Dlg:OnBnClickedIn)ON_BN_CLICKED(IDC_XY, &Ctext2Dlg:OnBnClickedXy)ON_BN_CLICKED(IDC_KAILIFANG, &Ctext2Dlg:OnBnClickedKailifang)ON_BN_CLICKED(IDC_RADIO1, &Ctext2Dlg:OnBnClickedRadio1)ON_BN_CLICKED(IDC_RADIO2, &Ctext2Dlg:O

16、nBnClickedRadio2)ON_BN_CLICKED(IDC_FE, &Ctext2Dlg:OnBnClickedFe)ON_BN_CLICKED(IDC_YX, &Ctext2Dlg:OnBnClickedYx)ON_BN_CLICKED(IDC_INV, &Ctext2Dlg:OnBnClickedInv)ON_BN_CLICKED(IDC_MC, &Ctext2Dlg:OnBnClickedMc)ON_BN_CLICKED(IDC_MR, &Ctext2Dlg:OnBnClickedMr)ON_BN_CLICKED(IDC_MS, &

17、;Ctext2Dlg:OnBnClickedMs)ON_BN_CLICKED(IDC_MADD, &Ctext2Dlg:OnBnClickedMadd)ON_BN_CLICKED(IDC_MSUB, &Ctext2Dlg:OnBnClickedMsub)ON_BN_CLICKED(IDC_SIN2, &Ctext2Dlg:OnBnClickedSin2)ON_BN_CLICKED(IDC_COS2, &Ctext2Dlg:OnBnClickedCos2)ON_BN_CLICKED(IDC_TAN2, &Ctext2Dlg:OnBnClickedTan2)

18、ON_BN_CLICKED(IDC_PI2, &Ctext2Dlg:OnBnClickedPi2)END_MESSAGE_MAP()/ Ctext2Dlg 消息處理程序BOOL Ctext2Dlg:OnInitDialog()CDialogEx:OnInitDialog();/ 將“關(guān)于.”菜單項(xiàng)添加到系統(tǒng)菜單中。/ IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內(nèi)。ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMe

19、nu(FALSE);if (pSysMenu != NULL)BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ 設(shè)置此對(duì)話框的圖標(biāo)。當(dāng)應(yīng)用程序主窗口不是對(duì)話框時(shí),框架將自動(dòng)/

20、執(zhí)行此操作SetIcon(m_hIcon, TRUE);/ 設(shè)置大圖標(biāo)SetIcon(m_hIcon, FALSE);/ 設(shè)置小圖標(biāo)/ TODO: 在此添加額外的初始化代碼return TRUE; / 除非將焦點(diǎn)設(shè)置到控件,否則返回 TRUEvoid Ctext2Dlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialogEx:OnSysCommand(nID, lParam);/ 如果向?qū)υ捒蛱砑幼钚?/p>

21、化按鈕,則需要下面的代碼/ 來(lái)繪制該圖標(biāo)。對(duì)于使用文檔/視圖模型的 MFC 應(yīng)用程序,/ 這將由框架自動(dòng)完成。void Ctext2Dlg:OnPaint()if (IsIconic()CPaintDC dc(this); / 用于繪制的設(shè)備上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc(), 0);/ 使圖標(biāo)在工作區(qū)矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON

22、);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ 繪制圖標(biāo)dc.DrawIcon(x, y, m_hIcon);elseCDialogEx:OnPaint();/當(dāng)用戶拖動(dòng)最小化窗口時(shí)系統(tǒng)調(diào)用此函數(shù)取得光標(biāo)/顯示。HCURSOR Ctext2Dlg:OnQueryDragIcon()return static_cast<HCURSOR>(m_hIcon);void Ctext2Dlg:OnBn

23、Clicked0() /以下19和“.”都是一個(gè)道理,在此寫一個(gè)說(shuō)明一下UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true) /如果按下了"=","AC","sqrt","tan","sin"等按忸時(shí),m_strResult="0" /變量m_strResult的值為按下的按忸"0"(否則下面會(huì)出現(xiàn)03.的情況出現(xiàn))else m_strR

24、esult+="0" /在按下數(shù)字鍵的情況下,則在m_strResult后加"0"OperatorPressed=false; / OperatorPressed是bool型的變量 Restarted=false; / Restarted是bool型的變量 UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void Ctext2Dlg:OnBnClicked1()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="1&quo

25、t; else m_strResult+="1"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClicked2()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="2" else m_strResult+="2"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ct

26、ext2Dlg:OnBnClicked3()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="3" else m_strResult+="3"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClicked4()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="4&

27、quot; else m_strResult+="4"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClicked5()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="5" else m_strResult+="5"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void

28、 Ctext2Dlg:OnBnClicked6()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="6" else m_strResult+="6"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClicked7()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="

29、;7"else m_strResult+="7"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClicked8()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="8" else m_strResult+="8"OperatorPressed=false; Restarted=false;UpdateData(FALSE); vo

30、id Ctext2Dlg:OnBnClicked9()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult="9" else m_strResult+="9"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClickedPoint()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult

31、="." else m_strResult+="."OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClickedAdd() /以下“- * /”都是一個(gè)道理,在此寫一個(gè)說(shuō)明一下UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult m_strResult+="+" /在變量m_strResult后加"+" OperatorPressed=false; Restarted

32、=false; /把bool變量OperatorPressed和Restarted的值改為falseUpdateData(FALSE); /把字符串變量m_strResult傳給編輯框 void Ctext2Dlg:OnBnClickedSub()UpdateData(TRUE); m_strResult+="-" OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClickedmul()UpdateData(TRUE); m_strResult+="*&quo

33、t; OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClickedDiv()UpdateData(TRUE); m_strResult+="/" OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:OnBnClickedEqual() UpdateData(TRUE);L1=true;int p=0,i=0,g10=0,k=0,j;for(;i<m_strResult.

34、GetLength();i+)if(m_strResult.GetAt(i)='(')j=p;gj=i;p+;for(;k<p;k+)Bracket(m_strResult,&gj);/調(diào)用Bracket(m_strResult)函數(shù),解決括號(hào)問(wèn)題j-; GetStr(m_strResult); /調(diào)用函數(shù)GetStr(m_strResult),作用是把m_strResult轉(zhuǎn)化成數(shù)字和加減乘除四則運(yùn)算 GetResult(); /調(diào)用函數(shù)GetResult(),作用是計(jì)算出表達(dá)式的值m_Edit3.Format(_T("%1f"),a0);w

35、hile(L=1)MOD(m_strResult);L=0;while(PB='E')EXP10(m_strResult);PB='#'while(PB='X')Xy(m_strResult);PB='#'while(PB='c')SqrtMul(m_strResult);ClearZero(m_Edit3); UpdateData(FALSE);OperatorPressed=true;void Ctext2Dlg:OnBnClickedBackspace()UpdateData(TRUE); /把編輯框顯示的字

36、符串傳給相應(yīng)的變量m_strResult if(m_strResult!="0"&&m_strResult.GetLength()>1) /判斷編輯框是否只剩下“0”或者是否有字符在編輯框上m_strResult=m_strResult.Left(m_strResult.GetLength()-1); /把m_strResult左邊的數(shù)(長(zhǎng)度已經(jīng)減一)重新賦給m_strResultelseRestarted=true; /把bool變量Restarted的值改為truem_strResult="0" /變量m_strResult的值

37、為按下的按忸"0"UpdateData(FALSE);/把字符串變量m_strResult傳給編輯框 void Ctext2Dlg:OnBnClickedC()Restarted=true; /把bool變量Restarted的值改為truem_strResult="0" /變量m_strResult的值為按下的按忸"0"UpdateData(FALSE);/把字符串變量m_strResult傳給編輯框 void Ctext2Dlg:OnBnClickedSin() /以下“cos tan sinh cosh tanh”都是一個(gè)道理,

38、在此寫一個(gè)說(shuō)明一下UpdateData(TRUE);/把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult double result; /定義一個(gè)局部變量double型的result if(radio=1) /判斷是否按下度(這里還沒(méi)有設(shè)置梯度的消息命令響應(yīng)函數(shù))else result=sin(_wtof(m_strResult);/計(jì)算sin(弧度)的公式m_Edit3.Format(_T("%1f"),result);/將result的double型數(shù)據(jù)轉(zhuǎn)換成字符串,并傳遞給編輯框2的變量m_Edit3ClearZero(m_Edit3); /清零m_strRes

39、ult=m_Edit3; /將編輯框2的變量m_Edit3上的字符串賦值給編輯框1的變量m_strResultOperatorPressed=true; /把bool變量OperatorPressed的值改為true UpdateData(FALSE); /把字符串變量m_strResult,m_Edit3傳給各自的編輯框 void Ctext2Dlg:OnBnClickedCos()UpdateData(TRUE);double result;if(radio=1)else result=cos(_wtof(m_strResult);m_Edit3.Format(_T("%1f&q

40、uot;),result);ClearZero(m_Edit3);m_strResult=m_Edit3;OperatorPressed=true; UpdateData(FALSE);void Ctext2Dlg:OnBnClickedTan()UpdateData(TRUE);double result; if(radio=1)else result=tan(_wtof(m_strResult);m_Edit3.Format(_T("%1f"),result);ClearZero(m_Edit3);m_strResult=m_Edit3;OperatorPressed=

41、true; UpdateData(FALSE);void Ctext2Dlg:OnBnClickedSqrt()UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult double result; /定義一個(gè)局部變量double型的result result=sqrt(_wtof(m_strResult);/計(jì)算sqrtm_Edit3.Format(_T("%1f"),result);/將result的double型數(shù)據(jù)轉(zhuǎn)換成字符串,并傳遞給編輯框2的變量m_Edit3ClearZero(m_Edit3); /清零OperatorPr

42、essed=true;/把bool變量OperatorPressed的值改為true UpdateData(FALSE);/把字符串變量m_Edit3傳給編輯框double Ctext2Dlg:GetaStr(CString str) /這個(gè)函數(shù)的作用是將只有數(shù)字和.的字符串轉(zhuǎn)成double的數(shù)值,即相當(dāng)于_wtof()這個(gè)函數(shù)/這個(gè)函數(shù)也是自己添加int i=0;double rate=10.0,itemp=0.0;for(;i<str.GetLength();i+) if(isdigit(str.GetAt(i) /如果字符串str.GetAt(i)的內(nèi)容是整數(shù) if(rate=10

43、.0) /整數(shù)部分itemp=itemp*rate+(str.GetAt(i)-'0');/獲得整數(shù)else /小數(shù)部分itemp=itemp+rate*(str.GetAt(i)-'0');/獲得小數(shù)rate=rate/10; /每次讓rate小10倍else if(str.GetAt(i)='.') /如果str.GetAt(i)是小數(shù)點(diǎn)rate=0.1; /讓rate=0.1,開(kāi)始計(jì)算小數(shù)部分 return (itemp);void Ctext2Dlg:OnBnClickedLkouhao()UpdateData(TRUE); /把編輯框顯

44、示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed=true|Restarted=true)m_strResult="(" /變量m_strResult的值為按下的按忸"(" else m_strResult+="(" /在按下數(shù)字鍵的情況下,則在m_strResult后加"("OperatorPressed=false; Restarted=false; /把bool變量OperatorPressed和Restarted的值改為falseUpdateData(FALSE); /把

45、字符串變量m_strResult傳給編輯框 void Ctext2Dlg:OnBnClickedRkouhao()UpdateData(TRUE); if(OperatorPressed=true|Restarted=true)m_strResult=")" else m_strResult+=")"OperatorPressed=false; Restarted=false;UpdateData(FALSE); void Ctext2Dlg:Bracket(CString str0,int *h)/這個(gè)代碼也是自己添加CString str1=_T(&

46、quot;"),str2=_T(""),str3=_T("");int i=0;for(;i<str0.GetLength();i+) if(*h=i) /如果碰到了左括號(hào) i+; /i自加一次,用來(lái)跳過(guò)左括號(hào) for(;i<str0.GetLength();i+)if(str0.GetAt(i)=')') break; /如果碰到右括號(hào),跳出循環(huán) str2+=str0.GetAt(i); /把括號(hào)內(nèi)的表達(dá)式賦給str2i+; /i自加一次,用來(lái)跳過(guò)右括號(hào)for(;i<str0.GetLength();i+)str3+=s

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論