编辑一个小型计算器要求使用MFC.docx

上传人:b****6 文档编号:7314811 上传时间:2023-01-22 格式:DOCX 页数:15 大小:52.96KB
下载 相关 举报
编辑一个小型计算器要求使用MFC.docx_第1页
第1页 / 共15页
编辑一个小型计算器要求使用MFC.docx_第2页
第2页 / 共15页
编辑一个小型计算器要求使用MFC.docx_第3页
第3页 / 共15页
编辑一个小型计算器要求使用MFC.docx_第4页
第4页 / 共15页
编辑一个小型计算器要求使用MFC.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

编辑一个小型计算器要求使用MFC.docx

《编辑一个小型计算器要求使用MFC.docx》由会员分享,可在线阅读,更多相关《编辑一个小型计算器要求使用MFC.docx(15页珍藏版)》请在冰豆网上搜索。

编辑一个小型计算器要求使用MFC.docx

编辑一个小型计算器要求使用MFC

课程实验报告

课程名称

C++面向对象程序设计

班级

实验日期

2014.6.6-

2014.6.20

姓名

学号

实验成绩

实验名称

编辑一个小型计算器(要求使用MFC)

 

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

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

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

VisualC++6.0

 

实验内容具体描述:

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

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

3.选作添加计算三角函数运算、对数运算、指数运算、进制转换等功能。

 

 

算法设计思想与算法实现步骤:

1.利用MFCAppWizard向导建立程序框架,建立一个基于对话框的程序,项目名为MyCal。

2.利用资源编辑器,建立对话框。

添加一个编辑框,设置ID属性。

3.在控件工具栏中选择“Button”,添加一个按钮,鼠标右键单击该编辑框,在弹出快捷菜单中选择“Properties”,设置ID值和Caption属性。

4.依次添加若干编辑框和按钮,分别用于加减乘除操作及相应的操作数据。

编辑界面。

5.给编辑框连接变量。

在编辑框处点击右键选择“ClassWizard”,在弹出的对话框中选择“MemberVariables”选项卡,找到编辑框ID,选择“AddVariable”按钮,添加变量m_dispiay。

6.给按钮连接代码。

 

调试过程中出现的问题及解决方法。

记录实验执行的结果:

测试数据8*5

40.000000

 

 

实验结果进行分析,问题回答,实验心得体会及改进意见:

1.通过本次实验,初步掌握了MFC的基本使用操作,学会了掌握添加按钮、编辑框等控件。

2.对MFC的理解无非就是对按钮和编辑框链接相应的函数操作即可。

3.程序中出现了关于visualc++版本的要求,在编译时提示缺少MFC42D.DLL、MFCO42D.DLL、MSVCRTD.dll等提示

 

源程序清单:

//MyCalDlg.cpp:

implementationfile

//

#include"stdafx.h"

#include"MyCal.h"

#include"MyCalDlg.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CAboutDlgdialogusedforAppAbout

classCAboutDlg:

publicCDialog

{

public:

CAboutDlg();

//DialogData

//{{AFX_DATA(CAboutDlg)

enum{IDD=IDD_ABOUTBOX};

//}}AFX_DATA

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

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

//}}AFX_VIRTUAL

//Implementation

protected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

:

IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

//Nomessagehandlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CMyCalDlgdialog

CMyCalDlg:

:

CMyCalDlg(CWnd*pParent/*=NULL*/)

:

CDialog(CMyCalDlg:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CMyCalDlg)

m_display=_T("");

//}}AFX_DATA_INIT

//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

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

}

voidCMyCalDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMyCalDlg)

DDX_Text(pDX,IDC_EDIT1,m_display);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CMyCalDlg,CDialog)

//{{AFX_MSG_MAP(CMyCalDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON20,On_add)

ON_BN_CLICKED(IDC_BUTTON17,On_divide)

ON_BN_CLICKED(IDC_BUTTON9,On_equal)

ON_BN_CLICKED(IDC_BUTTON1,On_one)

ON_BN_CLICKED(IDC_BUTTON2,On_two)

ON_BN_CLICKED(IDC_BUTTON5,On_three)

