2023年计算器的实验报告_第1页
2023年计算器的实验报告_第2页
2023年计算器的实验报告_第3页
2023年计算器的实验报告_第4页
2023年计算器的实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

O或隆)分“孝

邮电与信息工程学院

课程设计说明书

课题名称:mfc制作简朴计算器系统软件综合设计

学生学号:_____________________________________

专业班级:计算机科学与技术02班

学生姓名:_________孙志宏_____________________

指导教师:杨玉禧

一.题目:运用MFC框架编写简易计算器

规定使用MFC框架在VisualStudio6.0环境下编写一个简易的计算器,支持任意位数的

加减乘数,正负转换,并且实现BackSpaceCEC功能。

二.设计过程

1.Windows消息解决机制的理解

一方面编写程序需要对Windows程序的消息解决机制(MessageHand1e)有个比较清楚的

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

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

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

L)jisuanl|次

gjisuanl

重要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控

件有上面的一个Edit控件用于显示数字,Button控件用于解决鼠标的消息。

2.建立的变量,控件的命名,相应的消息解决函数相应表

3变量定义,以及初始化

longintiFirst,a;定义两个长整型变量ifirst,a

intiType;定义整形变量iType

longintiRet=0;定义一个长整型变量iRet并初始化

4设计思绪

1我制作的是简朴的计算渊,可以加减乘除,以及清零。所以我们先应把计算器的界面设计出

来。•分数字键和功能键

2数字键0,1,2,3,4,5,6,7,8,9这10个命令按钮控制的数字键,在编写数字键代码时,我

考虑了比如111的输出,我们可以用m_edit=m_edit*l0+n(n代表你下一步所需按的

键),这样你当前的文本框会显示出你想得到的数,尚有我们输入的都是数字,所以我采用的

是长整型输入数据

3功能键+-*/以及清零键CE,其中这里我们这些功能键并不是直接来运营的而是把他们

当作一种标志分别标志为1234,真正执行运算功能的是等于键=

4等于键=这里我们采用swichcash语句来执行运算的功能的,当读到标志为1时,即

为加法,执行加法功能。。。以此类推

5程序代码

在这里我就把整个程序代码写下来,,就写我们的数字和功能键部分的代码把

下面是数字键代码

voidCJisuan1D1g::0n0()

{m_edit=m_edit*10+0;这里我们采用这个表达式是想把数字连起来显示在文本框中

UpdateData(false);你在程序里面改了变量的值.把这个变化反映到界面上..更

新显示.4

)

voidCJisuanlDIg::Onl()

{m_edit=m_edit*10+1;

UpdateData(false);

voidCJisuanID1g::On2()

(

m_edit=m_edit*10+2;

UpdateData(fa1se);//TODO:Addyourcontro1notificationhandlercode

here

voidCJisuan1Dig::On3()

m_edit=m_edit*10+3;

UpdateData(fa1se);//TODO:Addyourcontro1notificationhandler

codehere

voidCJisuanlDlg::On4()

{m_edit=m_edit*l0+4;

UpdateData(false);

o//TODO:Addyourcontro1notificationhandlercodehere

voidCJisuanlDlg::On5()

{m_edit=m_edit*l0+5;

UpdateData(false);

//TODO:Addyourcontrolnotificationhandlercodehere

voidCJisuanlD1g::On6()

{m_edit=m_edit*10+6;

UpdateData(fa1se);

//TODO:Addyourcontrolnotificationhand1ercodehere

)

voidCJisuanlD1g::On7()

{m_edit=m_edit*10+7;

UpdateData(false);

“/TODO:Addyourcontrolnotificationhandlercodehere

voidCJisuanlDlg::On8()

{m_edit=m_edit*10+8;

UpdateData(false);

o//TODO:Addyourcontrolnotificationhandlercodehere

0

)

voidCJisuan1D1g::On9()

(

om_edit=m_edit*10+9;

»UpdateData(fa1se);

b

}

下面是功能键的代码:

voidCJisuanlDlg::OnCheng()

(

°iFirst=m_edit;ifirst是我们定义的长整型变量,第一个值显示在文本框上

“Type=3;3是乘的标志

m_edit=O;这里文本框重新显示为0

UpdateData(fa1se);刷新并使文本框中显示为0

)

voidCJisuanlD1g::0nChu()

(

iFirst=m_edit;

®iType=4;

m_edit=0;

®UpdateData(faIse);

)

下面是执行运算的代码即=键的代码

voidCJisuan1D1g::OnDengyu()

(

1ongintiRet=0;定义一个长整型变量iRet并初始化

switch(iType)采用switch。。cash语句

(

case1:当iType为1即为加法时

iRet=iFirst+m_edit;等于第一个数加上当前文本框中显示的数,结果并赋

予iRet

break;

case2:

iRet=iFirst—m_edit;

break;

case3:

iRet=iFirst*m_edit;

break;

case4:

if(m_edit!=0)假如除一个不为0的数的

(

iRet=iFirst/m_edit;

break;

)

eIse否则

(

MessageBox(Mcan'tusezero!");

}

return;

)

m_edit=iRet;

UpdateData(false);

iFirst=0;

iType=0;

}

voidCJisuanlD1g::OnJia()

(

“First=m_edit;

iType=l;

m_edit=0;

UpdateData(false);

voidCJisuanlDlg::OnJian()

aiFirst=m_edit;

®iType=2;

«rn_edit=0;

UpdateData(false);

)

下面是清零键代码

voidCJisuan1Dig::OnQingling()

(

♦First=0;第一个数重新为0

iType=0;标志为0

m_edit=0;当前文本框中显示为0

QUpdateData(false);刷新

)

voidCJisuan1Dlg::OnChangeEdit1()

(

)

6运营界面

比如我们想算158+232=?

先输入158,界面如卜

田jisuanl

然后按命令按钮“十”界面如下

男jisuanl

输入232得到下面界面

男jisuanl

参考的文献:C++面向对象程序设计谭浩强编著清华大学出版社

MFC,微软基础类(MicrosoftFoundationC1asses)

总结:

本次MFC计算器的制作,学习到了MFC基本的编程方法,增长了小组开发的团结协作能力。

对OOP编程的理解进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论