计算器基于 C++MFC实现.docx

上传人:b****6 文档编号:3741947 上传时间:2022-11-25 格式:DOCX 页数:22 大小:133.84KB
下载 相关 举报
计算器基于 C++MFC实现.docx_第1页
第1页 / 共22页
计算器基于 C++MFC实现.docx_第2页
第2页 / 共22页
计算器基于 C++MFC实现.docx_第3页
第3页 / 共22页
计算器基于 C++MFC实现.docx_第4页
第4页 / 共22页
计算器基于 C++MFC实现.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

计算器基于 C++MFC实现.docx

《计算器基于 C++MFC实现.docx》由会员分享,可在线阅读,更多相关《计算器基于 C++MFC实现.docx(22页珍藏版)》请在冰豆网上搜索。

计算器基于 C++MFC实现.docx

计算器基于C++MFC实现

课程实验报告

课程名称

C++面向对象程序设计

班级

XXXXX

实验日期

2015-05-19

姓名

XXX

学号

XXXXX

实验成绩

实验名称

C++简单程序设计

1.学习使用VisualC++的MFC开发程序的步骤。

2.综合运用所学的类、继承和多态的知识开发程序。

3.进一步熟练掌握程序调试方法。

实验环境

MicrosoftVisualC++

 

1.利用MFC的向导创建基于对话框的应用程序,添加按钮、编辑框等控件。

2.实现算数“加、减、乘、除”的运算。

 

 

设计步骤:

(1)打开MicrosoftVisualC++6.0,在文件中点击新建,在弹出框内选择MFCAppWizard[exe]工程,输入工程名JISUANQI并在其所在的位置点击确定。

(2)将弹出MFCAppWizard-step1对话框,选择基本对话框点击完成。

(3)基于对话窗口的程序框架建立成功。

界面设计:

(1)创建控件:

在ResourceView选项卡中打开Dialog资源组,双击IDD_JISUANQI,在右边的窗口中显示待编辑的对话框。

开始摆放控件,包括编辑框和按钮的创建。

(2)在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。

在编辑框上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时弹出Edit属性对话框。

(3)在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。

在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也会弹出pushbutton对话框。

标题

ID

说明

编辑框

ID_Edit

结果显示

按钮

ID_Button0

0

按钮

ID_Button1

1

按钮

ID_Button2

2

按钮

ID_Button3

3

按钮

ID_Button4

4

按钮

ID_Button5

5

按钮

ID_Button6

6

按钮

ID_Button7

7

按钮

ID_Button8

8

按钮

ID_Button9

9

按钮

ID_ButtonJIA

+

按钮

ID_ButtonJIAN

-

按钮

ID_ButtonCHENG

*

按钮

ID_ButtonCHU

/

按钮

ID_Buttonequal

=

按钮

ID_Buttonc

0

链接代码和变量:

(1)给编辑框连接变量。

在编辑框上单击鼠标右键,在弹出的菜单中选择ClassWizard菜单项,弹出MFCClassWizard对话框选择MemberVariables选项卡。

(2)在ControlIDs列表框中选择IDC_Edit,单击AddVariables按钮,在弹出的对话框中链接变量m_NUM。

变量类型设定为double型。

m_NUM属性设置:

给X按钮链接代码。

在X按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择MessageMaps选项卡,然后在ObjectIDs列表框中选择BN_CLICKED项,即单击按钮事件。

菜单设计:

(1)选择插入/资源命令,将显示插入资源对话框。

选择Menu,点击新建即可。

(2)ResourceView选项卡中打开Menu资源组,双击IDR_MENU1,然后给菜单添加相应的标题,并把每个菜单对应的ID值与相应的按钮一致。

(3)在对话框的任何一个空白域单击鼠标右键,然后在弹出的快捷菜单中选择Properties命令,弹出DialogProperties对话框,在对话框中的菜单组合框中选择IDR_MENU1。

结构图:

1.初始化状态:

2.加法运算:

3.乘法运算:

4.清零运算:

通过此次试验极大的锻炼了编码能力,巩固了之前所学的知识。

实验过程中出现了些许问题,所幸都可以解决,并为以后的实验提供了经验。

#include"stdafx.h"

#include"JISUANQI.h"

#include"JISUANQIDlg.h"

#include"math.h"

boolele2;

intaddt;

inti;

intdint;

boolele;