ON_BN_CLICKED(IDC_BUTTON11,On_four)

ON_BN_CLICKED(IDC_BUTTON3,On_five)

ON_BN_CLICKED(IDC_BUTTON6,On_six)

ON_BN_CLICKED(IDC_BUTTON10,On_seven)

ON_BN_CLICKED(IDC_BUTTON12,On_eight)

ON_BN_CLICKED(IDC_BUTTON4,On_nine)

ON_BN_CLICKED(IDC_BUTTON8,On_zero)

ON_BN_CLICKED(IDC_BUTTON7,On_plus_minus)

ON_BN_CLICKED(IDC_BUTTON19,On_cut)

ON_BN_CLICKED(IDC_BUTTON18,On_multiply)

ON_BN_CLICKED(IDC_BUTTON16,On_CE)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CMyCalDlgmessagehandlers

BOOLCMyCalDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//Add"About..."menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

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);

}

}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);//Setbigicon

SetIcon(m_hIcon,FALSE);//Setsmallicon

//TODO:

Addextrainitializationhere

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCMyCalDlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

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

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

}

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow

//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,

//thisisautomaticallydoneforyoubytheframework.

voidCMyCalDlg:

:

OnPaint()

{

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

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

//Centericoninclientrectangle

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

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

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

//Drawtheicon

dc.DrawIcon(x,y,m_hIcon);

}

else

{

CDialog:

:

OnPaint();

}

}

//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags

//theminimizedwindow.

HCURSORCMyCalDlg:

:

OnQueryDragIcon()

{

return(HCURSOR)m_hIcon;

}

 

voidCMyCalDlg:

:

On_add()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

op='+';

//m_preNum=GetNum();

sscanf(m_display,"%lf",&m_preNum);

m_display="\0";

UpdateData(false);

}

voidCMyCalDlg:

:

On_cut()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

op='-';

//m_preNum=GetNum();

sscanf(m_display,"%lf",&m_preNum);

m_display="\0";

UpdateData(false);

}

voidCMyCalDlg:

:

On_multiply()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

op='*';

//m_preNum=GetNum();

sscanf(m_display,"%lf",&m_preNum);

m_display="\0";

UpdateData(false);

}

voidCMyCalDlg:

:

On_divide()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

op='/';

sscanf(m_display,"%lf",&m_preNum);

m_display="\0";

UpdateData(false);

}

voidCMyCalDlg:

:

On_equal()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

doubleresult=0;

sscanf(m_display,"%lf",&m_curNum);

switch(op)

{

case'+':

result=m_preNum+m_curNum;break;

case'-':

result=m_preNum-m_curNum;break;

case'*':

result=m_preNum*m_curNum;break;

case'/':

result=m_preNum/m_curNum;break;

}

m_preNum=result;

chars[256]={0};

sprintf(s,"%lf",result);

m_display=s;

UpdateData(false);

}

voidCMyCalDlg:

:

On_one()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="1";

UpdateData(false);

}

voidCMyCalDlg:

:

On_two()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="2";

UpdateData(false);

}

 

voidCMyCalDlg:

:

On_three()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="3";

UpdateData(false);

}

voidCMyCalDlg:

:

On_four()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="4";

UpdateData(false);

}

voidCMyCalDlg:

:

On_five()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="5";

UpdateData(false);

}

voidCMyCalDlg:

:

On_six()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="6";

UpdateData(false);

}

voidCMyCalDlg:

:

On_seven()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="7";

UpdateData(false);

}

voidCMyCalDlg:

:

On_eight()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="8";

UpdateData(false);

}

voidCMyCalDlg:

:

On_nine()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="9";

UpdateData(false);

}

voidCMyCalDlg:

:

On_zero()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display+="0";

UpdateData(false);

}

voidCMyCalDlg:

:

On_plus_minus()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

chars[256]={0};

sscanf(m_display,"%lf",s);

m_display="-";

m_display+=s;

UpdateData(false);

}

 

voidCMyCalDlg:

:

On_CE()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_display="\0";

m_preNum=0;

m_curNum=0;

UpdateData(false);

}

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

当前位置:首页 > 求职职场 > 面试

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

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