MFC计算器项目——日期计算模块

计算器日期计算模块(运行效果图参见计算器项目综述

主要实现两个功能(与windows计算器中的日期计算功能一致)

1.给定两个时间,计算日期差

2.给出基础时间和时间差,计算目标时间

该模块开发文档截图


核心代码如下:

// MyDlg_1.cpp : implementation file
//

#include "stdafx.h"
#include "简化调试.h"
//#include "MyDlg_1.h"
#include "cstdlib"
#inclu
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC(Microsoft Foundation Class)是微软公司开发的一种基于 Windows 操作系统的 C++ 类库,常用于 Windows 平台下的应用程序开发。下面是一个简单的 MFC 计算器的实现步骤: 1. 创建一个 MFC 应用程序项目,选择“单文档”模板。 2. 在应用程序视图中添加一个对话框,用于显示计算器界面。 3. 在对话框中添加按钮,分别对应数字、运算符和功能键(如清空、等于、退格等)。 4. 在对话框类中添加相应的变量和控件变量,用于实现计算器的功能。 5. 在对话框类中添加响应按钮点击事件的函数,实现计算器的逻辑。 6. 在应用程序类中设置主窗口为对话框,并启动应用程序。 下面是一个简单的 MFC 计算器的代码示例: ``` // CalculatorDlg.h 文件 class CCalculatorDlg : public CDialogEx { public: CCalculatorDlg(CWnd* pParent = nullptr); enum { IDD = IDD_CALCULATOR_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); virtual BOOL OnInitDialog(); DECLARE_MESSAGE_MAP() private: CString m_strResult; double m_dOperand1, m_dOperand2; int m_nOperator; BOOL m_bNewNumber; void AppendNumber(int nNumber); void AppendOperator(int nOperator); void Calculate(); public: afx_msg void OnBnClickedBtn0(); afx_msg void OnBnClickedBtn1(); // 添加其他数字按钮的响应函数 afx_msg void OnBnClickedBtnAdd(); afx_msg void OnBnClickedBtnSubtract(); // 添加其他运算符按钮的响应函数 afx_msg void OnBnClickedBtnClear(); afx_msg void OnBnClickedBtnEqual(); afx_msg void OnBnClickedBtnBackspace(); // 添加其他功能键按钮的响应函数 afx_msg void OnEnChangeEditResult(); }; // CalculatorDlg.cpp 文件 CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_CALCULATOR_DIALOG, pParent) , m_strResult(_T("")) , m_dOperand1(0) , m_dOperand2(0) , m_nOperator(0) , m_bNewNumber(TRUE) { } void CCalculatorDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_RESULT, m_strResult); } BOOL CCalculatorDlg::OnInitDialog() { CDialogEx::OnInitDialog(); m_strResult = "0"; UpdateData(FALSE); return TRUE; } void CCalculatorDlg::AppendNumber(int nNumber) { if (m_bNewNumber) { m_strResult = ""; m_bNewNumber = FALSE; } m_strResult += CString(nNumber + '0'); UpdateData(FALSE); } void CCalculatorDlg::AppendOperator(int nOperator) { if (!m_bNewNumber) { Calculate(); } m_dOperand1 = _ttof(m_strResult); m_nOperator = nOperator; m_bNewNumber = TRUE; } void CCalculatorDlg::Calculate() { m_dOperand2 = _ttof(m_strResult); switch (m_nOperator) { case IDC_BTN_ADD: m_dOperand1 += m_dOperand2; break; case IDC_BTN_SUBTRACT: m_dOperand1 -= m_dOperand2; break; // 添加其他运算符的计算 } m_strResult.Format("%.2f", m_dOperand1); UpdateData(FALSE); } void CCalculatorDlg::OnBnClickedBtn0() { AppendNumber(0); } void CCalculatorDlg::OnBnClickedBtn1() { AppendNumber(1); } // 添加其他数字按钮的响应函数 void CCalculatorDlg::OnBnClickedBtnAdd() { AppendOperator(IDC_BTN_ADD); } void CCalculatorDlg::OnBnClickedBtnSubtract() { AppendOperator(IDC_BTN_SUBTRACT); } // 添加其他运算符按钮的响应函数 void CCalculatorDlg::OnBnClickedBtnClear() { m_strResult = "0"; m_dOperand1 = 0; m_dOperand2 = 0; m_nOperator = 0; m_bNewNumber = TRUE; UpdateData(FALSE); } void CCalculatorDlg::OnBnClickedBtnEqual() { Calculate(); } void CCalculatorDlg::OnBnClickedBtnBackspace() { if (m_bNewNumber) { return; } int nLength = m_strResult.GetLength(); if (nLength == 1 || (nLength == 2 && m_strResult[0] == '-')) { m_strResult = "0"; m_bNewNumber = TRUE; } else { m_strResult.Delete(nLength - 1, 1); } UpdateData(FALSE); } // 添加其他功能键按钮的响应函数 void CCalculatorDlg::OnEnChangeEditResult() { if (!m_bNewNumber) { Calculate(); } } ``` 注意:代码中的 IDC_BTN_ADD、IDC_BTN_SUBTRACT 等都是控件 ID,需要在资源编辑器中设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值