ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:417.19KB ,
资源ID:1599516      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1599516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MFC计算器设计实验报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MFC计算器设计实验报告.docx

1、MFC计算器设计实验报告计算机学院课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:基于Winform的多功能计算器的设计与实现姓 名:专 业:软件工程年 级:08软件学 号:指导教师:2010年 12 月 20 日1.设计目的利用C+语言,编写一个类似windows XP系统的计算器,实现计算器的基本功能,从而利用这次的设计,达到更加了解C+语言,了解面向对象的设计方法,加深对面向对象设计过程的了解等目的。2.设计要求(1)利用面向对象的知识并参照Windows XP系统附件下的“科学型计算器”设计开发一个多功能的计算器;(2)不限制采用的开发平台和编程语言;(3)要求用UML描述

2、设计过程;(4)要求用系统/程序运行时的截图描述实现的测试过程,系统的功能说明;(5)用原代码(加注释)描述主要的功能实现过程及算法;(6)提交纸质打印课程设计报告及项目工程原代码(所有人刻录在一张光碟中,两份,一份用以存档)。 3.设计方案(1)计算器的用例图: 用户用例名称:四则运算。参与执行者:用户。前置条件:计算器已开启。主事件流:用户输入操作数一。用户选择加、减、乘、除四则运算中的一种算法。用户输入操作数二,计算出结果,作为下一次计算的操作数一。后置条件:显示计算结果。用例名称:三角函数。参与执行者:用户。前置条件:计算器已开启。主事件流:用户输入操作数一。选择所要操作的三角函数,计

3、算出结果。所得的结果作为下一次计算的操作数一。后置条件:显示计算结果。用例名称:XY。参与执行者:用户。前置条件:计算器已开启。主事件流:用户输入操作数一。选择XY功能。用户输入操作数Y,计算X的Y次方,所得结果作为下一次操作的操作数一。后置条件:显示计算结果。用例名称:清零操作。参与执行者:用户。前置条件:计算器已开启。主事件流:把零赋值给操作数一。后置条件:显示计算结果。用例名称:角/弧度转换。参与执行者:用户。前置条件:计算器已开启。主事件流:用户进行选择,选择角度,则用角度制进行计算,选择弧度,则用弧度制进行计算。后置条件:显示计算结果。用例名称:等号功能。参与执行者:用户。前置条件:

4、计算器已开启。主事件流: 选择等号功能,对进行的操作把结果在IDC_EDIT1中显示出来。后置条件:显示计算结果。主事件流:对操作数一进行操作,调用log()函数,所得结果作为下一次计算的操作数一。后置条件:显示计算结果。用例名称:输出PI值。参与执行者:用户。前置条件:计算器已开启。主事件流:判断PI值是赋值给操作数一还是操作数二,判断后,进行赋值。后置条件:显示计算结果。用例名称:后退功能。参与执行者:用户。前置条件:计算器已开启。主事件流:选择后退功能,则可以将对操作数的赋值返回到上一个操作。后置条件:显示计算结果。用例名称:+/-功能。参与执行者:用户。前置条件:计算器已开启。主事件流

5、:对操作数进行操作,是操作数的值乘以-1后赋值回给操作数。后置条件:显示计算结果。用例名称:1/X。参与执行者:用户。前置条件:计算器已开启。主事件流:对操作数一进行操作,是之为操作数一分之1,结果作为下一次操作的操作数一。后置条件:显示计算结果。(2)计算器的类图: (3)计算器的顺序图:用户 1.输入操作数一 1.1选择操作方法 1.1.1操作后得到结果 将结果作为操作数一 请求操作数二 2.输入操作数二 2.1进行操作得到结果 将结果作为操作数一计算器的顺序图(4)计算器协作图 1.输入操作数一 5.计算结果用户2.输入操作方法 4.否请求操作数二 是否直接操作 3.是直接操作 是否直接

6、操作 计算器的协作图(5)计算器的状态图: 开启计算器进行操作 清零 关闭计算器计算器的状态图(6)计算器的活动图:用户 请求操作数二 直接操作.计算器的活动图(7)计算器系统框图:计算器系统框图 4设计内容:(1) 创建工程:在visual c+6.0中使用AppWizard的工程向导创建基于对话框的应用程序,工程名设置为calculator。(2) 设计用户界面(1)界面中有一个编辑框空间和25个命令按钮,2个单选按钮,1个分组框,一个编辑框。分别用于数字键,操作键,角弧度切换,联系,显示结果。界面完成后如下效果。(2)设置编辑框属性Style选项卡NUMBER(数字) Read-only

