在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → 实现计算器的简单计算功能

实现计算器的简单计算功能

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:1.80M
  • 下载次数:7
  • 浏览次数:46
  • 发布时间:2022-07-11
  • 实例类别:常规C/C++编程
  • 发 布 人:清山
  • 文件格式:.rar
  • 所需积分:1
 相关标签: 简单计算器

实例介绍

【实例简介】实现计算器的简单计算功能

【实例截图】



// 简单计算器Dlg.cpp : implementation file
//

#include "stdafx.h"
#include "简单计算器.h"
#include "简单计算器Dlg.h"
#include <math.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
double m1,m2,m3;int aaa,flag;
class CAboutDlg : public CDialog
{
public:
    CAboutDlg();

// Dialog Data
    //{{AFX_DATA(CAboutDlg)
    enum { IDD = IDD_ABOUTBOX };
    //}}AFX_DATA

    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CAboutDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL

// Implementation
protected:
    //{{AFX_MSG(CAboutDlg)
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
    //{{AFX_DATA_INIT(CAboutDlg)
    //}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CAboutDlg)
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
    //{{AFX_MSG_MAP(CAboutDlg)
        // No message handlers
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyDlg dialog

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CMyDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CMyDlg)
    m_input = _T("");
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CMyDlg)
    DDX_Text(pDX, IDC_EDIT1, m_input);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
    //{{AFX_MSG_MAP(CMyDlg)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
    ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
    ON_BN_CLICKED(IDC_BUTTON15, OnButton15)
    ON_BN_CLICKED(IDC_BUTTON16, OnButton16)
    ON_BN_CLICKED(IDC_BUTTON17, OnButton17)
    ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
    ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
    ON_BN_CLICKED(IDC_BUTTON9, OnButton9)
    ON_BN_CLICKED(IDC_BUTTON11, OnButton11)
    ON_BN_CLICKED(IDC_BUTTON12, OnButton12)
    ON_BN_CLICKED(IDC_BUTTON13, OnButton13)
    ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
    ON_BN_CLICKED(IDC_BUTTON18, OnButton18)
    ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
    ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
    ON_BN_CLICKED(IDC_BUTTON22, OnButton22)
    ON_BN_CLICKED(IDC_BUTTON34, OnButton34)
    ON_BN_CLICKED(IDC_BUTTON26, OnButton26)
    ON_BN_CLICKED(IDC_BUTTON32, OnButton32)
    ON_BN_CLICKED(IDC_BUTTON33, OnButton33)
    ON_BN_CLICKED(IDC_BUTTON24, OnButton24)
    ON_BN_CLICKED(IDC_BUTTON25, OnButton25)
    ON_BN_CLICKED(IDC_BUTTON27, OnButton27)
    ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)

    ON_BN_CLICKED(IDC_BUTTON35, OnButton35)
    ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyDlg message handlers

BOOL CMyDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Add "About..." menu item to system menu.

    // 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->AppendMenu(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 dialog
    SetIcon(m_hIcon, TRUE);         // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
   
    // TODO: Add extra initialization here
   
    return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
        CAboutDlg dlgAbout;
        dlgAbout.DoModal();
    }
    else
    {
        CDialog::OnSysCommand(nID, lParam);
    }
}

// If you add a minimize button to your dialog, you 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 CMyDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting

        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

        // Center icon in client rectangle
        int 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 icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMyDlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}

void CMyDlg::OnButton1()
{
    m_input=m_input.Left(m_input.GetLength()-1);
    UpdateData(false);  
}


