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

正文內(nèi)容

c課程設(shè)計(jì)【用c編寫(xiě)計(jì)算器程序】【樣本】-wenkub

2022-09-04 14:45:48 本頁(yè)面
 

【正文】 計(jì)算出結(jié)果的算法在把表達(dá)式中的數(shù)字和運(yùn)算符分別保存在數(shù)組后,接下來(lái)我們就要進(jìn)行表達(dá)式的計(jì)算了,表達(dá)式的計(jì)算首先要考慮優(yōu)先級(jí)的問(wèn)題,這里先把所有的除法轉(zhuǎn)化為乘法,再把除法后的數(shù)字取它的倒數(shù),接下來(lái)就是進(jìn)行乘法計(jì)算,每次乘法計(jì)算后都把計(jì)算的結(jié)果保存在計(jì)算的2個(gè)數(shù)中的前面的那個(gè)數(shù)上,并把乘號(hào)和后面的數(shù)字刪除。i++) if((i)==39。 //把括號(hào)前邊的表達(dá)式賦給str3 }GetStr(str2)。 //i自加一次,用來(lái)跳過(guò)右括號(hào) for(。)39。) //如果碰到了左括號(hào) { i++。 for(。具體實(shí)現(xiàn)的算法:定義3個(gè)字符串變量strstrstr3,這三個(gè)變量都初始化為空變量,現(xiàn)在開(kāi)始一個(gè)循環(huán),當(dāng)沒(méi)有遇到字符“(”時(shí),把每次得到的字符都加在字符串str1上,當(dāng)遇到字符“(”時(shí),把“(”后的字符都加在字符串str2上,直到遇到字符“)”。 //把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部分 } } a[z]=itemp。 //讓z自加一次 b[z]=39。/39。*39。) //(i)是乘號(hào) { a[z]=itemp。 //把減號(hào)放入字符數(shù)組b中 z++。itemp=0。 //讓z自加一次 rate=。 //把itemp的值放入雙精度數(shù)組a中,并把itemp的值改為0 z++。 //讓rate=,開(kāi)始計(jì)算小數(shù)部分 else if((i)==39。//獲得小數(shù) rate=rate/10。)。 //把0賦給i for(。i10。 for(i=0。當(dāng)不在碰到運(yùn)算符號(hào)時(shí),把最后一個(gè)整數(shù)itemp的值數(shù)組a中,把z的值賦給s。) //(i)是小數(shù)點(diǎn) rate=。)。039。 double rate=,itemp=。)。039。 2 算法的實(shí)現(xiàn)(1)如果字符串中只有數(shù)字。其缺點(diǎn)是由于編譯時(shí)對(duì)語(yǔ)法限制比較寬松,許多邏輯上的錯(cuò)誤不容易發(fā)現(xiàn),給用戶編程增加了難度。 (3) C++集成環(huán)境不僅支持C++程序的編譯和調(diào)試,而且也支持C程序的編譯和調(diào)試。(1) C++是一個(gè)更好的C,它保持了C語(yǔ)言的優(yōu)點(diǎn),大多數(shù)的C程序代碼略作修改或不作修改就可在C++的集成環(huán)境下調(diào)試和運(yùn)行。系統(tǒng)開(kāi)發(fā)平臺(tái)為Windows XP,程序設(shè)計(jì)設(shè)計(jì)語(yǔ)言采用Visual C++,程序運(yùn)行平臺(tái)為Windows 98/2000/XP。程序通過(guò)調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。這對(duì)于繼承和開(kāi)發(fā)當(dāng)前已在廣泛的軟件是非常重要的,可以節(jié)省大量的人力和物力。通常,C++程序環(huán)境 約定:當(dāng)源程序文件的擴(kuò)展名為c.時(shí),則為C程序;而當(dāng)源程序文件的擴(kuò)展名為cpp.時(shí),則為C++程序。(1)在運(yùn)行程序后,系統(tǒng)會(huì)彈出一個(gè)基于對(duì)話框的計(jì)算器界面,如下圖所示: 計(jì)算器界面 (2)在計(jì)算器程序中,主要通過(guò)一個(gè)編輯框來(lái)獲取表達(dá)式和顯示計(jì)算結(jié)果,表達(dá)式可以通過(guò)鍵盤(pán)和單擊按鈕2種方式輸入,輸入后的結(jié)果如下圖所示: 輸入表達(dá)式后的界面 (3)在輸入完表達(dá)式后,單擊“=”后,開(kāi)始對(duì)表達(dá)式進(jìn)行計(jì)算,計(jì)算完成后,在編輯框中顯示計(jì)算的結(jié)果。這個(gè)情況用來(lái)實(shí)現(xiàn)一些簡(jiǎn)單函數(shù)的運(yùn)算。)。rate=rate/10。 for(。)。//獲得小數(shù) rate=rate/10。 //讓rate=,開(kāi)始計(jì)算小數(shù)部分 } return (itemp)。(z的值表示運(yùn)算符加數(shù)字一個(gè)有多少個(gè),把這個(gè)值賦給s,可以在以后的計(jì)算中,控制循環(huán)的條件,避免造成不必要的誤差。i20。i++) b[i]=39。i()。//獲得整數(shù) else //小數(shù)部分 { itemp=itemp+rate*((i)39。 //每次讓rate小10倍 } } else if((i)==39。+39。 //讓z自加一次 b[z]=39。 //把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部分 } else if((i)==39。 //把itemp的值放入雙精度數(shù)組a中,并把itemp的值改為0 z++。 //讓z自加一次 rate=。itemp=0。 //把減號(hào)放入字符數(shù)組b中 z++。) //(i)是除號(hào) { a[z]=itemp。/39。 //把最后一個(gè)整數(shù)itemp的值放入雙精度數(shù)組a中 s=z。當(dāng)遇到字符“)”時(shí),把“)”后的字符都加在字符串str3上,str2再調(diào)用函數(shù)計(jì)算出它的表達(dá)式的值,最后把3個(gè)字符串相加,這就解決了括號(hào)問(wèn)題。i()。 //i自加一次,用來(lái)跳過(guò)左括號(hào) for(。) break。i()。 //調(diào)用GetStr(str2)函數(shù),把str2里的數(shù)字和運(yùn)算符保存在數(shù)組中 GetResult()。(39。進(jìn)行完乘法運(yùn)算后,進(jìn)行一次循環(huán),重新整理下數(shù)組,最后進(jìn)行加法和減法運(yùn)算。i++) { if(b[i]==39。*39。*39。 //碰到乘號(hào)后把乘號(hào)前后2個(gè)數(shù)字相乘,結(jié)果保存在前面的數(shù)組元素 a[i+1]=。 //把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。 //x自加2 } if(b[i]!=39。 //y自加2 } }//這個(gè)循環(huán)是進(jìn)行最后的加減法運(yùn)算 for(i=0。) //如果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)制的算法。UpdateData(TRUE)。i=20。 //當(dāng)m為0時(shí),退出循環(huán)} for(。 //把str的值加在m_strResult上}OperatorPressed=true。函數(shù)代碼如下;void CMyDlg::On16() { int m。 //調(diào)用f(m)函數(shù),把十進(jìn)制轉(zhuǎn)化為十六進(jìn)制 m_strResult=str7。 //把字符串變量m_strResult傳給編輯框}void CMyDlg::f(int n){CString str1。 //把n除以16的余數(shù)賦給x if(x=0amp。} //把str1加在str3上 elsestr7+=char(x+55)。 OperatorPressed=false。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,sqrt,tan,sin等按忸時(shí), m_strResult=1。 UpdateData(FALSE)。 OperatorPressed=false。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,sqrt,tan,sin等按忸時(shí), m_strResult=3。 UpdateData(FALSE)。 OperatorPressed=false。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,sqrt,tan,sin等按忸時(shí), m_strResult=5。 UpdateData(FALSE)。 OperatorPressed=false。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,sqrt,tan,sin等按忸時(shí), m_strResult=7。 UpdateData(FALSE)。 OperatorPressed=false。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult if(OperatorPressed==true||Restarted==true)//在按下了=,AC,sqrt,tan,sin等按忸時(shí), m_strResult=9。 UpdateData(FALSE)。 //把bool變量OperatorPressed和Restarted的值改為false Restarted=false。 //在變量m_strResult后加 OperatorPressed=false。 //把編輯框顯示的字符串傳給相應(yīng)的變量m_strResult m_strResult+=*。 //把字符串變量m_strResult傳給編輯框}void CMyDlg::OnDiv() { UpdateData(TRUE)。 UpdateData(FALSE)。i20。i++) b[i]=39。i()。//獲得整數(shù) else //小數(shù)部分 { itemp=itemp+rate*((i)39。 //每次讓rate小10倍 } } else if((i)==39。+39。 //讓z自加一次 b[z]=39。 //把10賦給rate,確保讀取下個(gè)數(shù)字時(shí),先計(jì)算整數(shù)部分 } else if((i)==39。 //把itemp的值放入雙精度數(shù)組a中,并把itemp的值改為0 z++。 //讓z自加一次 rate=。itemp=0。 //把減號(hào)放入字符數(shù)組b中 z++。) //(i)是除號(hào) { a[z]=itemp。/39。 //把最后一個(gè)整數(shù)itemp的值放入雙精度數(shù)組a中s=z。i++) { if(b[i]==39。*39。*39。 //碰到乘號(hào)后把乘
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1