加中實(shí)訓(xùn)課程設(shè)計(jì)_第1頁
加中實(shí)訓(xùn)課程設(shè)計(jì)_第2頁
加中實(shí)訓(xùn)課程設(shè)計(jì)_第3頁
加中實(shí)訓(xùn)課程設(shè)計(jì)_第4頁
加中實(shí)訓(xùn)課程設(shè)計(jì)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 ?程序設(shè)計(jì)根底?(C+)課程設(shè)計(jì)報(bào)告 計(jì)算器 姓 名: 班 級(jí): 學(xué) 號(hào): 指導(dǎo)教師: 成 績(jī): 完成時(shí)間: 完成地點(diǎn): 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 計(jì)算器 1 根本功能描述 計(jì)算器包含根本的四那么運(yùn)算、開方、倒數(shù)、相反數(shù)(正負(fù))等運(yùn)算??蓪?duì)輸入任意操 作數(shù),包括小數(shù)和整數(shù)及正數(shù)和負(fù)數(shù)進(jìn)行以上的所有運(yùn)算。同時(shí)包含去除功能。 2 設(shè)計(jì)思路 如圖 1 是計(jì)算器總流程圖,輸完第一個(gè)操作數(shù)后,假設(shè)點(diǎn)擊雙目運(yùn)算符,那么把 m_edit 傳遞給op1,并傳遞給變量calculator 相對(duì)運(yùn)算符對(duì)應(yīng)的值,輸入的第二個(gè)操作數(shù)傳遞給 op2,點(diǎn)擊等號(hào)根據(jù)cal

2、culator 的值進(jìn)行相應(yīng)運(yùn)算并輸出結(jié)果。假設(shè)點(diǎn)擊的是單目運(yùn)算符, 那么直接對(duì)其處理得出結(jié)果。假設(shè)點(diǎn)擊清零,那么m_edit 等于0。 設(shè)計(jì)思路流程圖如下(見下頁)。 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 圖1 計(jì)算器設(shè)計(jì)思路總流程圖 編輯框關(guān)聯(lián)變量 m_edit 保存至op2 選擇“=根據(jù)變 量 calculator 的值 進(jìn)行運(yùn)算 把結(jié)果保存到s 選擇運(yùn)算符 傳遞 信 息 給 變 量 calculator 輸入數(shù)據(jù)1 編輯框關(guān)聯(lián)變量 m_edit 保存至op1 輸出結(jié)果 結(jié)束 開始 輸入數(shù)據(jù)2 運(yùn)算符鑒別 編輯框關(guān)聯(lián)變量 m_edit 保存至x 雙目運(yùn)算符 單目運(yùn)算符 進(jìn)

3、行運(yùn)算 把結(jié)果保存到x 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 3 軟件設(shè)計(jì) 3.1 創(chuàng)立步驟 翻開Microsoft Visual C+ 6.0,選擇新建,在彈出框內(nèi)選擇MFC AppWizardexe工程, 輸入工程名Calculator 及其所在位置。將彈出MFCAppWizard-step 1 對(duì)話框,選擇根本對(duì) 話框,點(diǎn)擊完成。MFC AppWizard 建立基于對(duì)話窗口的程序框架。 3.2 界面設(shè)計(jì) 1、創(chuàng)立控件 在對(duì)話框上的適宜的位置畫出編輯框和下壓式按鈕。如圖2 所示。 圖2 繪制編輯框 在按鈕和編輯框?qū)傩詫?duì)話框中輸入控件的ID 值和標(biāo)題屬性。

4、如圖3 所示。 圖3 Push Button 屬性 按照上面的操作過程編輯其他按鈕和編輯框等對(duì)象的屬性。 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 表1 各對(duì)象屬性 對(duì)象 ID 標(biāo)題或說明 編輯框 IDC_EDIT1 結(jié)果顯示 按鈕 IDC_BUTTON0 0 按鈕 IDC_BUTTON1 1 按鈕 IDC_BUTTON2 2 按鈕 IDC_BUTTON3 3 按鈕 IDC_BUTTON4 4 按鈕 IDC_BUTTON5 5 按鈕 IDC_BUTTON6 6 按鈕 IDC_BUTTON7 7 按鈕 IDC_BUTTON8 8 按鈕 IDC_BUTTON9 9 按鈕 IDC_ BUTTONneg +/

