




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、實驗設計方案(fng n)設計題目計算器實驗目的:創建一個基于對話框的應用程序Calculator.軟硬件環境: win 7 系統 參考資料一本visual c+ 6.0 筆記本一臺 已有代碼一份。理論依據: 1. 實現基本的加、減、乘、除、求平方根,求倒數等基本運算,實現求角度的正弦、余弦、正切等基本運算、實現求指數、自然對數、常用對數等基本運算。 計算器加減運算乘除運算正弦余弦平方根倒數指數對數輸出的結果5算法步驟及注意事項 打開visual c+ 6.0創建并添加“計算器”對話框1選擇“文件”打開項目Calculator2添加一個新的對話框資源,將ID號改為IDD_CALCULATO
2、R_DIALOG,標題為“計算器”。3.調整對話框的大小,將“確定”和“取消”按鈕取消4.像對話框列表添加控件 添加的控件 ID號 標題 其他屬性編輯框IDC_DISPLAY復選框IDC_SCIENTIFIC科學型添加組 取消制表站復選框IDC_STANDARD標準型取消制表站復選框IDC_DEGREE度數添加組 取消制表站復選框IDC_RAD弧度取消制表站組框不改空白取消制表站組框不改空白取消制表站按鈕IDC_00無按鈕IDC_11無按鈕IDC_22無按鈕IDC_33無按鈕IDC_44無按鈕IDC_55無按鈕IDC_66無按鈕IDC_77無按鈕IDC_88無按鈕IDC_99無按鈕IDC_SI
3、GN +/-無按鈕IDC_POINT .無按鈕IDC_ADD + 無按鈕IDC_MINUS -無按鈕IDC_MULTIPLY * 無按鈕IDC_DIVID/ 無按鈕IDC_CLEARC無按鈕IDC_SQRTsqrt無按鈕IDC_RECIPROCAL1/x無按鈕IDC_EQUAL = 無按鈕IDC_EXPexp無按鈕IDC_SQUAR10 x無按鈕IDC_COScos無按鈕IDC_SINsin無按鈕IDC_LNln無按鈕IDC_LOGlog無按鈕IDC_TANtan無按鈕IDC_FACTORIALn!無 5.將每個按鈕的ID和標題改成和上表一樣 6.為下面幾個添加成員函數 ID號 類型 成員ID
4、C_DEGREE int m_isDegreeIDC_DISPLAY CString m_resultIDC_SENTIFIC int m_scientific7.雙擊按鈕 為每個控件添加消息映射代碼void CCalculatorDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = Ge
5、tSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();void CCalculatorDlg:OnAdd() / TODO: Add your control not
6、ification handler code hereCalculate();m_operator = OpAdd;void CCalculatorDlg:OnMinus() / TODO: Add your control notification handler code hereCalculate();m_operator = OpSubtract;void CCalculatorDlg:OnDivid() / TODO: Add your control notification handler code hereCalculate();m_operator = OpDivide;vo
7、id CCalculatorDlg:OnMultiply() / TODO: Add your control notification handler code hereCalculate();m_operator = OpMultiply;void CCalculatorDlg:OnEqual() / TODO: Add your control notification handler code hereCalculate();m_operator = OpNone;void CCalculatorDlg:OnSign() / TODO: Add your control notific
8、ation handler code herem_operand*=-1;UpdateDisplay();void CCalculatorDlg:OnSqrt() / TODO: Add your control notification handler code here m_func=FuncSqrt;Run_Func();void CCalculatorDlg:OnReciprocal() / TODO: Add your control notification handler code here m_func=FuncRec;Run_Func();void CCalculatorDl
9、g:OnPoint() / TODO: Add your control notification handler code herem_bCoff=1;UpdateDisplay();void CCalculatorDlg:OnClear() / TODO: Add your control notification handler code herem_operator = OpNone;m_operand = 0;m_accum = 0;m_bOperandAvail = FALSE;m_errorState = ErrNone;m_coff=0.1;UpdateDisplay();vo
10、id CCalculatorDlg:OnLog() / TODO: Add your control notification handler code herem_func=FuncLog;Run_Func();void CCalculatorDlg:OnLn() / TODO: Add your control notification handler code herem_func=FuncLn;Run_Func();void CCalculatorDlg:OnFactorial() / TODO: Add your control notification handler code h
11、ere m_func=FuncN;Run_Func();void CCalculatorDlg:OnExp() / TODO: Add your control notification handler code herem_func=FuncExp;Run_Func();void CCalculatorDlg:OnSentific() / TODO: Add your control notification handler code herem_bIsExpand=1;m_sentific=0;ExpandToSentific();void CCalculatorDlg:OnSin() /
12、 TODO: Add your control notification handler code herem_func=FuncSin;Run_Func();void CCalculatorDlg:OnSquar() / TODO: Add your control notification handler code here m_func=FuncSqre;Run_Func();void CCalculatorDlg:OnTan() / TODO: Add your control notification handler code herem_func=FuncTan;Run_Func(
13、);void CCalculatorDlg:OnStandard() / TODO: Add your control notification handler code herem_bIsExpand=0;m_sentific=1;ExpandToSentific();void CCalculatorDlg:OnDegree() / TODO: Add your control notification handler code herem_isDegree=0;DtoR=(2*PI)/360;UpdateData(FALSE);void CCalculatorDlg:OnRad() / T
14、ODO: Add your control notification handler code herem_isDegree=1;DtoR=1;UpdateData(TRUE);void CCalculatorDlg:OnCos() / TODO: Add your control notification handler code herem_func=FuncCos;Run_Func();8.在CCalculatorDlg.h的public下添加以下的成員變量 float m_operand;float m_accum;BOOL m_bCoff;float m_coff;float Dto
15、R;BOOL m_bIsExpand;CWnd* m_pMark;CRect rcSentific;CRect rcStandard;Operator m_operator;Func m_func;CalcError m_errorState;BOOL m_bOperandAvail;void Calculate();void Run_Func();void ExpandToSentific();void SetVisibleCtrl();void UpdateDisplay();9.鼠標右擊CCalculatorDlg,選擇Add Member Function 為其添加成員函數。函數類型
16、函數描述Void OnOperandInputVoid CalculateVoid UpdateDisplayBOOL KeyboardBOOL PreTranslateMessageVoid Run_FuncVoid ExpandToSentificVoid SetVisibleCtrl10.為上面函數添加如下代碼。void CCalculatorDlg:OnOperandInput(UINT nID)ASSERT(nID = IDC_0 & nID = 0 & szButton0 =1;i-)/中間 m_operand*=i;UpdateDisplay();/m_func=FuncNone
17、;void CCalculatorDlg:ExpandToSentific()if(m_bIsExpand)SetWindowPos(NULL,0,0,rcSentific.Width(),rcSentific.Height(),SWP_NOMOVE|SWP_NOZORDER);SetVisibleCtrl();elseSetWindowPos(NULL,0,0,rcStandard.Width(),rcSentific.Height(),SWP_NOMOVE|SWP_NOZORDER);SetVisibleCtrl();UpdateData(FALSE);void CCalculatorDl
18、g:SetVisibleCtrl()CWnd* pCtrl=GetWindow(GW_CHILD);CRect rcTest;CRect rcControl;CRect rcShow;GetWindowRect(rcShow);while(pCtrl!=NULL)pCtrl-GetWindowRect(rcControl);if(rcTest.IntersectRect(rcShow,rcControl)pCtrl-EnableWindow(TRUE);elsepCtrl-EnableWindow(FALSE);pCtrl=pCtrl-GetWindow(GW_HWNDNEXT);11.為CalculatorDlg.cpp添加頭文件#include math.h 。6實驗數據處理方法 經過自己的實驗,找出了實驗中的相關算法,使用了數據結構中的鏈式存儲和順序存儲,以及圖的遍歷,矩陣的壓縮存儲和廣義表。同時,也使用了動態存儲管理等。7參考文獻 CSDN 論壇計算器代碼一份, Windows程序設計教程書籍一本 數據結構書一本等。8.小結 經過了這次編寫程序,我發現了自己
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年下水道疏通清洗車合作協議書
- 大型寵物護欄、網及圈企業ESG實踐與創新戰略研究報告
- 無石棉紙基摩擦材料企業數字化轉型與智慧升級戰略研究報告
- 微波終端機企業數字化轉型與智慧升級戰略研究報告
- 農林牧漁業專用機械制造企業數字化轉型與智慧升級戰略研究報告
- 制粉設備企業縣域市場拓展與下沉戰略研究報告
- 原動設備企業縣域市場拓展與下沉戰略研究報告
- 新能源汽車電池(組)管理系統企業數字化轉型與智慧升級戰略研究報告
- 碳化硅納米粉體企業數字化轉型與智慧升級戰略研究報告
- 微波硫化裝置企業ESG實踐與創新戰略研究報告
- 重慶外國語學校2024屆化學高二第一學期期中綜合測試模擬試題含解析
- 圖形與坐標復習(評學科帶頭人)
- 九年級上冊歷史知識點復習課件(部編版)
- 脫碳塔CO2脫氣塔設計計算
- 2022年四川省阿壩州中考物理真題及答案
- 香港匯豐銀行大廈結構選型
- 房屋硬裝裝修合同范本
- 2023年東莞市人民醫院醫師規范化培訓招生(放射科)考試參考題庫含答案
- 勾頭作業施工方案
- 中醫醫院重癥醫學科建設與管理指南
- 創傷性網胃炎
評論
0/150
提交評論