




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、/ CKcalculateDlg.cpp : implementation file/#include "stdafx.h"#include "math.h"#include "CKcalculate.h"#include "CKcalculateDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/double m_first;/存儲一次運算的第一個操作數及一次運算的結果/ dou
2、ble m_second; /存儲一次運算的第二個操作數/CString m_operator;/存儲運算符/double m_coff;/存儲小數點的系數權值/ CAboutDlg dialog used for App About/class CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(C
3、AboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange
4、* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CCKcalculateDlg dialogCCKcalculateDlg:CCKcalculateDlg(CWnd* pParent /*=NULL*/): CDialog(CCKcalculateDlg:IDD, pParent)
5、/void UpdateDisplay(double);/void Calculate(void);/AFX_DATA_INIT(CCKcalculateDlg)/isXdeY=false;m_display = _T("");m_first=0.0;m_second=0.0;m_operator=_T("+");m_coff=0;m_display=_T("0.0");/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win
6、32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void CCKcalculateDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CCKcalculateDlg)DDX_Text(pDX, IDC_DISPLAY, m_display);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CCKcalculateDlg, CDialog)/AFX_MSG_MAP(CCKcalculateDlg)ON_WM_SYSCOM
7、MAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON0, OnButton0)ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)O
8、N_BN_CLICKED(IDC_BUTTON7, OnButton7)ON_BN_CLICKED(IDC_BUTTON8, OnButton8)ON_BN_CLICKED(IDC_BUTTON9, OnButton9)ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)ON_BN_CLICKED(IDC_BUTTON_MINUS, OnButtonMinus)ON_BN_CLICKED(IDC_BUTTON_MUTIPLY, OnButtonMutiply)ON_BN_CLICKED(IDC_BUTTON_DIV, OnButtonDiv)ON_BN_CLIC
9、KED(IDC_BUTTON_SIGH, OnButtonSigh)ON_BN_CLICKED(IDC_BUTTON_POINT, OnButtonPoint)ON_BN_CLICKED(IDC_BUTTON_CLEAR, OnButtonClear)ON_BN_CLICKED(IDC_BUTTON_SQRT, OnButtonSqrt)ON_BN_CLICKED(IDC_BUTTON_RECI, OnButtonReci)ON_BN_CLICKED(IDC_BUTTON_EQUAL, OnButtonEqual)ON_BN_CLICKED(IDC_BUTTON_SIN, OnButtonSi
10、n)ON_BN_CLICKED(IDC_BUTTON_COS, OnButtonCos)ON_BN_CLICKED(IDC_BUTTON_LOG, OnButtonLog)ON_BN_CLICKED(IDC_BUTTON_XDEY, OnButtonXdeY)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CCKcalculateDlg message handlers/BOOL CCKcalculateDlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system men
11、u./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->Appen
12、dMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a SetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra ini
13、tialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CCKcalculateDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, yo
14、u will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CCKcalculateDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(),
15、 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(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();
16、/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CCKcalculateDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;/按鍵代碼/void CCKcalculateDlg:OnButton0() / TODO: Add your control notification handler code hereonButtonN(0);void CCKcalculateDlg:OnButto
17、n1() / TODO: Add your control notification handler code hereonButtonN(1);void CCKcalculateDlg:OnButton2() / TODO: Add your control notification handler code hereonButtonN(2);void CCKcalculateDlg:OnButton3() / TODO: Add your control notification handler code hereonButtonN(3);void CCKcalculateDlg:OnBu
18、tton4() / TODO: Add your control notification handler code hereonButtonN(4);void CCKcalculateDlg:OnButton5() / TODO: Add your control notification handler code hereonButtonN(5);void CCKcalculateDlg:OnButton6() / TODO: Add your control notification handler code hereonButtonN(6);void CCKcalculateDlg:O
19、nButton7() / TODO: Add your control notification handler code hereonButtonN(7);void CCKcalculateDlg:OnButton8() / TODO: Add your control notification handler code hereonButtonN(8);void CCKcalculateDlg:OnButton9() / TODO: Add your control notification handler code hereonButtonN(9);/計算按鍵代碼/void CCKcal
20、culateDlg:OnButtonAdd() / TODO: Add your control notification handler code hereCalculate();m_operator="+"void CCKcalculateDlg:OnButtonMinus() / TODO: Add your control notification handler code hereCalculate();m_operator="-"void CCKcalculateDlg:OnButtonMutiply() / TODO: Add your c
21、ontrol notification handler code hereCalculate();m_operator="*"void CCKcalculateDlg:OnButtonDiv() / TODO: Add your control notification handler code hereCalculate();m_operator="/"void CCKcalculateDlg:OnButtonSigh() / TODO: Add your control notification handler code herem_second=-
22、m_second; UpdateDisplay(m_second);void CCKcalculateDlg:OnButtonPoint() / TODO: Add your control notification handler code herem_coff =0.1;void CCKcalculateDlg:OnButtonClear() / TODO: Add your control notification handler code herem_first=0.0;m_second=0.0;m_operator="+"m_coff = 1.0;UpdateDi
23、splay(0.0);void CCKcalculateDlg:OnButtonSqrt() / TODO: Add your control notification handler code hereif( m_second=0 )m_first=sqrt(m_first);UpdateDisplay(m_first);else m_second=sqrt(m_second);UpdateDisplay(m_second); void CCKcalculateDlg:OnButtonReci() / TODO: Add your control notification handler c
24、ode hereif( fabs(m_second ) < 0.000001 && fabs( m_first )<0.000001)m_display="除數不能為零"UpdateDisplay(false);return;if( fabs(m_second ) < 0.000001)m_first=1.0/m_first;UpdateDisplay(m_first);elsem_second=1.0/m_second;UpdateDisplay(m_second);void CCKcalculateDlg:OnButtonEqual()
25、 / TODO: Add your control notification handler code hereXdeY();Calculate();void CCKcalculateDlg:UpdateDisplay(double ck)m_display.Format(_T("%f"),ck);int i=m_display.GetLength();/格式化輸出,將輸出結果后的零截去while(m_display.GetAt(i-1)='0') m_display.Delete(i-1,1);i-;/更新編輯框變量m_displayUpdateData(
26、false); void CCKcalculateDlg:Calculate(void)/將前一次數據與當前數據進行運算,作為下次的第一操作數,并在編輯框顯示switch(m_operator.GetAt(0)case '+': m_first+=m_second;break;case '-': m_first-=m_second;break;case '*': m_first*=m_second;break;case '/':if( fabs(m_second ) <= 0.000001)m_display="除
27、數不能為0"UpdateData(false);return;m_first/=m_second;break;m_second=0.0;m_coff=1.0;m_operator=_T("+");/更新編輯框顯示內容UpdateDisplay(m_first);void CCKcalculateDlg:onButtonN(int n)if(m_coff=1.0)/作為整數輸入數字時m_second=m_second*10+n;else/作為小數輸入數字m_second=m_second+n*m_coff;m_coff*=0.1; /更新編輯框的數字顯示Update
28、Display(m_second);void CCKcalculateDlg:OnButtonSin() / TODO: Add your control notification handler code herem_second=m_second*m_PI/180;m_second=sin(m_second);UpdateDisplay(m_second);void CCKcalculateDlg:OnButtonCos() / TODO: Add your control notification handler code herem_second=m_second*m_PI/180;m
29、_second=cos(m_second);UpdateDisplay(m_second);void CCKcalculateDlg:OnButtonLog() / TODO: Add your control notification handler code herem_second=log10(m_second);UpdateDisplay(m_second);void CCKcalculateDlg:OnButtonXdeY() / TODO: Add your control notification handler code heretemp=m_second;m_second=0
30、.0; UpdateDisplay(m_second); isXdeY=true;void CCKcalculateDlg:XdeY()if(isXdeY)m_second=m_second;m_second=pow(temp,m_second);/以下是CKcalculateDlg.h代碼/ /CKcalculateDlg.h : header file/#if !defined(AFX_CKCALCULATEDLG_H_8DEB211E_CFCF_44C8_895C_BEF4E77EBE6C_INCLUDED_)#define AFX_CKCALCULATEDLG_H_8DEB211E_C
31、FCF_44C8_895C_BEF4E77EBE6C_INCLUDED_#if _MSC_VER > 1000#pragma once#endif / _MSC_VER > 1000/ CCKcalculateDlg dialogclass CCKcalculateDlg : public CDialog / Constructionpublic:void XdeY(void);bool isXdeY;double temp;double m_PI;void onButtonN(int n);void UpdateDisplay(double ck);void Calculate(
32、);CCKcalculateDlg(CWnd* pParent = NULL);/ standard constructor/ Dialog Data/AFX_DATA(CCKcalculateDlg)enum IDD = IDD_CKCALCULATE_DIALOG ;CStringm_display;/AFX_DATAdouble m_first;/存儲一次運算的第一個操作數及一次運算的結果double m_second;/存儲一次運算的第二個操作數CString m_operator;/存儲運算符double m_coff;/存儲小數點的系數權值/ ClassWizard generated virtual function overrides/ AFX_VIRTUAL(CCKcalculateDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotecte
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國天線和電纜分析儀行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國在線預約計劃軟件行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國固定倒角機行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國可折疊鋁管行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國雙鼓磁選機行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國去污機行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國化妝塑料用品行業市場發展分析及投資前景與投資策略研究報告
- 2025-2030中國功能復合材料行業發展趨勢與前景展望戰略研究報告
- 2025-2030中國共享按摩椅行業市場深度調研及投資前景與投資策略研究報告
- 2025-2030中國便攜式水質pH計行業市場發展趨勢與前景展望戰略研究報告
- JJF 1319-2011傅立葉變換紅外光譜儀校準規范
- GB 26851-2011火災聲和/或光警報器
- 司法鑒定人執業能力評估業務理論知識考試題庫
- 短語動詞課件
- 警犬行為理論考試題庫(含答案)
- 《羅密歐與朱麗葉》劇本
- 7694E頂空進樣器簡易操作手冊
- 河流納污能力計算
- 鉆井液防塌機理與措施-第六組
- 停車場應急預案
- 研究生在讀證明.docx
評論
0/150
提交評論