freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c++課程設(shè)計(jì)【用c++編寫計(jì)算器程序】【樣本】-文庫吧

2025-07-23 14:45 本頁面


【正文】 nt i=0。 for(。i()。i++) { if((i)==39。(39。) //如果碰到了左括號(hào) { i++。 //i自加一次,用來跳過左括號(hào) for(。i()。i++) { if((i)==39。)39。) break。 //如果碰到右括號(hào),跳出循環(huán) str2+=(i)。 //把括號(hào)內(nèi)的表達(dá)式賦給str2 } i++。 //i自加一次,用來跳過右括號(hào) for(。i()。i++) { str3+=(i)。 //把括號(hào)后邊的表達(dá)式賦給str3 } } else str1+=(i)。 //把括號(hào)前邊的表達(dá)式賦給str3 }GetStr(str2)。 //調(diào)用GetStr(str2)函數(shù),把str2里的數(shù)字和運(yùn)算符保存在數(shù)組中 GetResult()。 //計(jì)算出表達(dá)式str2的值 for(i=0。i()。i++) if((i)==39。(39。) //如果m_strResult中有括號(hào) (%1f,a[0])。 //把a(bǔ)[0]轉(zhuǎn)化為字符串賦給str2 m_strResult=str1+str2+str3。 //把str1,str2,str3的值加起來賦給m_strResult} 計(jì)算出結(jié)果的算法在把表達(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(b[i]==39。/39。) //當(dāng)循環(huán)遇到除號(hào)時(shí) { a[i+1]=1/a[i+1]。 //把a(bǔ)[i+1]的值改為1/a[i+1] b[i]=39。*39。 //把b[i]的值改為乘號(hào) } }//這個(gè)循環(huán)可以對(duì)所有乘法進(jìn)行計(jì)算 for(i=0。i=s。i++) { if(b[i]==39。*39。) //當(dāng)循環(huán)遇到乘號(hào)時(shí) {//如果it==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(it==2) { a[tz]=a[tz]*a[i+1]。 //進(jìn)行乘法運(yùn)算,把結(jié)果保存在前面的數(shù)組元素中 z=z+2。 //這里引進(jìn)變量z,可以解決很多數(shù)連續(xù)相乘的問題,比如2*2*2*2*2*2 } a[i1]=a[i1]*a[i+1]。 //碰到乘號(hào)后把乘號(hào)前后2個(gè)數(shù)字相乘,結(jié)果保存在前面的數(shù)組元素 a[i+1]=。 // b[i]=39。 39。 //對(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ù)的作用可以使中間一些初始化了的數(shù)字和符號(hào)被后面的數(shù)字和符號(hào)代替,讓數(shù)組可以重新排列 for(i=0。i=s。i++) { if(a[i]!=) //如果a[i] { a[x]=a[i]。 //把a(bǔ)[i]的值賦給a[x] x+=2。 //x自加2 } if(b[i]!=39。 39。) //如果b[i]的值不為空格 { b[y]=b[i]。 //把b[i]的值賦給b[y] y=y+2。 //y自加2 } }//這個(gè)循環(huán)是進(jìn)行最后的加減法運(yùn)算 for(i=0。i=y2。i++) //這里i的上限小于等于y2,可以保證不進(jìn)行多余的運(yùn)算 { if(b[i]==39。+39。) //如果b[i]等于加號(hào) a[0]=a[0]+a[i+1]。 //把加號(hào)后的數(shù)字和a[0]相加,結(jié)果保存在a[0]中 else if(b[i]==39。39。) //如果b[i]等于減號(hào) a[0]=a[0]a[i+1]。 //把減號(hào)后的數(shù)字和a[0]相減,結(jié)果保存在a[0]中 } } 轉(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,n[20]。CString str。UpdateData(TRUE)。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResultm=(int)GetaStr(m_strResult)。 //調(diào)用GetaStr(m_strResult),用來獲取m_strResult中的數(shù)字 m_strResult=。 //對(duì)m_strResult的值初始化for(int i=0。i=20。i++) { n[i]=m%2。 //把m除2的余數(shù)保存在n[i]中 m=m/2。 //把m/2的值賦給mif(m==0) break。 //當(dāng)m為0時(shí),退出循環(huán)} for(。i=0。i) { (%d,n[i])。 //用Format函數(shù)把n[i]的值轉(zhuǎn)化為字符串 m_strResult+=str。 //把str的值加在m_strResult上}OperatorPressed=true。 //把bool變量OperatorPressed的值改為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_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。 //把n除以16的余數(shù)賦給x if(x=0amp。amp。x=9){ //如果x在0到9之間(%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++.[2] C++ 2004[3] 2003.4 程序代碼void CMyDlg::OnNo0() { UpdateData(TRUE)。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,sqrt,tan,sin等按忸時(shí), m_strResult=0。 //變量m_strResult的值為按下的按忸0 else //在按下數(shù)字鍵的情況下,則在m_strResult后加0 m_strResult+=0。 OperatorPressed=false。 //把bool變量OperatorPressed和Restarted的值改為false Restarted=false。 UpdateData(FALSE)。 //把字符串變量m_strResult傳給編輯框}void CMyDlg::OnNo1() { UpdateData(TRUE)。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1