小型计算器程序的编写文档格式.docx

上传人:b****3 文档编号:13561938 上传时间:2022-10-11 格式:DOCX 页数:21 大小:191.10KB
下载 相关 举报
小型计算器程序的编写文档格式.docx_第1页
第1页 / 共21页
小型计算器程序的编写文档格式.docx_第2页
第2页 / 共21页
小型计算器程序的编写文档格式.docx_第3页
第3页 / 共21页
小型计算器程序的编写文档格式.docx_第4页
第4页 / 共21页
小型计算器程序的编写文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

小型计算器程序的编写文档格式.docx

《小型计算器程序的编写文档格式.docx》由会员分享,可在线阅读,更多相关《小型计算器程序的编写文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

小型计算器程序的编写文档格式.docx

四:

设计思路

1Windows消息处理机制的理解

首先编写程序需要对Windows程序的消息处理机制(MessageHandle)有个比较清晰的了解。

Windows的程序都是通过消息来传送数据,有不需要用户参与的系统消息,比如异常处理等。

还有用户消息,比如鼠标的单击,双击,键盘的键入等。

2.界面的设计,对需要的各种运算符在窗口中划出,然后定义各个的属性

3成员函数及其定义,首先对编辑框的相关变量进行定义,定义为m_edit,将消息框和函数联系起来,然后进行编写相应函数。

4运行结果并测试

五:

软件设计:

设计步骤、界面设计、关键功能的实现

1设计步骤:

1).添加头文件

将Calculate.cpp(见附录)改为Calculate.h将其添加到计算器Dlg.cpp:

implementationfile中,如下:

#include"

Calculate.h"

2.):

成员函数及其释义

virtualBOOLOnInitDialog();

afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);

afx_msgvoidOnPaint();

afx_msgHCURSOROnQueryDragIcon();

afx_msgvoidOnChangeEdit1();

afx_msgvoidOn1();

afx_msgvoidOn2();

afx_msgvoidOn3();

afx_msgvoidOn4();

afx_msgvoidOn5();

afx_msgvoidOn6();

afx_msgvoidOn7();

afx_msgvoidOn8();

afx_msgvoidOn9();

afx_msgvoidOn0();

afx_msgvoidOnequal();

afx_msgvoidOnadd();

afx_msgvoidOnmin();

afx_msgvoidOnplus();

afx_msgvoidOndiv();

afx_msgvoidOndelete();

afx_msgvoidOncountdown();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

2界面设计

1)界面的初步设计

仿照Windows附件里面的计算器,在资源视图中画好界面。

2)修改每个static的属性

ID

CAPTION

IDD_STATIC4

简易表达式计算器

IDC_STATIC1

待求表达式

IDC_STATIC2

运算结果

3)修改每个button的属性

IDC_BUTTON1

等于(=)

IDC_BUTTON2

全清(CE)

IDC_BUTTON3

清除(C)

4)修改每个button的处理机制

在类向导Classwizard窗口中进行,如下图:

其button按钮的修改类似

5)修改每个edit的类型和名称

在类向导Classwizard窗口中进行:

单击AddVariable按钮,在如下窗口中进行修改

其他edit的修改类似

最终结果如下:

3关键功能的实现

1).OnButton1()按钮的处理函数

voidCMy1Dlg:

On1()

//TODO:

Addyourcontrolnotificationhandlercodehere

m_jisuan=m_jisuan+"

1"

;

UpdateData(FALSE);

其他数字按钮类似

2)运算符按钮的处理函数

Onadd()

sign=1;

data=atof(m_jisuan);

m_jisuan="

+"

"

3)等号的按钮的处理函数

Onequal()

switch(sign){

case1:

data=data+atof(m_jisuan);

break;

case2:

data=data-atof(m_jisuan);

case3:

data=data*atof(m_jisuan);

case4:

if(atof(m_jisuan)==0)

{

MessageBox("

ERROR"

);

}

else

data=data/atof(m_jisuan);

}

charDrray[50];

memset(Drray,0,50);

sprintf(Drray,"

%f"

data);

m_jisuan=Drray;

UpdateData(FALSE);

4)编辑框的按钮的处理函数

OnChangeEdit1()

IfthisisaRICHEDITcontrol,thecontrolwillnot

//sendthisnotificationunlessyouoverridetheCDialog:

OnInitDialog()

//functionandcallCRichEditCtrl().SetEventMask()

//withtheENM_CHANGEflagORedintothemask.

六:

结论与心得体会

这次课程设计用MFC的相关知识编写一个小型计算器,刚开整个始感觉这个题目挺新鲜,很想好好尝试下,平时只知道用计算器,其中的原理却不甚了解。

此次课程设计没有像上次那样尴尬,不知从何做起,可能是有了上次的经验。

老师开始的讲解感觉作用挺大的,知道了从那块着手,编写的过程中不断出错,写的源代码总是找不到头文件,这是最让人郁闷的了。

和同学的交流,探讨过程,是我对这学期学的类有了更深刻的了解。

身边有很多高手的存在,通过他们的讲解很容易对整个过程熟悉,比上次好多了。

七.参考文献

VisualC++7.0实战入口

八附录:

调试及测试结果如上,关键源代码如下:

#if!

defined(AFX_1DLG_H__B53FAC72_C8D2_473B_BF3F_DF4E3D42EB50__INCLUDED_)

#defineAFX_1DLG_H__B53FAC72_C8D2_473B_BF3F_DF4E3D42EB50__INCLUDED_

#if_MSC_VER>

1000

#pragmaonce

#endif//_MSC_VER>

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

//CMy1Dlgdialog

classCMy1Dlg:

publicCDialog

//Construction

public:

doubledata;

intsign;

CMy1Dlg(CWnd*pParent=NULL);

//standardconstructor

//DialogData

//{{AFX_DATA(CMy1Dlg)

enum{IDD=IDD_MY1_DIALOG};

CStringm_jisuan;

//}}AFX_DATA

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CMy1Dlg)

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);

//DDX/DDVsupport

//}}AFX_VIRTUAL

//Implementation

protected:

HICONm_hIcon;

//Generatedmessagemapfunctions

//{{AFX_MSG(CMy1Dlg)

};

//{{AFX_INSERT_LOCATION}}

//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.

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

当前位置:首页 > 工程科技 > 能源化工

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

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