基于VC++60计算器综合设计性实验报告.

来源:工作范文网 时间:2020-09-21 12:45:57

实验报告

实验名称:计算器(基于VC++6Q

学生姓名:

指导教师:邵金侠

实验地点:综合教学楼E座306 实验日期:2014.12.8 一、实验目的

1、了解简单的VC界面设计;

2、深入理解C++面向对象的编程思想;

3、学会简单的基本对话框应用程序的设计步骤。

二、实验环境

PC机 +VC6.0

三、实验内容

设计计算器: 步骤:

STEP 1 (页面设计部分与控件添加部分) 首先打开VC选择MFCAppWizard[exe],设定好路径和工程名(这里我设置工程名

为为“My)。这里要注意的是在创建向导步骤 1的时候,我们选择“基本对话

乞要创建的应用S呼灵塑是:

单文档国

P碁広对话*相I

中文忡 H1 IMVWZCHS-DLLI

框”。

之后我们可以点击完成便看到以下界面

3工na HW 剂■册 ftA.(l)£At)BBI) 1*5> ■□>! ttlfl'CHJ

3工na HW 剂■册 ftA.(l)£At)BBI) 1*5> ■□>! ttlfl'CHJ

—r'QNl'CLKKED

—L —

n旺営嘀

ChTWIf no OK

占目 U0 Jt =f-

Pl

:

0 ; B 匕a Q S

IS ffl b C *西一 m 藍s叼蜃

* m』IE

★ I 昂巒rd'.AtD

■;屮 *■ He 咛?讹 ¥?

MV

2j Wirtl? DEbug

<t

TOM

_J

TUIF.也总』毎讯二在文辟1中Stf \扛文耳2中iUX k兹* X亦Drt>U?Ul< /

TUI

S O HH 口

匕 PFd.

匕 PFd. T IE ^ivri

此时我们把当前页面上原配的控件按

Delete全部清除(如下图)

闻珂 ?| 药*叩 ftAa> 町埋 01 I 且⑴ ?□*!)W*I<B1

CWfVD : fWl diirincmbersplptCMVW ; 3.-

自■口冈§*知"上面

^iwKazbiiiug

An訴

9宙

切韜匝C

凸"■打

Lfi

口阪 * IE 日沾

?A

T*l)Thfeft 在文坪】中政 \ 隹5:枠*fPStt 二琵JRk SQL hbuamt F

T*l)

目 ■- 口

ttH

接着我们按照MFC自带的控件选项进行我们本次计算器的控件添加(以下是控件)

Aa

abl

(X

Jin

接着,拖动对话框调整窗口大小,并放置如图要求的控件

我们在原先清空的界面中依次用上图控件画出一个基本的计算器页面(如下图)。

1 II

2 1

1

3 1

4 1

5 1

5 1

T JII

e 1

9 1

+ II

0 1

-1

* 1

=1

/ 1

a.bout 1

Close 1

1

然后,设置按钮的属性(改标题)

每个控件“属性”都有属于它自己的 ID,默认的按钮按键为IDC_BUTTONO而且Cap当然我

们为了 “顾名思义”,对控件 ID进行修改成我们容易辨认的(也可以不改),添加完控件 并修改ID之后。(如下图)

这里我们把数字按钮 1设置ID为IDC_BUTT0N1其他的依次类推

Push Button 性

Push Button 性

申骨常燥I样式

扩展样式I

ID: ||DC_BUTTOM

arjftlS) 厂如側

厂已禁用回 破制表站回

完成修改ID后,就需给控件添加消息响应了,基本操作可以是直接双击控件,便会有向导 提示。

0K即可MFC默认下了的响应信息都为 0门_开头,而且以下显示的是数字 5的消息响应.之后所有的依 次类推,这步骤一般不对成员函数名称做任何修改,直接点击

0K即可

之后就会跳转到具体的代码实现过程 这里我们依次给每一个控件添加消息响应函数

(以下仅列出一部分)

void CJiSuanOIIDIg; :0nButton1 ()

// TODO: Add your control notificationhand I

// TODO: Add your control notification

hand I er

code

here

void CJiSuanOID[g::0nButton2C)

// TODO: Add

// TODO: Add yoLir control not if icat i on

hand I er

code

here

void CJ I SuanOID [g::OnButtonS C)

// TODO: Add your control notificationha nd I e rcode

// TODO: Add your control notification

ha nd I e r

code

here

到此为止我们基本上完成了计算器页面的前半部分预备工作,下来是我们的对控件具体实 现代码的添加

这里我把添加的控件消息响应函数列出来

■^CJiSuanOIDIg