5、- 按鈕 IDC_ BUTTONpot . 按鈕 IDC_ BUTTONadd + 按鈕 IDC_BUTTONsub - 按鈕 IDC_BUTTONmul * 按鈕 IDC_BUTTONdiv / 按鈕 IDC_BUTTONsqrt sqrt 按鈕 IDC_BUTTONCE CE 完成后界面如圖4 所示。 圖4 計(jì)算器界面 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 2、連接變量和代碼 1) 給編輯框連接變量。在編輯框上單擊鼠標(biāo)右鍵,在彈出菜單中選擇 ClassWizard 菜 單項(xiàng),彈出MFC ClassWizard 對(duì)話框,選擇Member Variables 選項(xiàng)卡,如圖5 所

6、示。 圖5 MFC ClassWizard 對(duì)話框中的Menber Variable 選項(xiàng)卡 單擊Add Variables 按鈕,在彈出的對(duì)話框中連接變量m_edit。變量類型設(shè)定為CString 型。如圖6 所示。 圖6 m_edit 屬性設(shè)置 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 2) 給“1按鈕連接代碼。在“1按鈕上單擊鼠標(biāo)右鍵,選擇 ClassWizard 菜單項(xiàng),在彈 出的對(duì)話框中選擇Messages Maps 選項(xiàng)卡,在Messages 列表框中選擇BN_CLICKED 項(xiàng), 即選擇單擊按鈕事件,如圖7 所示。 圖7 “1按鈕鏈接代碼對(duì)話框 3.3 關(guān)鍵

7、功能的實(shí)現(xiàn) 1)操作數(shù)的輸入 編輯框所關(guān)聯(lián)的變量為m_edit,程序開始時(shí)為零。每點(diǎn)擊一個(gè)數(shù)字鍵按鈕,就把它累 加到m_edit 里并刷新顯示。 2)單目運(yùn)算符功能的實(shí)現(xiàn) 單目運(yùn)算符中包含要執(zhí)行運(yùn)算的函數(shù)。 正負(fù)號(hào)功能的實(shí)現(xiàn) 利用語句 m_edit.FindOneOf("-")尋找操作數(shù)中是否有符號(hào)“-,假設(shè)沒有符號(hào),那么在字 符串m_edit 前添加“-。假設(shè)有符號(hào),那么把字符串型變量m_edit 轉(zhuǎn)變?yōu)楦↑c(diǎn)型,進(jìn)行相反數(shù) 運(yùn)算(對(duì)數(shù)值取負(fù)),再轉(zhuǎn)變?yōu)樽址屯ㄟ^傳遞給m_edit 輸出。 開方sqrt 功能的實(shí)現(xiàn) 利用語句x=sqrt(x),實(shí)現(xiàn)功能。 倒數(shù)功

8、能的實(shí)現(xiàn) 利用語句x=1/x,實(shí)現(xiàn)功能。 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 3)雙目運(yùn)算符功能的實(shí)現(xiàn) 執(zhí)行雙目運(yùn)算符把 m_edit 中的操作數(shù)值保存到變量 op1 中,然后把 m_edit 清零。再 將輸入的第二個(gè)操作數(shù)保存到變量op2 中。根據(jù)相應(yīng)的運(yùn)算符賦予變量calculator 相應(yīng)值, 執(zhí)行等號(hào)運(yùn)算時(shí),根據(jù)calculator 值選擇對(duì)應(yīng)運(yùn)算函數(shù),講運(yùn)算結(jié)果傳遞給m_edit 并輸出。 4)小數(shù)點(diǎn) 利用語句m_edit.FindOneOf(".") 尋找操作數(shù)中是否有符號(hào)“., 假設(shè)有不添加“.。假設(shè) 沒有判斷m_edit.GetLength(),假設(shè)大于0,添

