版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、長(zhǎng)沙理工大學(xué)VC+可視化程序設(shè)計(jì)課程論文王井泉學(xué) 院 計(jì)算機(jī)與通信工程 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) 計(jì)0603 班 學(xué) 號(hào) 200650080313 學(xué)生姓名 王 井 泉 課程成績(jī) 完成日期 2007年07月10日課程設(shè)計(jì)成績(jī)?cè)u(píng)定學(xué) 院 計(jì)算機(jī)與通信工程專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) 計(jì)06-3班學(xué) 號(hào) 200650080313學(xué)生姓名 王 井 泉指導(dǎo)教師謝中科課程成績(jī) 完成日期 7月10日指導(dǎo)教師對(duì)學(xué)生在課程設(shè)計(jì)中的評(píng)價(jià)評(píng)分項(xiàng)目?jī)?yōu)良中及格不及格課程設(shè)計(jì)中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計(jì)完成情況課程設(shè)計(jì)動(dòng)手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計(jì)論文的質(zhì)量指導(dǎo)教師對(duì)課程設(shè)計(jì)的評(píng)定意見
2、綜合成績(jī) 指導(dǎo)教師簽字年 月 日用C編寫計(jì)算器程序?qū)W生:王井泉指導(dǎo)老師:謝中科搞要本課程設(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)開發(fā)平臺(tái)為Windows XP,程序設(shè)計(jì)設(shè)計(jì)語言采用Visual C+6.0,程序運(yùn)行平臺(tái)為Windows 98/2000/XP。程序通過調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。關(guān)鍵詞 程序設(shè)計(jì);計(jì)算器;C+;1 引言在現(xiàn)代社會(huì)中,計(jì)算器
3、已經(jīng)進(jìn)入了每一個(gè)家庭,人們?cè)谏詈蛯W(xué)習(xí)中經(jīng)常需要使用到計(jì)算器,它的出現(xiàn)大大減少了人們?cè)谟?jì)算方面的工作量,可以說它在人們生活和學(xué)習(xí)中是不可缺少的。1.1 C+介紹C+語言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是全面兼容C語言,二是支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法1。(1) C+是一個(gè)更好的C,它保持了C語言的優(yōu)點(diǎn),大多數(shù)的C程序代碼略作修改或不作修改就可在C+的集成環(huán)境下調(diào)試和運(yùn)行。這對(duì)于繼承和開發(fā)當(dāng)前已在廣泛的軟件是非常重要的,可以節(jié)省大量的人力和物力。(2) C+是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言它使得程序的各個(gè)模塊的獨(dú)立性更強(qiáng),程序的可讀性和可移植性更強(qiáng),程序代碼的結(jié)構(gòu)更加合理,程序的擴(kuò)充性更強(qiáng)。這對(duì)于設(shè)計(jì)、編
4、制和調(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+語句非常簡(jiǎn)練,對(duì)語法限制比較寬松,因此C+語法非常靈活。其優(yōu)點(diǎn)是給用戶編程帶來書寫上的方便。其缺點(diǎn)是由于編譯時(shí)對(duì)語法限制比較寬松,許多邏輯上的錯(cuò)誤不容易發(fā)現(xiàn),給用戶編程增加了難度。1.2計(jì)算器的介紹(1)在運(yùn)行程序后,系統(tǒng)會(huì)彈出一個(gè)基于對(duì)話框的計(jì)算器界面,如下圖所示:圖1.1 計(jì)算器界面(2)在計(jì)算器程序中,主要通過一個(gè)編輯框來獲取表達(dá)式和顯示計(jì)算結(jié)果,表達(dá)式
5、可以通過鍵盤和單擊按鈕2種方式輸入,輸入后的結(jié)果如下圖所示:圖1.2 輸入表達(dá)式后的界面(3)在輸入完表達(dá)式后,單擊“=”后,開始對(duì)表達(dá)式進(jìn)行計(jì)算,計(jì)算完成后,在編輯框中顯示計(jì)算的結(jié)果。圖1.3 計(jì)算后的結(jié)果(4)計(jì)算器可以實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)化為十六進(jìn)制或二進(jìn)制,其實(shí)現(xiàn)的操作為先輸入一個(gè)十進(jìn)制整數(shù),再單擊按鈕“轉(zhuǎn)化為二進(jìn)制”或“轉(zhuǎn)化為十六進(jìn)制。 圖1.4 輸入一個(gè)十進(jìn)制數(shù)100 圖1.5 100轉(zhuǎn)化為二進(jìn)制后的結(jié)果圖1.6 100轉(zhuǎn)化為十六進(jìn)制后的結(jié)果(4)另外,計(jì)算器還可以實(shí)現(xiàn)一些簡(jiǎn)單的函數(shù)運(yùn)算,實(shí)現(xiàn)的操作和十六進(jìn)制/二進(jìn)制轉(zhuǎn)化類似,是先輸入一個(gè)數(shù)字,在單擊想要進(jìn)行的函數(shù)的按鈕,單擊后就會(huì)在編輯框
6、中顯示運(yùn)算的結(jié)果。2 算法的實(shí)現(xiàn)2.1把字符串轉(zhuǎn)化為數(shù)字和運(yùn)算符的算法(1)如果字符串中只有數(shù)字。這個(gè)情況用來實(shí)現(xiàn)一些簡(jiǎn)單函數(shù)的運(yùn)算。在進(jìn)行簡(jiǎn)單函數(shù)的運(yùn)算時(shí),都是先輸入一個(gè)數(shù)字,再單擊要進(jìn)行運(yùn)算的按鈕,然后編輯框顯示運(yùn)算的結(jié)果。程序用了一個(gè)函數(shù)double GetaStr(CString str)來實(shí)現(xiàn)這個(gè)功能,該函數(shù)以編輯框變量m_strResult為實(shí)參,再得到m_strResult的值后,調(diào)用GetAt函數(shù),一個(gè)字符一個(gè)字符的讀取,如果碰到整數(shù),執(zhí)行“itemp=itemp*rate+(str.GetAt(i)-'0');”,其中變量itemp初始值為0,變量rate初始
7、值為10,如果碰到了小數(shù)點(diǎn),改變r(jià)ate的值,使其等于0.1,再向后繼續(xù)讀取,再碰到整數(shù)時(shí)執(zhí)行“itemp=itemp+rate*(str.GetAt(i)-'0');rate=rate/10;”,函數(shù)的最后確定返回值為itemp。以下是這個(gè)函數(shù)的代碼2:double CMyDlg:GetaStr(CString str)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.0) /整
8、數(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,開始計(jì)算小數(shù)部分 return (itemp);(2)如果字符串中有運(yùn)算符和數(shù)字,但是沒有括號(hào)。程序調(diào)用函數(shù)void GetStr(CString str),這個(gè)函數(shù)的前半部分和
9、函數(shù)void GetaStr(CString str)一樣,都是獲取數(shù)字的算法,但是因?yàn)楸磉_(dá)式中可能有多個(gè)數(shù)字和運(yùn)算符,所以我們需要定義2個(gè)數(shù)組,分別用來存放數(shù)字和運(yùn)算符,當(dāng)讀取字符遇到運(yùn)算符時(shí),把變量itemp的值保存在數(shù)組a中,并把0賦給itemp,把10賦給rate,把運(yùn)算符保存在數(shù)組b中。當(dāng)不在碰到運(yùn)算符號(hào)時(shí),把最后一個(gè)整數(shù)itemp的值數(shù)組a中,把z的值賦給s。(z的值表示運(yùn)算符加數(shù)字一個(gè)有多少個(gè),把這個(gè)值賦給s,可以在以后的計(jì)算中,控制循環(huán)的條件,避免造成不必要的誤差。)這個(gè)函數(shù)的代碼如下:void CMyDlg:GetStr(CString str) int i=0,z=0;do
10、uble rate=10.0,itemp=0.0;for(i=0;i<20;i+) ai=1000000.0;/對(duì)數(shù)組a20初始化for(i=0;i<10;i+) bi=' '/對(duì)數(shù)組b10初始化i=0; /把0賦給ifor(;i<str.GetLength();i+) if(isdigit(str.GetAt(i) /如果字符串str.GetAt(i)的內(nèi)容是整數(shù) if(rate=10.0) /整數(shù)部分itemp=itemp*rate+(str.GetAt(i)-'0');/獲得整數(shù)else /小數(shù)部分itemp=itemp+rate*(st
11、r.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,開始計(jì)算小數(shù)部分else if(str.GetAt(i)='+') /如果str.GetAt(i)是加號(hào) az=itemp;itemp=0; /把itemp的值放入雙精度數(shù)組a中,并把itemp的值改為0z+; /讓z自加一次bz='+' /把加號(hào)放入字符數(shù)組b中z+; /讓z自加一次rate=10.0; /
12、把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部分else if(str.GetAt(i)='-') /如果str.GetAt(i)是減號(hào) az=itemp;itemp=0; /把itemp的值放入雙精度數(shù)組a中,并把itemp的值改為0z+; /讓z自加一次 bz='-' /把減號(hào)放入字符數(shù)組b中 z+; /讓z自加一次 rate=10.0; /把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部分else if(str.GetAt(i)='*') /如果str.GetAt(i)是乘號(hào) az=itemp;itemp=0; /把itemp的值
13、放入雙精度數(shù)組a中,并把itemp的值改為0z+; /讓z自加一次bz='*' /把減號(hào)放入字符數(shù)組b中z+; /讓z自加一次 rate=10.0; /把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部分else if(str.GetAt(i)='/') /如果str.GetAt(i)是除號(hào) az=itemp;itemp=0; /把itemp的值放入雙精度數(shù)組a中,并把itemp的值改為0z+; /讓z自加一次bz='/' /把除號(hào)放入字符數(shù)組b中z+; /讓z自加一次rate=10.0; /把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部
14、分az=itemp; /把最后一個(gè)整數(shù)itemp的值放入雙精度數(shù)組a中 s=z; /把z的值賦給變量s,用來控制計(jì)算結(jié)果的循環(huán)中的條件(3)如果字符串中有括號(hào)。程序用函數(shù)voidBracket(CString str0)來解決括號(hào)問題,同樣,函數(shù)以編輯框變量m_strResult為實(shí)參,主要思想是把m_strResult先分成3個(gè)字符串,比如一個(gè)表達(dá)式2*(2+3)-6,這個(gè)函數(shù)的目的是先把表達(dá)式2*(2+3)-6分成2*、2+3、-6三個(gè)字符串,再計(jì)算2+3后,把結(jié)果覆蓋掉2+3所在的字符串,最后把3個(gè)字符串相加,這樣就處理掉了括號(hào)的問題。具體實(shí)現(xiàn)的算法:定義3個(gè)字符串變量str1、str2
15、、str3,這三個(gè)變量都初始化為空變量,現(xiàn)在開始一個(gè)循環(huán),當(dāng)沒有遇到字符“(”時(shí),把每次得到的字符都加在字符串str1上,當(dāng)遇到字符“(”時(shí),把“(”后的字符都加在字符串str2上,直到遇到字符“)”。當(dāng)遇到字符“)”時(shí),把“)”后的字符都加在字符串str3上,str2再調(diào)用函數(shù)計(jì)算出它的表達(dá)式的值,最后把3個(gè)字符串相加,這就解決了括號(hào)問題。該函數(shù)代碼如下:void CMyDlg:Bracket(CString str0) CString str1="",str2="",str3=""int i=0;for(;i<str0.Ge
16、tLength();i+) if(str0.GetAt(i)='(') /如果碰到了左括號(hào) i+; /i自加一次,用來跳過左括號(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自加一次,用來跳過右括號(hào)for(;i<str0.GetLength();i+)str3+=str0.GetAt(i); /把括號(hào)后邊的表達(dá)式賦給str3 else str1+=str0.GetAt(i);
17、/把括號(hào)前邊的表達(dá)式賦給str3GetStr(str2); /調(diào)用GetStr(str2)函數(shù),把str2里的數(shù)字和運(yùn)算符保存在數(shù)組中 GetResult(); /計(jì)算出表達(dá)式str2的值for(i=0;i<str0.GetLength();i+)if(str0.GetAt(i)='(') /如果m_strResult中有括號(hào)str2.Format("%1f",a0); /把a(bǔ)0轉(zhuǎn)化為字符串賦給str2m_strResult=str1+str2+str3; /把str1,str2,str3的值加起來賦給m_strResult2.2 計(jì)算出結(jié)果的算法在把
18、表達(dá)式中的數(shù)字和運(yùn)算符分別保存在數(shù)組后,接下來我們就要進(jìn)行表達(dá)式的計(jì)算了,表達(dá)式的計(jì)算首先要考慮優(yōu)先級(jí)的問題,這里先把所有的除法轉(zhuǎn)化為乘法,再把除法后的數(shù)字取它的倒數(shù),接下來就是進(jìn)行乘法計(jì)算,每次乘法計(jì)算后都把計(jì)算的結(jié)果保存在計(jì)算的2個(gè)數(shù)中的前面的那個(gè)數(shù)上,并把乘號(hào)和后面的數(shù)字刪除。進(jìn)行完乘法運(yùn)算后,進(jìn)行一次循環(huán),重新整理下數(shù)組,最后進(jìn)行加法和減法運(yùn)算。函數(shù)代碼如下:void CMyDlg:GetResult()int i=0,x=0,y=1,t,z=1;/這個(gè)循環(huán)的目的是把所有除法運(yùn)算都改為乘法計(jì)算for(i=0;i<=s;i+) if(bi='/') /當(dāng)循環(huán)遇到除號(hào)
19、時(shí)ai+1=1/ai+1; /把a(bǔ)i+1的值改為1/ai+1bi='*' /把bi的值改為乘號(hào) /這個(gè)循環(huán)可以對(duì)所有乘法進(jìn)行計(jì)算for(i=0;i<=s;i+) if(bi='*') /當(dāng)循環(huán)遇到乘號(hào)時(shí)/如果i-t=2(再上次循環(huán)中,t被賦值成了i,這次2個(gè)值只相差2,說明表達(dá)式的情況是連續(xù)乘法,比如2*3*4)以2*3*4為例,在這個(gè)條件之前,函數(shù)已經(jīng)進(jìn)行了2*3的運(yùn)算,其計(jì)算結(jié)果保存在原來的2中,把2的值覆蓋了,這個(gè)條件的作用是讓2*3的結(jié)果再和4相乘,結(jié)果保存在原來的2中if(i-t=2) at-z=at-z*ai+1; /進(jìn)行乘法運(yùn)算,把結(jié)果保存在
20、前面的數(shù)組元素中 z=z+2; /這里引進(jìn)變量z,可以解決很多數(shù)連續(xù)相乘的問題,比如2*2*2*2*2*2 ai-1=ai-1*ai+1; /碰到乘號(hào)后把乘號(hào)前后2個(gè)數(shù)字相乘,結(jié)果保存在前面的數(shù)組元素ai+1=1000000.0; /對(duì)乘號(hào)后面的數(shù)字初始化為0.0bi=' ' /對(duì)乘號(hào)初始化為空格/2數(shù)相乘后把乘號(hào)及其后面的數(shù)字初始化了,如果是2*3*4的情況,將會(huì)無法計(jì)算*4,所以要用開始的條件語句來解決t=i; /把i的值賦給t/這個(gè)循環(huán)的目的是對(duì)數(shù)組a和b進(jìn)行整理,因?yàn)橐呀?jīng)進(jìn)行了乘法和除法運(yùn)算,進(jìn)行運(yùn)算的時(shí)候,把一些數(shù)字和運(yùn)算符初始化了這個(gè)函數(shù)的作用可以使中間一些初始化了
21、的數(shù)字和符號(hào)被后面的數(shù)字和符號(hào)代替,讓數(shù)組可以重新排列for(i=0;i<=s;i+) if(ai!=1000000.0) /如果ai的值不為0.0 ax=ai; /把a(bǔ)i的值賦給axx+=2; /x自加2if(bi!=' ') /如果bi的值不為空格by=bi; /把bi的值賦給byy=y+2; /y自加2/這個(gè)循環(huán)是進(jìn)行最后的加減法運(yùn)算for(i=0;i<=y-2;i+) /這里i的上限小于等于y-2,可以保證不進(jìn)行多余的運(yùn)算 if(bi='+') /如果bi等于加號(hào)a0=a0+ai+1; /把加號(hào)后的數(shù)字和a0相加,結(jié)果保存在a0中else i
22、f(bi='-') /如果bi等于減號(hào)a0=a0-ai+1; /把減號(hào)后的數(shù)字和a0相減,結(jié)果保存在a0中2.3 轉(zhuǎn)化為十六進(jìn)制和二進(jìn)制的算法(1)轉(zhuǎn)化為二進(jìn)制的算法。將數(shù)值除以2并記錄余數(shù),只要商不為0,繼續(xù)將最新的商除以2并記錄余數(shù),當(dāng)商為0以后,此數(shù)的二進(jìn)制便可以由記錄下來的余數(shù)得到3。以下是函數(shù)的代碼:void CMyDlg:On2() int m,n20;CString str;UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultm=(int)GetaStr(m_strResult); /調(diào)用GetaStr(m_strResu
23、lt),用來獲取m_strResult中的數(shù)字 m_strResult="" /對(duì)m_strResult的值初始化for(int i=0;i<=20;i+) ni=m%2; /把m除2的余數(shù)保存在ni中 m=m/2; /把m/2的值賦給mif(m=0) break; /當(dāng)m為0時(shí),退出循環(huán) for(;i>=0;i-) str.Format("%d",ni); /用Format函數(shù)把ni的值轉(zhuǎn)化為字符串 m_strResult+=str; /把str的值加在m_strResult上OperatorPressed=true; /把bool變量Op
24、eratorPressed的值改為trueUpdateData(FALSE); /把字符串變量m_strResult傳給編輯框(2)轉(zhuǎn)化為十六進(jìn)制的算法。如果要轉(zhuǎn)化的數(shù)字大于16,則把這個(gè)數(shù)字除以16并記錄余數(shù),繼續(xù)將最新的商除以16并記錄余數(shù),當(dāng)商為0以后,把大于9的數(shù)字轉(zhuǎn)化為字母記錄,這樣得到的字符串就是十六進(jìn)制數(shù)了。函數(shù)代碼如下;void CMyDlg:On16() int m;UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultm=(int)GetaStr(m_strResult); /調(diào)用GetaStr(m_strResult),用來獲取m_
25、strResult中的數(shù)字f(m); /調(diào)用f(m)函數(shù),把十進(jìn)制轉(zhuǎn)化為十六進(jìn)制 m_strResult=str7; /把str7的值賦給m_strResultstr7="" /把str7初始化OperatorPressed=true; /把bool變量OperatorPressed的值改為trueUpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:f(int n)CString str1;int x; if(n/16)!=0) /如果n大于等于16 f(n/16); /把n除以16,進(jìn)行遞歸調(diào)用 x=n%16; /把
26、n除以16的余數(shù)賦給x if(x>=0&&x<=9) /如果x在0到9之間str1.Format("%d",x); /用Format函數(shù)把x的值轉(zhuǎn)化為字符串str7+=str1; /把str1加在str3上 elsestr7+=char(x+55); /把x的值加55(利用ASCII碼)再轉(zhuǎn)化為字符型加在str3上 3 參考文獻(xiàn)1譚浩強(qiáng). C+程序設(shè)計(jì).清華大學(xué)出版社2004.2鄭阿奇.Visual C+教程.機(jī)械工業(yè)出版社 20043J.Gleen Brookshear.計(jì)算機(jī)科學(xué)概論.人民郵電出版社 2003.4 程序代碼void CMyDl
27、g:OnNo0() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan","sin"等按忸時(shí),m_strResult="0" /變量m_strResult的值為按下的按忸"0"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"0"m_strResult
28、+="0"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為false Restarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo1() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt",&quo
29、t;tan","sin"等按忸時(shí),m_strResult="1" /變量m_strResult的值為按下的按忸"1"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"1" m_strResult+="1"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:
30、OnNo2() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan","sin"等按忸時(shí),m_strResult="2" /變量m_strResult的值為按下的按忸"2"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"2"m_strResult+=
31、"2"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo3() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","t
32、an","sin"等按忸時(shí),m_strResult="3" /變量m_strResult的值為按下的按忸"3"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"3"m_strResult+="3"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo
33、4() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan","sin"等按忸時(shí),m_strResult="4" /變量m_strResult的值為按下的按忸"4"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"4"m_strResult+=&quo
34、t;4"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo5() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan&q
35、uot;,"sin"等按忸時(shí),m_strResult="5" /變量m_strResult的值為按下的按忸"5"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"5"m_strResult+="5"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo6()
36、UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan","sin"等按忸時(shí),m_strResult="6" /變量m_strResult的值為按下的按忸"6"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"6"m_strResult+="6&
37、quot;OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo7() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan"
38、,"sin"等按忸時(shí),m_strResult="7" /變量m_strResult的值為按下的按忸"7"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"7"m_strResult+="7"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo8() Upda
39、teData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan","sin"等按忸時(shí),m_strResult="8" /變量m_strResult的值為按下的按忸"8"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"8"m_strResult+="8"
40、;OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnNo9() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultif(OperatorPressed=true|Restarted=true)/在按下了"=","AC","sqrt","tan",&qu
41、ot;sin"等按忸時(shí),m_strResult="9" /變量m_strResult的值為按下的按忸"9"else /在按下數(shù)字鍵的情況下,則在m_strResult后加"9"m_strResult+="9"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為falseRestarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnAdd() UpdateDa
42、ta(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultm_strResult+="+" /在變量m_strResult后加"+"OperatorPressed=false; /把bool變量OperatorPressed和Restarted的值改為false Restarted=false;UpdateData(FALSE); /把字符串變量m_strResult傳給編輯框void CMyDlg:OnDec() UpdateData(TRUE); /把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultm_strResult+="-&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特殊功能性內(nèi)墻涂料研發(fā)與應(yīng)用合同3篇
- 二零二五年度公司對(duì)公司智能化辦公租賃合同3篇
- 2025上海市國有土地使用權(quán)出讓合同范本
- 二零二五年度能源企業(yè)公司掛靠能源供應(yīng)合同3篇
- 2025年度內(nèi)部承包合同協(xié)議書:XX部門內(nèi)部承包銷售業(yè)績(jī)提成協(xié)議3篇
- 二零二五年度全款購車車輛認(rèn)證合同模板3篇
- 二零二五年度農(nóng)村房屋贈(zèng)與合同附帶農(nóng)用設(shè)備配套協(xié)議
- 2025年度土地流轉(zhuǎn)承包與農(nóng)村金融服務(wù)合作協(xié)議3篇
- 二零二五年度解除勞動(dòng)合同經(jīng)濟(jì)補(bǔ)償金及員工心理咨詢服務(wù)合同3篇
- 2025年度辦公室租賃合同(含企業(yè)活動(dòng)策劃與執(zhí)行)3篇
- 中國AI+Agent應(yīng)用研究報(bào)告
- 2024年人教版初二道德與法治上冊(cè)期末考試卷(附答案)
- 2024至2030年中國工控安全行業(yè)發(fā)展?fàn)顩r及投資潛力分析報(bào)告
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計(jì)技術(shù)規(guī)程
- 2022年人力資源管理各專業(yè)領(lǐng)域必備知識(shí)技能
- 租賃(出租)物品清單表
- 提高聚氯乙烯卷材地面一次驗(yàn)收合格率
- 【部編版】2022年語文七年級(jí)上:作文能力提升—謀篇布局(含答案)
- 甲型H1N1流感防治應(yīng)急演練方案(1)
- LU和QR分解法解線性方程組
- 漏油器外殼的落料、拉深、沖孔級(jí)進(jìn)模的設(shè)計(jì)【畢業(yè)論文絕對(duì)精品】
評(píng)論
0/150
提交評(píng)論