void CMyDlg::OnButton3()
{   m_input ="1";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton5()
{   m_input ="3";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton15()
{   m_input ="4";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton16()
{   m_input ="5";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton17()
{   m_input ="6";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton7()
{   m_input ="7";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton8()
{   m_input ="8";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton9()
{   m_input ="9";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton11()
{   m_input ="0";
    UpdateData(false);
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton12()
{
    if(flag==1)
        MessageBox("你又搞BUG了");
        else{
    m_input =".";
    UpdateData(false);  // TODO: Add your control notification handler code here
    flag=1;
    }
   
   
}

void CMyDlg::OnButton13()
{UpdateData(TRUE);
    switch (aaa)
    {
    case 1:
        m2=atof(m_input.GetBuffer(0));
        m3=m1 m2;

       
        break;
       
    case 2:
        m2=atof(m_input.GetBuffer(0));
        m3=m1-m2;
   
       
        break;
   
    case 3:
        m2=atof(m_input.GetBuffer(0));
        m3=m1*m2;
   
       
        break;
   
    case 4:
             m2=atof(m_input.GetBuffer(0));
             if(m2==0)
                 MessageBox("被除数不能为0");
            else;
             {
                 m3=m1/m2;
                 
            }
    break;
    }
        flag=0;

        m_input.Format(("%f"),m3);
        UpdateData(false);
        m_input="";
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton6()
{
    m1=atof(m_input.GetBuffer(0));
    aaa=1;
    m_input="";
    UpdateData(false);
    flag=0;
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton18()
{  
    m1=atof(m_input.GetBuffer(0));
    aaa=2;
    m_input="";
    UpdateData(false);
    flag=0;
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton10()
{
    m1=atof(m_input.GetBuffer(0));
    aaa=3;
    m_input="";
    UpdateData(false);
    flag=0; // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton14()
{
    m1=atof(m_input.GetBuffer(0));
    aaa=4;
    m_input="";
    UpdateData(false);
    flag=0; // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton22()
{
    m1=atof(m_input.GetBuffer(0));
    m2=sqrt(m1);
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;// TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton34()
{
    m1=atof(m_input.GetBuffer(0));
    m2=m1*m1;
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;// TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton26()
{
    m1=atof(m_input.GetBuffer(0));
    m2=m1*m1*m1;
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton32()
{
    m1=atof(m_input.GetBuffer(0));
    m2=sin(m1);
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;     // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton33()
{
    m1=atof(m_input.GetBuffer(0));
    m2=cos(m1);
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;// TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton24()
{
    m1=atof(m_input.GetBuffer(0));
    m2=tan(m1);
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;// TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton25()
{
    m1=atof(m_input.GetBuffer(0));
    m2=1/tan(m1);
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;// TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton27()
{
    m1=atof(m_input.GetBuffer(0));
    m2=1/m1;
    m_input.Format(("%f"),m2);
    UpdateData(false);
    flag=0;// TODO: Add your control notification handler code here
   
}


void CMyDlg::OnChangeEdit1()
{
    // TODO: If this is a RICHEDIT control, the control will not
    // send this notification unless you override the CDialog::OnInitDialog()
    // function and call CRichEditCtrl().SetEventMask()
    // with the ENM_CHANGE flag ORed into the mask.
   
    // TODO: Add your control notification handler code here
   
}

void CMyDlg::OnButton35()
{
    // TODO: Add your control notification handler code here
   
    m_input="";
    UpdateData(0);
    flag=0;
}

void CMyDlg::OnButton4()
{
    m_input ="2";
    UpdateData(false);  // TODO: Add your control notification handler code here
   
}

【核心代码】

.
├── testPPI.suo
├── 好例子网_简单计算器.rar
└── 简单计算器
    ├── Debug
    │   ├── StdAfx.obj
    │   ├── vc60.idb
    │   ├── vc60.pdb
    │   ├── 简单计算器.exe
    │   ├── 简单计算器.ilk
    │   ├── 简单计算器.obj
    │   ├── 简单计算器.pch
    │   ├── 简单计算器.pdb
    │   ├── 简单计算器.res
    │   └── 简单计算器Dlg.obj
    ├── ReadMe.txt
    ├── Resource.h
    ├── StdAfx.cpp
    ├── StdAfx.h
    ├── res
    │   ├── 简单计算器.ico
    │   └── 简单计算器.rc2
    ├── 简单计算器.aps
    ├── 简单计算器.clw
    ├── 简单计算器.cpp
    ├── 简单计算器.dsp
    ├── 简单计算器.dsw
    ├── 简单计算器.h
    ├── 简单计算器.ncb
    ├── 简单计算器.opt
    ├── 简单计算器.plg
    ├── 简单计算器.rc
    ├── 简单计算器Dlg.cpp
    └── 简单计算器Dlg.h

3 directories, 30 files



标签: 简单计算器

实例下载地址

实现计算器的简单计算功能

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警