9、加字符串“.;假設(shè)等于0,添加字符串 “0.。 4 結(jié)論與心得體會(huì) 經(jīng)過測(cè)試,得出結(jié)論為設(shè)計(jì)的計(jì)算器能夠完成功能描述內(nèi)容中的全部功能。 經(jīng)過2 個(gè)星期的課程設(shè)計(jì)實(shí)訓(xùn),在老師和同學(xué)的共同幫助下,順利完成該課程設(shè)計(jì), 收獲很大。 通過本次實(shí)訓(xùn),我在很多方面得到了很大提升。 首先在理論知識(shí)與實(shí)際操作能力的結(jié)合方面,通過具體應(yīng)用軟件的制作,課本中學(xué)習(xí) 到知識(shí)得到具體的應(yīng)用,對(duì)知識(shí)的理解更清晰、具體、全面,理論知識(shí)的實(shí)際應(yīng)用更加熟 練。對(duì)類、函數(shù)等概念的理解和應(yīng)用更加深刻。編程語言語句的應(yīng)用更為流利,穩(wěn)固了各 語句的使用方法和技巧。同時(shí),對(duì)編程的過程了解的更加清晰,熟練地掌握了很多課堂知 識(shí)之外的能力。

10、 在團(tuán)隊(duì)協(xié)作方面,我意識(shí)到了團(tuán)隊(duì)協(xié)作的重要意義,學(xué)到了如何從他人處尋得幫助和 與他人分享成果。從團(tuán)隊(duì)合作中我學(xué)習(xí)到了技術(shù)協(xié)作與人際交流雙方面的能力。懂得怎樣 通過團(tuán)隊(duì)協(xié)作提高效率。 另外,通過本次實(shí)訓(xùn),我充分意識(shí)到了當(dāng)前人才市場(chǎng)現(xiàn)況和自己的缺乏,對(duì)自己的現(xiàn) 況有了危機(jī)感,并制定了自己的開展方案,使自己確立明確的奮斗目標(biāo),為成為合格計(jì)算 機(jī)專業(yè)人才而努力。 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 5 附錄 關(guān)鍵源代碼 數(shù)字鍵程序代碼(以“1為例) void CCalculatorDlg:OnButton1() /數(shù)字鍵“1 if (k!=1) /判斷是否已點(diǎn)擊運(yùn)算符按鈕 m_edit=m_edit+&

11、quot;1" /如果k1 即沒有點(diǎn)擊運(yùn)算符,那么直接改變字符串 UpdateData(false); else m_edit="" /如果k=1 即點(diǎn)擊過運(yùn)算符,那么先清空編輯框 UpdateData(false); m_edit=m_edit+"1" UpdateData(false); k=0; 四那么運(yùn)算程序代碼(以“+為例) float op1=0,op2=0; char calculate; void CCalculatorDlg:OnButtonadd() k=1; /是否點(diǎn)擊過運(yùn)算符的條件,與數(shù)字鍵對(duì)應(yīng) calculate=&#

12、39;+' /傳度“+給變量calculator,與等號(hào)“=對(duì)應(yīng) UpdateData(true); op1=atof(m_edit); 開方sqrt 程序代碼 void CCalculatorDlg:OnBUTTONSqrt() k=1; UpdateData(true); 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 op1=atof(m_edit); if (op1<0) calculate='w' else calculate='s' 小數(shù)點(diǎn)程序代碼 void CCalculatorDlg:OnBUTTONpot() UpdateData(true);

13、 int a=0; for (int b=0;b=0) a=1; if (a=0&&m_edit.GetLength()>0)m_edit=m_edit+"." if (a=0&&m_edit.GetLength()=0)m_edit=m_edit+"0." UpdateData(false); 等號(hào)“=程序代碼 void CCalculatorDlg:OnButtonequal() UpdateData(true); op2=atof(m_edit); float s; switch(calculate) case

14、'+':s=op1+op2;break; /與運(yùn)算符鍵相對(duì)應(yīng)的運(yùn)算函數(shù) case'-':s=op1-op2;break; case'*':s=op1*op2;break; case'/':s=op1/op2;break; case's':s=sqrt(op1);break; case'w':s=0;break; 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 m_edit.Format("%f",s); UpdateData(false); 去除CE 程序代碼 void CCalculator

15、Dlg:OnButtonCE() m_edit="" UpdateData(false); 百分號(hào)程序代碼 void CCalculatorDlg:OnButtonperc() k=1; float x; UpdateData(true); x=atof(m_edit); x=x*100; m_edit.Format("%f",x); m_edit=m_edit+"%" UpdateData(false); 正負(fù)號(hào)(相反數(shù)) void CCalculatorDlg:OnButtonneg () k=1; if (m_edit.FindOneOf("-")>=0) float x; UpdateData(true); x=atof(m_edit); x=-x; m_edit.Format("%f",x); UpdateData(false); else 加中

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論