版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、簡單科學(xué)計(jì)算器設(shè)計(jì)VC+課程設(shè)計(jì)報(bào)告簡單科學(xué)計(jì)算器設(shè)計(jì)簡單科學(xué)計(jì)算器設(shè)計(jì)一、設(shè)計(jì)任務(wù)1. 選題意義此題選擇意義在于引導(dǎo)學(xué)生學(xué)會設(shè)計(jì)簡單的科學(xué)計(jì)算器,進(jìn)一步掌握Visual C+應(yīng)用程序。統(tǒng)計(jì)學(xué)習(xí)面向?qū)ο缶幊趟枷耄私釳FC架構(gòu),逐步熟悉可視化編程環(huán)境 Visual C+,并在此環(huán)境下設(shè)計(jì)并實(shí)現(xiàn)一個簡單計(jì)算器系統(tǒng)。 該計(jì)算器應(yīng)能實(shí)現(xiàn)如下功能:1)、 二進(jìn)制、八進(jìn)制、十進(jìn)制及十六進(jìn)制數(shù)的加、減、乘、除、乘方等簡單計(jì)算2)、科學(xué)計(jì)算函數(shù),包括正弦、余弦、正切、余切、開方、對數(shù)、指數(shù)等函數(shù)運(yùn)算3)、具備歷史計(jì)算的記憶功能。2. 設(shè)計(jì)目標(biāo)使計(jì)算器含有以下功能:(1)、基本運(yùn)算功能:可以進(jìn)行加、減、乘、除
2、等基本運(yùn)算。(2)、數(shù)制轉(zhuǎn)換功能:可以一次完成二進(jìn)制轉(zhuǎn)十進(jìn)制、十進(jìn)制轉(zhuǎn)二進(jìn)制、八進(jìn)制轉(zhuǎn)二 進(jìn)制等運(yùn)算。(3)、三角函數(shù)運(yùn)算功能:可以一次完成三角函數(shù)之間的計(jì)算,求正弦函數(shù)( sin )、 余弦函數(shù)(cos)、正切函數(shù)(tan)、余切函數(shù)(cot)等函數(shù)的值。(4)、對數(shù)、指數(shù)運(yùn)算功能:可以一次求的對數(shù)函數(shù)(log、In)、指數(shù)函數(shù)(exp) 等函數(shù)的運(yùn)算。(5)、刪除功能:可以在輸入錯誤時刪除已輸入的數(shù)值。(6)、歸零功能:可以在計(jì)算完成后清空編輯框中的已有數(shù)值。-2 -二、程序設(shè)計(jì)與實(shí)現(xiàn)1. 程序結(jié)構(gòu)本計(jì)算器首先是通過在計(jì)算器的界面上按下相應(yīng)的按鈕,來進(jìn)行基本的加,減,乘, 除等基本運(yùn)算,計(jì)
3、算器還能夠進(jìn)行平方運(yùn)算,求平方根運(yùn)算,乘方運(yùn)算,三角函數(shù)運(yùn)算 (包括正弦函數(shù)(sin)、余弦函數(shù)(cos)、正切函數(shù)(tan)、余切函數(shù)(cot),對數(shù)函數(shù)(In、log), 指數(shù)函數(shù)(exp),幕函數(shù)(x)和進(jìn)制轉(zhuǎn)換(包括二進(jìn)制轉(zhuǎn)十進(jìn)制、十進(jìn)制轉(zhuǎn)二進(jìn)制和八進(jìn) 制轉(zhuǎn)二進(jìn)制)等運(yùn)算。以下是本計(jì)算器的運(yùn)算流程圖:簡單科學(xué)計(jì)算器設(shè)計(jì)4u開始二輸入數(shù)據(jù)輸出結(jié)果輸入數(shù)據(jù)1T丄丄丄1加減乘除正余正乘進(jìn)歸平根指對法法法法弦弦切方制零方式數(shù)數(shù)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)運(yùn)轉(zhuǎn)功運(yùn)運(yùn)運(yùn)運(yùn)吉束2. 設(shè)計(jì)步驟:(1) 創(chuàng)建一個基于對話框的應(yīng)用程序。(2) 利用資源編輯器編輯對話框資源,及設(shè)計(jì)計(jì)算器界面并修改對話框各按鈕的ID屬性和
4、Caption屬性。(3) 利用ClassWizard為各按鈕添加消息映射(代碼在下面詳細(xì)介紹)(4) 設(shè)置對話框文本背景顏色。(5) 編輯圖標(biāo)。3詳細(xì)介紹:(2)主要代碼:void CGyDlg:O n0()/輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 0 s2=s2+0;m_xs=m_xs+0;UpdateData(FALSE);void CGyDlg:O n1()/輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 1 s2=s2+1;m_xs=m_xs+1;UpdateData(FALSE);void CGyDlg:O n2()/輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 2 s2=s2+2;m_xs=m_xs+2;UpdateDat
5、a(FALSE);void CGyDlg:O n3()/輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 3 s2=s2+3;m_xs=m_xs+3;UpdateData(FALSE);void CGyDlg:O n4()/輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 4 s2=s2+4;m_xs=m_xs+4;UpdateData(FALSE);void CGyDlg:O n5()/輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 5 s2=s2+5;m_xs=m_xs+5;簡單科學(xué)計(jì)算器設(shè)計(jì)UpdateData(FALSE);void CGyDlg:O n6()/ 輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 6 s2=s2+6;m_xs=m_xs+6;Upd
6、ateData(FALSE);void CGyDlg:O n7()/ 輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 7 s2=s2+7;m_xs=m_xs+7;UpdateData(FALSE);void CGyDlg:O n8()/ 輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 8 s2=s2+8;m_xs=m_xs+8;UpdateData(FALSE);void CGyDlg:O n9()/ 輸入相應(yīng)的數(shù)據(jù),這為輸入數(shù)據(jù) 9 s2=s2+9;m_xs=m_xs+9;UpdateData(FALSE);void CGyDlg:O nadd() /力卩 s2=;s1=m_xs;m_xs=m_xs+;str=+;Update
7、Data(false);void CGyDlg:O nsub() / 減 s2=;s1=m_xs;m_xs=m_xs+-;str=-;UpdateData(false);void CGyDlg:O nxsd() / 小數(shù)點(diǎn) s2=s2+.;m_xs=m_xs+.;UpdateData(false);void CGyDlg:O nchen g() / 乘 s2=;s1=m_xs;m_xs=m_xs+*;str=*;UpdateData(false);void CGyDlg:O nchu() / 除 s2=;s1=m_xs;m_xs=m_xs+/;str=/;UpdateData(false);v
8、oid CGyDlg:O ndel() / 刪除m_xs.Delete(m_xs.GetLe ngth()-1,1);UpdateData(false);void CGyDlg:O npf() / 平方 s2=;s1=m_xs;m_xs=m_xs+A2;str=p;UpdateData(false);-6 -簡單科學(xué)計(jì)算器設(shè)計(jì)void CGyDlg:Onkf() / 開 2 次方 s2=;s1=m_xs;m_xs=m_xs+1/2;str=k;UpdateData(false);void CGyDlg:O nsi n() /sin 函數(shù) s2=;s1=m_xs;m_xs=s in +m_xs;
9、str=s;UpdateData(false);void CGyDlg:O ncos() /cos 函數(shù) s2=;s1=m_xs;m_xs=cos+m_xs;str=c;UpdateData(false);void CGyDlg:O nta n() /tan 函數(shù) s2=;s1=m_xs;m_xs=ta n+m_xs;str=t;UpdateData(false);void CGyDlg:O nln() /ln 函數(shù)簡單科學(xué)計(jì)算器設(shè)計(jì) s2=;s1=m_xs;m_xs=l n+m_xs;str=T;UpdateData(false);void CGyDlg:O nlog() /log 函數(shù) s
10、2=;s1=m_xs;m_xs=log+m_xs;str=g;以e為底的指數(shù)UpdateData(false);void CGyDlg:O nex() / s2=;s1=m_xs; m_xs=eA+m_xs;str=e;UpdateData(false);void CGyDlg:On3cfg() / 開 3 次方 s2=;s1=m_xs;m_xs=m_xs+A1/3;str=f;UpdateData(false);void CGyDlg:Onxy() / x 的 y 次方 s2=;s1=m_xs;m_xs=m_xs+A;str=A;UpdateData(false);void CGyDlg:O
11、 nqk() / 歸零按鈕 m_xs=;UpdateData(FALSE);void CGyDlg:O nsze() / 十進(jìn)制轉(zhuǎn)二進(jìn)制 s2=;int n,i,t;double Y,p=0.0;Y=strtod( m_xs,NULL); /把字符串轉(zhuǎn)化成浮點(diǎn)型t=(i nt)(Y);if(t!=1)for(i=1;t1;i+) n=t%2;t=t/2;p+=n*pow(10,(i-1);p+=1*pow(10,(i-1);m_xs.Format(%f :p);UpdateData(false);void CGyDlg:O nezs() /二進(jìn)制轉(zhuǎn)十進(jìn)制 s2=;int len;double
12、sum=0.0,num;len=strle n( m_xs);for (i nt i=0;ile n;i+) num=(m_xsi-48);num=nu m*pow(2,le n-i-1);sum+=num;m_xs.Format(%f,sum);UpdateData(false);void CGyDlg:O nbze() /八進(jìn)制轉(zhuǎn)二進(jìn)制 s2=;int i,le n;char s;len=strle n( m_xs);CStri ng m_xs1;for(i=0;ile n;i+) s=m_xsi;switch(s) case1:m_xs仁m_xs1+001;break;case 2:m_
13、xs1=m_xs1+010;break;case 3:m_xs 仁m _xs1+011;break;case 4:m_xs1=m_xs1+100;break;case5:m_xs1=m_xs1+101;break;case 6:m_xs1=m_xs1+110;break;case7:m_xs1=m_xs1+111;break;m_xs=m_xs1;UpdateData(false);double add(double X, double Y) return X+Y; /加函數(shù)double subtract(double X, double Y) return X-Y; /減函數(shù)double c
14、hu(double X, double Y) return X/Y; /除函數(shù)double che ng(double X, double Y) return X*Y; /乘函數(shù)double jzf(double fu) return fu / 180.0 * 3.14159265;/角度轉(zhuǎn)弧度double che ngfan g(double X, int Y) /乘方 double m=1.0;if(Y=1)return X;elsefor(i nt i=1;iSetBkColor(RGB(190,255,0);return hbr;(3)函數(shù)功能說明整個計(jì)算器除了基本的加、減、乘、除運(yùn)算
15、外,另外還有8個功能,實(shí)現(xiàn)八大運(yùn)算:三角函數(shù)運(yùn)算功能、對數(shù)函數(shù)運(yùn)算功能、指數(shù)函數(shù)運(yùn)算功能、乘方運(yùn)算功能、平方運(yùn)算功能、根式運(yùn)算功能、進(jìn)制轉(zhuǎn)換功能、歸零功能。各個運(yùn)算功能的詳細(xì)設(shè)計(jì)說明分別如下:a、基本運(yùn)算功能主要實(shí)現(xiàn)數(shù)據(jù)的加、減、乘、除運(yùn)算,提供簡單的科學(xué)計(jì)算!b、三角函數(shù)運(yùn)算功能用來執(zhí)行三角函數(shù)的運(yùn)算,包括正弦函數(shù)(sin)、余弦函數(shù)(cos)、正切函數(shù)(tan)和余切函數(shù)(cot)。C、對數(shù)函數(shù)運(yùn)算功能用來執(zhí)行對數(shù)函數(shù)的運(yùn)算,包括以 e為底In函數(shù)和以10為底的lg函數(shù)。d、指數(shù)函數(shù)運(yùn)算功能用來執(zhí)行指數(shù)函數(shù)的運(yùn)算。e、乘方運(yùn)算功能用來執(zhí)行乘方的運(yùn)算,進(jìn)行數(shù)值的成倍計(jì)算。f、平方運(yùn)算功能用來
16、執(zhí)行平方運(yùn)算,說到底它也屬于乘方運(yùn)算的范疇。g、根式運(yùn)算功能用來執(zhí)行根式的運(yùn)算。h、進(jìn)制轉(zhuǎn)換運(yùn)算功能主要實(shí)現(xiàn)數(shù)值間的轉(zhuǎn)換,包括二進(jìn)制轉(zhuǎn)十進(jìn)制、十進(jìn)制轉(zhuǎn)二進(jìn)制和八進(jìn)制轉(zhuǎn)二進(jìn)制的運(yùn)算。二進(jìn)制轉(zhuǎn)十進(jìn)制N-S流程圖:num=(m_xsi-48);num=nu m*pow(2,le n-i-1);sum+=num;m xs.Format(%f,SUm);UpdateData(false);十進(jìn)制轉(zhuǎn)二進(jìn)制N-S流程圖:int n,i,t;double Y,p=0.0;Y=strtod( m_xs,NULL);t=(i nt)(Y);t!=1是i=1; 當(dāng) t1;n=t%2;t=t/2;p+=n*pow(1
17、0,(i-1);p+=1*pow(10,(i-1);m_xs.Format(%f,p);UpdateData(false);i、歸零、刪除功能主要實(shí)現(xiàn)數(shù)據(jù)的清零,當(dāng)用戶輸入數(shù)據(jù)出錯時,使用此功能可以清除已輸入的內(nèi)容 并重新輸入新的運(yùn)算內(nèi)容。三、設(shè)計(jì)難點(diǎn)與解決方法設(shè)計(jì)難點(diǎn)1:遇到一些復(fù)雜的函數(shù)計(jì)算時,設(shè)計(jì)的代碼不能很好的反映出該有的功 能。解決策略:通過看書、上網(wǎng)查資料和與同學(xué)討論,自己再反復(fù)修改代碼,運(yùn)行程序, 直到實(shí)際效果滿意為止。設(shè)計(jì)難點(diǎn)2:在編譯程序時,出現(xiàn)類型不匹配的錯誤,查找是Cstring和double類型之間沒有轉(zhuǎn)換。解決策略:查找到Format ()和atof ()函數(shù)可以進(jìn)行
18、他們之間的轉(zhuǎn)換四、設(shè)計(jì)效果與不足之處程序效果圖如下:不足之處:計(jì)算器的計(jì)算功能還不是很多,設(shè)計(jì)效果也不是很理想,輸入數(shù)據(jù)和顯示結(jié)果不能 同步顯示,只能分別顯示。五、學(xué)習(xí)體會經(jīng)過幾星期的的VC程序的編寫,感覺學(xué)會不少!加深了對VC+程序設(shè)計(jì)課 程所學(xué)知識的理解,進(jìn)一步鞏固VC+講法規(guī)則,進(jìn)一步掌握了各種函數(shù)的應(yīng)用和調(diào)用。首先在編輯對話框資源上,讓我更加了解 VC+程序的內(nèi)部結(jié)構(gòu)和資源使用。其次在做課程設(shè)計(jì)的過程中,發(fā)現(xiàn)了平時很多沒有注意到的問題,例如:一些細(xì)小 的問題更重要的是,這次課程設(shè)計(jì)雖然花了我不少時間,但正是這些時間,讓我認(rèn)識到了 VC+的重要性。這個計(jì)算器基本是在自己知識范圍內(nèi)完成的,所以界面清晰簡單,雖 然不是很好看,但十分實(shí)用!從這里我也得到一個體會,做一個程序,或者開發(fā)一個軟件,應(yīng)該著重從它的后臺 制作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 整合后的企業(yè)組織架構(gòu)調(diào)整-深度研究
- 2025年廣東茂名農(nóng)林科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年廣東松山職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年山西戲劇職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年山東勞動職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 歌劇《女人心》的藝術(shù)特點(diǎn)與演唱分析
- 基于共面電容測量法的水泥基材料裂縫與鋼筋檢測研究
- 三年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
- 2025至2030年中國手拉切機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年天津城市職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年長沙穗城軌道交通有限公司招聘筆試參考題庫含答案解析
- 人教版物理八年級下冊 專項(xiàng)訓(xùn)練卷 (一)力、運(yùn)動和力(含答案)
- 山東省房屋市政工程安全監(jiān)督機(jī)構(gòu)人員業(yè)務(wù)能力考試題庫-中(多選題)
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024年中考語文滿分作文6篇(含題目)
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項(xiàng)練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運(yùn)行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
評論
0/150
提交評論