7、(只读),Extend选项Right Aligned text.(3)为编辑框连接一个double型的value变量值m_result.其他控件设置(4)控件属性表控件IDTypeMemberCaption编辑框IDC_EDIT1doublem_result单选按钮IDC_RADIO1Int m_radio角度单选按钮IDC_RADIO2弧度命令按钮IDC_NUMBER11命令按钮IDC_NUMBER22命令按钮IDC_NUMBER33命令按钮IDC_NUMBER44命令按钮IDC_NUMBER55命令按钮IDC_NUMBER66命令按钮IDC_NUMBER77命令按钮IDC_NUMBER88

8、命令按钮IDC_NUMBER99命令按钮IDC_NUMBER100命令按钮IDC_NUMBER11+/-命令按钮IDC_NUMBER12back命令按钮IDC_NUMBER13/命令按钮IDC_NUMBER14*命令按钮IDC_NUMBER15+命令按钮IDC_NUMBER16-命令按钮IDC_NUMBER17C命令按钮IDC_NUMBER18Sqrt命令按钮IDC_NUMBER191/x命令按钮IDC_NUMBER20=命令按钮IDC_NUMBER21sin命令按钮IDC_NUMBER22cos命令按钮IDC_NUMBER23tan命令按钮IDC_NUMBER24PI命令按钮IDC_NUMB

9、ER25Xy(5)最后效果(3)添加代码1在对话框的头文件CalculatorDlg.h中添加头文件#include。2为CCalculatorDlg类中添加如下的数据成员和成员函数:Double number1,number2;Int NumberState,OperationState;Void cal();/number1,number2用于储存进行运算的数值/ NumberState赋值于number1number2./ OperationState操作键3为数字键和某些操作按钮手工添加消息映射:在CalculatorDlg.h文件中的class CCalculatorDlg : pu

10、blic CDialog类的protected中添加如下代码:afx_msg void OnNumberKey(UINT nID); /单机数字键 afx_msg void OnOperationKey(UINT nID); /单击操作键 在CalculatorDlg.cpp文件中的BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialog)和END_MESSAGE_MAP()之间添加如下的代码:ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER10,OnNumberKey)ON_COMMAND_RANGE(IDC_NUMBER11,IDC_

11、NUMBER20,OnOperationKey)第一个表示单击数字键,第二个表示单击IDC_NUMBER11至IDC_NUMBER20的操作键。同时完成其他控件消息映射,方法为双击控件完成后如下:为成员函数添加代码:为成员函数OnNumberKey()添加代码:void CCalculatorDlg:OnNumberKey(UINT nID) int n=0; switch(nID) case IDC_NUMBER1:n=1;break; case IDC_NUMBER2:n=2;break; case IDC_NUMBER3:n=3;break; case IDC_NUMBER4:n=4;b

12、reak; case IDC_NUMBER5:n=5;break; case IDC_NUMBER6:n=6;break; case IDC_NUMBER7:n=7;break; case IDC_NUMBER8:n=8;break; case IDC_NUMBER9:n=9;break; case IDC_NUMBER10:n=0;break; if(NumberState=1) m_result=m_result*10+n; number1=m_result; UpdateData(FALSE); /更新编辑框中的值 else m_result=m_result*10+n; number2

13、=m_result; UpdateData(FALSE); switch语句响应用户所按的数字键NumberState=1表示把数值赋值给操作数一,按下操作键按钮,如果可以直接的到结果的操作,NumberState值不变,如果要连同操作数二进行操作,使NumberState=2,便可输入操作数二。UpdateData(FALSE)用于更新编辑框中数据成员。(2)为单选按钮void CCalculatorDlg:OnRadio1()和void CalculatorDlg:OnRadio2()添加代码:void CCalculatorDlg:OnRadio1() m_radio=0;void CCalculatorDlg:OnRadio2() / TODO: Add your control notification handler code here m_radio=1; 两个单选按钮用来表示角度状态和弧度状态,将两个单选按钮放入group box中再在IDC_RADIO1的属性中选上group属性,最后按表1中连接int类型的变量m_radio,连接变量后,在CCalculatorDlg.cpp文件中的CCalculatorDlg:CCalculatorDlg(CW

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

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