




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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)算、開(kāi)方、倒數(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ì)思路流程圖如下(見(jiàn)下頁(yè))。 加中實(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é)束 開(kāi)始 輸入數(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)立步驟 翻開(kāi)Microsoft Visual C+ 6.0,選擇新建,在彈出框內(nèi)選擇MFC AppWizardexe工程, 輸入工程名Calculator 及其所在位置。將彈出MFCAppWizard-step 1 對(duì)話(huà)框,選擇根本對(duì) 話(huà)框,點(diǎn)擊完成。MFC AppWizard 建立基于對(duì)話(huà)窗口的程序框架。 3.2 界面設(shè)計(jì) 1、創(chuàng)立控件 在對(duì)話(huà)框上的適宜的位置畫(huà)出編輯框和下壓式按鈕。如圖2 所示。 圖2 繪制編輯框 在按鈕和編輯框?qū)傩詫?duì)話(huà)框中輸入控件的ID 值和標(biāo)題屬性。
4、如圖3 所示。 圖3 Push Button 屬性 按照上面的操作過(guò)程編輯其他按鈕和編輯框等對(duì)象的屬性。 加中實(shí)訓(xùn)課程設(shè)計(jì)-計(jì)算器設(shè)計(jì)報(bào)告 表1 各對(duì)象屬性 對(duì)象 ID 標(biāo)題或說(shuō)明 編輯框 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ì)話(huà)框,選擇Member Variables 選項(xiàng)卡,如圖5 所
6、示。 圖5 MFC ClassWizard 對(duì)話(huà)框中的Menber Variable 選項(xiàng)卡 單擊Add Variables 按鈕,在彈出的對(duì)話(huà)框中連接變量m_edit。變量類(lèi)型設(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ì)話(huà)框中選擇Messages Maps 選項(xiàng)卡,在Messages 列表框中選擇BN_CLICKED 項(xiàng), 即選擇單擊按鈕事件,如圖7 所示。 圖7 “1按鈕鏈接代碼對(duì)話(huà)框 3.3 關(guān)鍵
7、功能的實(shí)現(xiàn) 1)操作數(shù)的輸入 編輯框所關(guān)聯(lián)的變量為m_edit,程序開(kāi)始時(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) 利用語(yǔ)句 m_edit.FindOneOf("-")尋找操作數(shù)中是否有符號(hào)“-,假設(shè)沒(méi)有符號(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)樽址屯ㄟ^(guò)傳遞給m_edit 輸出。 開(kāi)方sqrt 功能的實(shí)現(xiàn) 利用語(yǔ)句x=sqrt(x),實(shí)現(xiàn)功能。 倒數(shù)功
8、能的實(shí)現(xiàn) 利用語(yǔ)句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) 利用語(yǔ)句m_edit.FindOneOf(".") 尋找操作數(shù)中是否有符號(hào)“., 假設(shè)有不添加“.。假設(shè) 沒(méi)有判斷m_edit.GetLength(),假設(shè)大于0,添
9、加字符串“.;假設(shè)等于0,添加字符串 “0.。 4 結(jié)論與心得體會(huì) 經(jīng)過(guò)測(cè)試,得出結(jié)論為設(shè)計(jì)的計(jì)算器能夠完成功能描述內(nèi)容中的全部功能。 經(jīng)過(guò)2 個(gè)星期的課程設(shè)計(jì)實(shí)訓(xùn),在老師和同學(xué)的共同幫助下,順利完成該課程設(shè)計(jì), 收獲很大。 通過(guò)本次實(shí)訓(xùn),我在很多方面得到了很大提升。 首先在理論知識(shí)與實(shí)際操作能力的結(jié)合方面,通過(guò)具體應(yīng)用軟件的制作,課本中學(xué)習(xí) 到知識(shí)得到具體的應(yīng)用,對(duì)知識(shí)的理解更清晰、具體、全面,理論知識(shí)的實(shí)際應(yīng)用更加熟 練。對(duì)類(lèi)、函數(shù)等概念的理解和應(yīng)用更加深刻。編程語(yǔ)言語(yǔ)句的應(yīng)用更為流利,穩(wěn)固了各 語(yǔ)句的使用方法和技巧。同時(shí),對(duì)編程的過(guò)程了解的更加清晰,熟練地掌握了很多課堂知 識(shí)之外的能力。
10、 在團(tuán)隊(duì)協(xié)作方面,我意識(shí)到了團(tuán)隊(duì)協(xié)作的重要意義,學(xué)到了如何從他人處尋得幫助和 與他人分享成果。從團(tuán)隊(duì)合作中我學(xué)習(xí)到了技術(shù)協(xié)作與人際交流雙方面的能力。懂得怎樣 通過(guò)團(tuán)隊(duì)協(xié)作提高效率。 另外,通過(guò)本次實(shí)訓(xùn),我充分意識(shí)到了當(dāng)前人才市場(chǎng)現(xiàn)況和自己的缺乏,對(duì)自己的現(xiàn) 況有了危機(jī)感,并制定了自己的開(kāi)展方案,使自己確立明確的奮斗目標(biāo),為成為合格計(jì)算 機(jī)專(zhuān)業(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 即沒(méi)有點(diǎn)擊運(yùn)算符,那么直接改變字符串 UpdateData(false); else m_edit="" /如果k=1 即點(diǎn)擊過(guò)運(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)擊過(guò)運(yùn)算符的條件,與數(shù)字鍵對(duì)應(yīng) calculate=
12、39;+' /傳度“+給變量calculator,與等號(hào)“=對(duì)應(yīng) UpdateData(true); op1=atof(m_edit); 開(kāi)方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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中醫(yī)藥適宜技術(shù)的現(xiàn)狀與發(fā)展趨勢(shì)分析
- 2025年網(wǎng)絡(luò)游戲開(kāi)發(fā)與設(shè)計(jì)―實(shí)務(wù)能力考試卷及答案
- 孕產(chǎn)婦妊娠風(fēng)險(xiǎn)評(píng)估
- 2025年教育心理學(xué)基礎(chǔ)理論復(fù)習(xí)題及答案
- 2025年空間科學(xué)與技術(shù)基礎(chǔ)知識(shí)考試卷及答案
- 2025年保險(xiǎn)學(xué)基礎(chǔ)知識(shí)與政策考試試題及答案
- 2025年國(guó)際商務(wù)專(zhuān)業(yè)碩士研究生入學(xué)考試試題及答案
- 2025年公共政策評(píng)估與決策分析考試題及答案
- 物資歸屬安全管理制度
- 物資車(chē)輛出入管理制度
- 測(cè)繪類(lèi)技術(shù)設(shè)計(jì)管理制度
- 中醫(yī)艾灸盒課件下載
- 2025-2030中國(guó)激光噴碼機(jī)行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 浙江省溫州市名校2025屆七下數(shù)學(xué)期末考試試題含解析
- 《鐵路旅客運(yùn)輸組織(活頁(yè)式)》課件 7.3 旅客傷害應(yīng)急處置
- 公司合同月結(jié)協(xié)議書(shū)
- 2025年海綿項(xiàng)目評(píng)估報(bào)告
- GB/T 45545-2025廚房家具配合尺寸
- 臨床血標(biāo)本采集錯(cuò)誤事件的根因分析
- 夫妻承諾書(shū)合同協(xié)議
- 云南2024年云南省社會(huì)科學(xué)院中國(guó)(昆明)南亞?wèn)|南亞研究院招聘高層次人才筆試歷年參考題庫(kù)附帶答案詳解
評(píng)論
0/150
提交評(píng)論