MFC计算器设计

  • 格式:doc
  • 大小:240.00 KB
  • 文档页数:20

实 验 报 告

课程名称: Visual C++面向对象与可视化程序设计

实验项目: 计算器设计

姓 名:

专 业: 计算机科学与技术

班 级:

学 号:

计算机科学与技术学院

实验教学中心

2016 年 11月 19日 成绩:

哈尔滨理工大学计算机科学与技术学院 实验报告

实验项目名称: 计算器设计 ( 2课时 )

一、 实验目的

1. 灵活使用MFC应用程序设计

2. 设计计算器

二、实验内容

设计一个简单的计算器,可以实现加法,减法,除法,乘法,取模,开平方,输入数字要求可以输入小数,可以连加。具有清空,回退功能。

三、实验步骤

1.启动VS打2012开新建项目

2.出现的New对话框的Projects标签内选择MFC应用程序

3. Projects Name指定项目的名字,在Location中指定路径后按OK按钮

4.选择创建类型,(例如基于对话框),确定项目类型后按Finish完成。

5.编写实验代码

四、实验结果

哈尔滨理工大学计算机科学与技术学院实验教学中心 实验报告

哈尔滨理工大学计算机科学与技术学院实验教学中心 实验报告

五、程序代码

// project_1Dlg.h : 头文件

//

#pragma once

#include "afxwin.h"

// Cproject_1Dlg 对话框

class Cproject_1Dlg : public CDialogEx

{

// 构造

public:

Cproject_1Dlg(CWnd* pParent = NULL); // 标准构造函数

void Equal2();

void Cproject_1Dlg::AddDigit(char numKey);

// 对话框数据

enum { IDD = IDD_PROJECT_1_DIALOG };

哈尔滨理工大学计算机科学与技术学院实验教学中心 实验报告

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现

protected:

HICON m_hIcon;

long double m_op1,m_op2,m_result;

int m_operation;

int i,s;

long double r;

long double m_m;

long double data[50];

bool st1,st2;

bool pflag;

long double p;

// 生成的消息映射函数

virtual BOOL OnInitDialog();

afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

afx_msg void OnPaint();

afx_msg HCURSOR OnQueryDragIcon();

DECLARE_MESSAGE_MAP()

public:

double m_num;

CEdit m_control_e;

BOOL m_inv;

BOOL m_hp;

// CString m_sd;

CString m_sd;

afx_msg void OnClicked1x();

afx_msg void OnClickedAdd();

afx_msg void OnClickedB1();

afx_msg void OnClickedB2();

afx_msg void OnClickedB3();

afx_msg void OnClickedB4();

afx_msg void OnClickedB5();

afx_msg void OnClickedB6();

afx_msg void OnClickedB7();

afx_msg void OnClickedB8();

afx_msg void OnClickedB9();

afx_msg void OnClickedB10();

afx_msg void OnClickedClaer();

afx_msg void OnClickedClaer2();

哈尔滨理工大学计算机科学与技术学院实验教学中心 实验报告

afx_msg void OnClickedBp();

afx_msg void OnClickedBp2();

afx_msg void OnClickedBsp();

afx_msg void OnClickedM();

afx_msg void OnClickedMc();

afx_msg void OnClickedMm();

afx_msg void OnClickedMod();

afx_msg void OnClickedSqrt();

afx_msg void OnClickedMr();

afx_msg void OnClickedSubract();

afx_msg void OnClickedMul();

afx_msg void OnClickedDevide();

afx_msg void OnChangeEdit1();

afx_msg void OnClickedEqual();

};

// project_1Dlg.cpp : 实现文件

//

#include "stdafx.h"

#include "project_1.h"

#include "project_1Dlg.h"

#include "afxdialogex.h"

#include

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// 用于应用程序“关于”菜单项的 CAboutDlg 对话框

class CAboutDlg : public CDialogEx

{

public:

CAboutDlg();

// 对话框数据

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现

哈尔滨理工大学计算机科学与技术学院实验教学中心 实验报告

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

// Cproject_1Dlg 对话框

Cproject_1Dlg::Cproject_1Dlg(CWnd* pParent /*=NULL*/)

: CDialogEx(Cproject_1Dlg::IDD, pParent)

, m_num(0)

, m_sd(_T(""))

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void Cproject_1Dlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT1, m_num);

DDX_Control(pDX, IDC_EDIT1, m_control_e);

DDX_Text(pDX, IDC_sd, m_sd);

}

BEGIN_MESSAGE_MAP(Cproject_1Dlg, CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_1x, &Cproject_1Dlg::OnClicked1x)

ON_BN_CLICKED(IDC_ADD, &Cproject_1Dlg::OnClickedAdd)

ON_BN_CLICKED(IDC_b1, &Cproject_1Dlg::OnClickedB1)

ON_BN_CLICKED(IDC_b2, &Cproject_1Dlg::OnClickedB2)

ON_BN_CLICKED(IDC_b3, &Cproject_1Dlg::OnClickedB3)

ON_BN_CLICKED(IDC_b4, &Cproject_1Dlg::OnClickedB4)

ON_BN_CLICKED(IDC_b5, &Cproject_1Dlg::OnClickedB5)