doublenum1;

doublenum2;

classCAboutDlg:

publicCDialog

{

public:

CAboutDlg();

enum{IDD=IDD_ABOUTBOX};

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport

protected:

DECLARE_MESSAGE_MAP()

};

BOOLCJISUANQIDlg:

:

OnInitDialog()

{

OnBUTTONc();

CDialog:

:

OnInitDialog();

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

}

SetIcon(m_hIcon,TRUE);//Setbigicon

SetIcon(m_hIcon,FALSE);//Setsmallicon

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCJISUANQIDlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

}

voidCJISUANQIDlg:

:

OnPaint()

{

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

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

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

dc.DrawIcon(x,y,m_hIcon);

}

else

{

CDialog:

:

OnPaint();

}

}

voidCJISUANQIDlg:

:

OnButton0()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+0;

else

m_NUM=m_NUM*10-0;

if(ele==TRUE)

{

num1=0;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

inti;

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+1;

else

m_NUM=m_NUM*10-1;

if(ele==TRUE)

{

num1=1;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton2()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

inti;

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+2;

else

m_NUM=m_NUM*10-2;

if(ele==TRUE)

{

num1=2;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton3()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+3;

else

m_NUM=m_NUM*10-3;

if(ele==TRUE)

{

num1=3;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton4()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+4;

else

m_NUM=m_NUM*10-4;

if(ele==TRUE)

{

num1=4;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton5()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+5;

else

m_NUM=m_NUM*10-5;

if(ele==TRUE)

{

num1=5;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton6()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+6;

else

m_NUM=m_NUM*10-6;

if(ele==TRUE)

{

num1=6;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton7()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+7;

else

m_NUM=m_NUM*10-7;

if(ele==TRUE)

{

num1=7;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton8()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+8;

else

m_NUM=m_NUM*10-8;

if(ele==TRUE)

{

num1=8;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButton9()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt==0)

num2=0;

if(ele2==TRUE)

m_NUM=m_NUM*10+9;

else

m_NUM=m_NUM*1019;

if(ele==TRUE)

{

num1=9;

dint=dint++;

for(i=0;i

{

num1=num1/10;

}

if(ele2==TRUE)

{

m_NUM=(m_NUM-1)/10+num1;

}

else

{

m_NUM=(m_NUM+1)/10-num1;

}

}

UpdateData(FALSE);

}

voidCJISUANQIDlg:

:

OnButtonPoint()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

}

voidCJISUANQIDlg:

:

OnButtonEqual()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

switch(addt)

{

case0:

UpdateData(FALSE);

break;

case1:

m_NUM=num2+m_NUM;

UpdateData(FALSE);

break;

case2:

m_NUM=num2-m_NUM;

UpdateData(FALSE);

break;

case3:

m_NUM=num2*m_NUM;

UpdateData(FALSE);

break;

case4:

m_NUM=num2/m_NUM;

UpdateData(FALSE);

break;

}

num2=m_NUM;

m_NUM=0;

num1=0;

dint=0;

ele=FALSE;

addt=0;

ele2=TRUE;

}

voidCJISUANQIDlg:

:

OnButtonJia()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt!

=0)

OnButtonEqual();

if(num2==0)

num2=m_NUM;

m_NUM=0;

ele=FALSE;

ele2=TRUE;

dint=0;

addt=1;

}

voidCJISUANQIDlg:

:

OnButtonJian()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt!

=0)

OnButtonEqual();

if(num2==0)

num2=m_NUM;

m_NUM=0;

ele=FALSE;

ele2=TRUE;

dint=0;

addt=2;

}

voidCJISUANQIDlg:

:

OnButtonCheng()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt!

=0)

OnButtonEqual();

if(num2==0)

num2=m_NUM;

m_NUM=0;

ele=FALSE;

ele2=TRUE;

dint=0;

addt=3;

}

voidCJISUANQIDlg:

:

OnButtonChu()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

if(addt!

=0)

OnButtonEqual();

if(num2==0)

num2=m_NUM;

m_NUM=0;

ele=FALSE;

ele2=TRUE;

dint=0;

addt=4;

}

voidCJISUANQIDlg:

:

OnBUTTONc()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_NUM=0;

num1=0;

num2=0;

dint=0;

addt=0;

ele=FALSE;

ele2=TRUE;

UpdateData(FALSE);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1