




免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:基于Winform的多功能计算器的设计与实现姓 名:杨栋专 业:软件工程年 级:08软件学 号:200824132130指导教师:白伟华2010年 12 月 20 日目录1.设计目的32.设计要求33.设计方案3(1)计算器的用例图:3(2)计算器的类图:6(3)计算器的顺序图:6(4)计算器协作图7(5)计算器的状态图:7(6)计算器的活动图:8(7)计算器系统框图:84设计内容:9(1) 创建工程:9(2) 设计用户界面9(3)添加代码115 测试结果:156 总结:177.参考文献:171.设计目的利用C+语言,编写一个类似windows XP系统的计算器,实现计算器的基本功能,从而利用这次的设计,达到更加了解C+语言,了解面向对象的设计方法,加深对面向对象设计过程的了解等目的。2.设计要求(1)利用面向对象的知识并参照Windows XP系统附件下的“科学型计算器”设计开发一个多功能的计算器;(2)不限制采用的开发平台和编程语言;(3)要求用UML描述设计过程;(4)要求用系统/程序运行时的截图描述实现的测试过程,系统的功能说明;(5)用原代码(加注释)描述主要的功能实现过程及算法;(6)提交纸质打印课程设计报告及项目工程原代码(所有人刻录在一张光碟中,两份,一份用以存档)。 3.设计方案(1)计算器的用例图:XY清零操作三角函数记忆功能四则运算开方1/x功能+/-功能角/弧度转换用户后退功能等号输出PI值用例名称:四则运算。参与执行者:用户。前置条件:计算器已开启。主事件流:用户输入操作数一。用户选择加、减、乘、除四则运算中的一种算法。用户输入操作数二,计算出结果,作为下一次计算的操作数一。后置条件:显示计算结果。用例名称:三角函数。参与执行者:用户。前置条件:计算器已开启。主事件流:用户输入操作数一。选择所要操作的三角函数,计算出结果。所得的结果作为下一次计算的操作数一。后置条件:显示计算结果。用例名称:XY。参与执行者:用户。前置条件:计算器已开启。主事件流:用户输入操作数一。选择XY功能。用户输入操作数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) 创建工程:在visual c+6.0中使用AppWizard的工程向导创建基于对话框的应用程序,工程名设置为calculator。(2) 设计用户界面(1) 界面中有一个编辑框空间和25个命令按钮,2个单选按钮,1个分组框,一个编辑框。分别用于数字键,操作键,角弧度切换,联系,显示结果。界面完成后如下效果。(2)设置编辑框属性Style选项卡NUMBER(数字) Read-only(只读),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命令按钮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_NUMBER25Xy(5)最后效果(3)添加代码 在对话框的头文件CalculatorDlg.h中添加头文件#include。 为CCalculatorDlg类中添加如下的数据成员和成员函数:Double number1,number2;Int NumberState,OperationState;Void cal();/number1,number2用于储存进行运算的数值/ NumberState赋值于number1number2./ OperationState操作键 为数字键和某些操作按钮手工添加消息映射:在CalculatorDlg.h文件中的class CCalculatorDlg : public 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_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;break;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); /更新编辑框中的值elsem_result=m_result*10+n;number2=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 herem_radio=1;两个单选按钮用来表示角度状态和弧度状态,将两个单选按钮放入group box中再在IDC_RADIO1的属性中选上group属性,最后按表1中连接int类型的变量m_radio,连接变量后,在CCalculatorDlg.cpp文件中的CCalculatorDlg:CCalculatorDlg(CWnd* pParent /*=NULL*/): CDialog(CCalculatorDlg:IDD, pParent)函数中便有m_radio=-1把它改为m_radio=0,便是默认的制度选择为角度制,当m_radio=1时,制度为弧度制。三角函数的实现只要调用中的相应三角函数代码即可。(3) cal()代码void CCalculatorDlg:cal()switch(OperationState)case 1:m_result=(double)number1/number2;UpdateData(FALSE); /更新结果number1=m_result; /把此次的运算结果作为下一次运算的第一个操作数NumberState=2; /下次输入的数作为第二个操作数break;case 2:m_result=number1*number2;UpdateData(FALSE);number1=m_result;NumberState=2;break;case 3:m_result=number1+number2;UpdateData(FALSE);number1=m_result;NumberState=2;break;case 4:m_result=number1-number2;UpdateData(FALSE);number1=m_result;NumberState=2;break;case 5:m_result=1;for(int i=0;inumber2;i+)m_result=m_result*number1;UpdateData(FALSE);NumberState=2;break;OperationState=0; 连接运行5 测试结果: 打开软件,按C清零,普通计算+= 三角函数,按C清零输入30,结果如下选择角度,使用前清零,结果如下同样输入30,sin,cos,tan所得的结果分别为:N次方 先清零,5的3次方 结果6 总结:通过这次的计算器设计,是我更加的了解到visual c+ 6.0中MFC的使用,同时也加强了对c+语言的了解和对c+的学习兴趣。计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会所怎样管理制度
- 会所薪资管理制度
- 会计保密管理制度
- 会计流程管理制度
- 会议信息管理制度
- 会议时间管理制度
- 会议部门管理制度
- 内蒙古工业大学《兽医微生物学实验》2023-2024学年第二学期期末试卷
- 吉林师范大学博达学院《音乐美学一》2023-2024学年第二学期期末试卷
- 低温消毒管理制度
- 青科综评面试真题及答案
- 2023年贵州省粮食储备集团有限公司面向社会公开招聘工作人员15人笔试参考题库附带答案详解
- 痘痘专业知识课件图
- 超星尔雅学习通《国家安全教育(中国人民公安大学)》2025章节测试附答案
- 艾梅乙防治知识培训课件
- 胸腔穿刺术护理查房
- 全过程咨询项目管理
- 2024年广东省广州市白云山风景名胜区管理局分支机构第一次公开招聘考试真题及答案
- DB65T 8020-2024 房屋建筑与市政基础设施工程施工现场从业人员配备标准
- 2024年江西省水利投资集团有限公司招聘考试真题
- 2024年贵州省普通高校招生信息表(普通类本科批-物理组合)
评论
0/150
提交评论