MFC计算器设计实验报告Word下载.docx
- 文档编号:14521279
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:18
- 大小:417.19KB
MFC计算器设计实验报告Word下载.docx
《MFC计算器设计实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《MFC计算器设计实验报告Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
(6)提交纸质打印课程设计报告及项目工程原代码(所有人刻录在一张光碟中,两份,一份用以存档)。
3.设计方案
(1)计算器的用例图:
用户
用例名称:
四则运算。
参与执行者:
用户。
前置条件:
计算器已开启。
主事件流:
用户输入操作数一。
用户选择加、减、乘、除四则运算中的一种算法。
用户输入操作数二,计算出结果,作为下一次计算的操作数一。
后置条件:
显示计算结果。
三角函数。
选择所要操作的三角函数,计算出结果。
所得的结果作为下一次计算的操作数一。
X^Y。
选择X^Y功能。
用户输入操作数Y,计算X的Y次方,所得结果作为下一次操作的操作数一。
清零操作。
把零赋值给操作数一。
角/弧度转换。
用户进行选择,选择角度,则用角度制进行计算,选择弧度,则用弧度制进行计算。
等号功能。
选择等号功能,对进行的操作把结果在IDC_EDIT1中显示出来。
对操作数一进行操作,调用log()函数,所得结果作为下一次计算的操作数一。
输出PI值。
判断PI值是赋值给操作数一还是操作数二,判断后,进行赋值。
后退功能。
选择后退功能,则可以将对操作数的赋值返回到上一个操作。
+/-功能。
对操作数进行操作,是操作数的值乘以-1后赋值回给操作数。
1/X。
对操作数一进行操作,是之为操作数一分之1,结果作为下一次操作的操作数一。
(2)计算器的类图:
(3)计算器的顺序图:
用户
1.输入操作数一
1.1选择操作方法
1.1.1操作后得到结果
将结果作为操作数一
请求操作数二
2.输入操作数二
2.1进行操作得到结果
将结果作为操作数一
计算器的顺序图
(4)计算器协作图
1.输入操作数一5.计算结果
2.输入操作方法4.[否]请求操作数二
是否直接操作
3.[是]直接操作
计算器的协作图
(5)计算器的状态图:
开启计算器进行操作
清零
关闭计算器
计算器的状态图
(6)计算器的活动图:
请求操作数二直接操作
.计算器的活动图
(7)计算器系统框图:
计算器系统框图
4设计内容:
(1)创建工程:
在visualc++6.0中使用AppWizard的工程向导创建基于对话框的应用程序,工程名设置为calculator。
(2)设计用户界面
(1)界面中有一个编辑框空间和25个命令按钮,2个单选按钮,1个分组框,一个编辑框。
分别用于数字键,操作键,角弧度切换,联系,显示结果。
界面完成后如下效果。
(2)设置编辑框属性Style选项卡NUMBER(数字)Read-only(只读),Extend选项RightAlignedtext.
(3)为编辑框连接一个double型的value变量值m_result.
其他控件设置
(4)控件属性表
控件
ID
Type
Member
Caption
编辑框
IDC_EDIT1
double
m_result
单选按钮
IDC_RADIO1
Int
m_radio
角度
IDC_RADIO2
弧度
命令按钮
IDC_NUMBER1
1
IDC_NUMBER2
2
IDC_NUMBER3
3
IDC_NUMBER4
4
IDC_NUMBER5
5
IDC_NUMBER6
6
IDC_NUMBER7
7
IDC_NUMBER8
8
IDC_NUMBER9
9
IDC_NUMBER10
IDC_NUMBER11
+/-
IDC_NUMBER12
back
IDC_NUMBER13
/
IDC_NUMBER14
*
IDC_NUMBER15
+
IDC_NUMBER16
-
IDC_NUMBER17
C
IDC_NUMBER18
Sqrt
IDC_NUMBER19
1/x
IDC_NUMBER20
=
IDC_NUMBER21
sin
IDC_NUMBER22
cos
IDC_NUMBER23
tan
IDC_NUMBER24
PI
IDC_NUMBER25
X^y
(5)最后效果
(3)添加代码
1在对话框的头文件CalculatorDlg.h中添加头文件#include<
math.h>
。
2为CCalculatorDlg类中添加如下的数据成员和成员函数:
Doublenumber1,number2;
IntNumberState,OperationState;
Voidcal();
//number1,number2用于储存进行运算的数值
//NumberState赋值于number1number2.
//OperationState操作键
3为数字键和某些操作按钮手工添加消息映射:
在CalculatorDlg.h文件中的classCCalculatorDlg:
publicCDialog类的protected中添加如下代码:
afx_msgvoidOnNumberKey(UINTnID);
//单机数字键
afx_msgvoidOnOperationKey(UINTnID);
//单击操作键
在CalculatorDlg.cpp文件中的BEGIN_MESSAGE_MAP(CCalculatorDlg,CDialog)和END_MESSAGE_MAP()之间添加如下的代码:
ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER10,OnNumberKey)
ON_COMMAND_RANGE(IDC_NUMBER11,IDC_NUMBER20,OnOperationKey)
第一个表示单击数字键,第二个表示单击IDC_NUMBER11至IDC_NUMBER20的操作键。
同时完成其他控件消息映射,方法为双击控件
完成后如下:
为成员函数添加代码:
为成员函数OnNumberKey()添加代码:
voidCCalculatorDlg:
:
OnNumberKey(UINTnID)
{
intn=0;
switch(nID)
{
caseIDC_NUMBER1:
n=1;
break;
caseIDC_NUMBER2:
n=2;
caseIDC_NUMBER3:
n=3;
caseIDC_NUMBER4:
n=4;
caseIDC_NUMBER5:
n=5;
caseIDC_NUMBER6:
n=6;
caseIDC_NUMBER7:
n=7;
caseIDC_NUMBER8:
n=8;
caseIDC_NUMBER9:
n=9;
caseIDC_NUMBER10:
n=0;
}
if(NumberState==1)
m_result=m_result*10+n;
number1=m_result;
UpdateData(FALSE);
//更新编辑框中的值
else
number2=m_result;
}
switch语句响应用户所按的数字键
NumberState==1表示把数值赋值给操作数一,按下操作键按钮,如果可以直接的到结果的操作,NumberState值不变,如果要连同操作数二进行操作,使NumberState==2,便可输入操作数二。
UpdateData(FALSE)用于更新编辑框中数据成员。
(2)为单选按钮voidCCalculatorDlg:
OnRadio1()和voidCalculatorDlg:
OnRadio2()添加代码:
OnRadio1()
m_radio=0;
OnRadio2()
//TODO:
Addyourcontrolnotificationhandlercodehere
m_radio=1;
两个单选按钮用来表示角度状态和弧度状态,将两个单选按钮放入groupbox中再在IDC_RADIO1的属性中选上group属性,最后按表1中连接int类型的变量m_radio,连接变量后,在CCalculatorDlg.cpp文件中的CCalculatorDlg:
CCalculatorDlg(CW
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MFC 计算器 设计 实验 报告