* CJiSuanO IDIIIgCCWnd 和 DoDataExchange(GDw '^?OnButtonl C) ^OnEuttonWO ^OnButtonll () ^0nButtonl2 0 ?*0nEut+on13 0 ^*0nButton14 0 ^OnBut+onlS 0 ^OnButtonldO ^OnButtonl 7 0 询 OnButtonI3 0 ^?0nButton2C) li^OnButtonS () ^0nButtcin4 C) ^OnButtonbC) ^OnEuttond () ^*0nButton7C) ^OnButtonS () ^OnEut+on^C)

ili F

其中,编辑框控件的ID是IDC_EDIT1将其属性设为只读接着添加成员变量和一个 CEdit类的变量“查看”->“建立类向导”MFC Cb-isWirardMjips Mtimfaer Vjirlablc^ |

其中,编辑框控件的

ID是

IDC_EDIT1

将其属性设为只读

接着添加成员变量和一个 CEdit类的变量

“查看”->“建立类向导”

MFC Cb-isWirard

Mjips Mtimfaer Vjirlablc^ | Aulomatidn Q ActiveX Events || CksB Irvfo Q Pratect Cla±£ name:

fjiSuaiim 2] JcjiSuantiima

E^.^.UiSujinQ 1^iSuanQIDIg.h^ E;^...UiSuanQIDIg.cpp Conirci IDa; Type

Member

Delete Varlfitile

I DC I DC I DC I DC ll)C I DC I DC I DC I DC I DC

BUTTON! r BUTTON1S BUTTON2 DUTTONJ 日 UITONH BUTTOWE DUTTONG BUTTON? BUTTOWfi 聖IT呷

Update- Colu 川 rr

CriptiDii;

\dd Mrmbcr VanableMember variable name:OK

\dd Mrmbcr Vanable

Member variable name:

OK

Cancel

Catcyory: lvalue

Variable type:

|CSlr)ng

Descri ptian:

CString with length validalion

然后为类CJiSuanQiDIg添加成员变量:

〃用于存储运算符〃用于存储左操作数(1) publiuchar CompuType;

〃用于存储运算符

〃用于存储左操作数

(2) protected:CStri ng FirstI nput;

c lass CJiSuanOIDIg : pub I iic CDialog // Construct i on

pub Iic:

CjiSaanQI ni 叮他 cH*= Hiiijt)丄 % Et 岂id ard const r uctor

V上耐F CoffipuTyp总; "用T存色运鼻咅

// DialofilJata

// (fAFX.DATA [CJiSuanOIDIg)

erun { TDD = IDD_J ISbAMOLOl ALOG }:

CStr i ng m e;

//]]AFJ(_[>ATA

// CIassffizartl generated virtual fun&tion overrides

//ifAFX_VIRTUAL(CJiSuanOIDIg}

protected:

virtue I valid DoOat^Exchange CCOataEK change* pDX); // OOX/O&V support

"I}A珥.VIRTUAL // Implementation

6. 一 H ICOH rii_hi|lcon;~ — - - □

// Generated messase map functions

然后,为按钮单击响应添加函数代码

数字的函数代码分别为:

m_e=m_e+"1"; //该示例为1按钮代码,其他数字按钮将字符串1分别改为0、

2、3、 9 ;

Up dateData(FALSE);

再然后

+-*/按钮:

foid CJiSuanQilDIg:: OnButtonI 0 0

// TODO: Add your control notification handler code here Fi rstInput=m_e;

";

UpdateData (FALSE);

CompuType-* + ';

〃该示例为+按钮代码,其他按钮将字符+改为-、*、/;

Clear按钮:

m_e.E mp ty();

Up dateData(FALSE);

About按钮:

CAboutDIg dIgAbout; dIgAbout.DoModalO;

Close按钮:

On OK();

=按钮:

阳i日 CJISuanQFDIg::OnButton14U

// TODO: Add yoLir controJI notif ication handler code here

I nt Ternp;

I nt

First=atoi (Fi rst Inputs GetBjffer (24)); Z/atoi 0将字耨申类型转换为整型 First Input, RelcascBuffcr (-1);

Ncw=atoi(m_c, GetBuffer(24));

m_c, RcIcascBuffer(-i);

switch(CompuType)

case :

Temp=First+New; break;

case :

Temp=First-New; break; case ■*':

Temperirst*New; break; case '/':

Temp=First/New; break;

sprintf(m_e. GetBuffer C?4), Temp); m_e.Re IeaseBuffer(-1);

IpdateData(FALSE):

3

3

到此 就完成了,可以 运行程序测试 了:

测试例子

输入 123456789 -

80

运行图:

fl

(Sat

卑聊561M

■boirL

cltiA

clttr

测试用例2

15 / 3 =:

sa jgjuKii

hbdUE

■J.494

指导老师签名:日期:

指导老师签名:

日期:

iS liSuanQE

1

1 1

E 1

T丨

5 1

T丨

1

” 1

0 1

11

1 - 1

1 - J

■b 州 t 1

cLtflt 1

四、指导老师评语