资源描述:
《c++面向对象程序设计MFC简单计算器实验报告资料》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机与信息工程学院《程序设计基础》课程设计报告题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东学生学号:2011508154专业班级:电子信息工程(1)班指导教师:高攀91课程设计的题目编写一个能实现简单功能的计算器2题目要求1.有一个计算器图形。2.能实现加、减、乘、除及乘方的运算。3.当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色例如:输入数字1时,在计算器图形上的1键变为红色。4.屏幕、图形颜色、形状自定3总体设计3.1总体框架开始结束键入第一个按钮键入第二个按钮显示结果加法单调的加法减法乘法除法乘方
2、清零图1系统框架93.2系统功能说明在VC++6.0中绘制计算器界面,各控件的设置对0~9控件设定相应的ID和其他属性:图2“1”控件设置对“+、-、*、”控件设定相应的ID和其他属性:图2“+”控件设置对其它控件设定相应的ID和其他属性:图3其它控件设置9主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。4程序详细设计4.1系统主调模块实现文件.cpp显示计算器界面开始执行工程全局对象资源文件.rc模块定义文件.def头文件.h执行_twi
3、nmain()Afxmain()创建窗口实现窗口类注册SetwindowVoidclc::onpaint()Voidcal::onCE()点击鼠标发出消息Voidclce::onmouse()等待消息处理Voidclc::onMum0()Voidclc::onAdd()文本框中显示结果程序运行结束图5程序流程图94.2各模块详细设计4.2.1建立的变量,控件的命名,对应的消息处理函数对应表IDCAPTIONMessageHandlerIDD_CALC_DIALOG简易计算器N/AIDC_NUM00OnNum0IDC_NUM11OnNum1IDC_NUM22
4、OnNum2IDC_NUM33OnNum3IDC_NUM44OnNum4IDC_NUM55OnNum5IDC_NUM66OnNum6IDC_NUM77OnNum7IDC_NUM88OnNum8IDC_NUM99OnNum9IDC_NEG+/-OnNegIDC_PT.OnPtIDC_DIV/OnDivIDC_MUL*OnMulIDC_MIN-OnMinIDC_ADD+OnAddIDC_BACKSPACEBACKOnBackspaceIDC_CECEOnCeIDC_CLEARCOnClearIDC_EQU=OnEquIDC_DISN/AN/AOnCal(dou
5、blenum)变量定义:doublepoz;//保存小数点的位置,初始化为1,表示poz-1个小数点。doublem_Dis;//Edit控件上需要显示的数字BOOLpoint_flag;//小数点表示位,判定是否是小数,是小数为1,不是小数为0。doublenumfirst;//保存计算过程中的前一个数字,doublenumsecond;//保存计算过程中的第二个数字charop;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’变量初始化:poz=1;m_Dis=0.0;numfirst=0;numsecond=0;o
6、p=0;94.4.2设计思路a)首先考虑对所有按键分为两类,数字类和符号类,0,1,2,3,4,5,6,7,8,9为数字类,+,-,*,/,=为符号类。数字在计算的过程中最多需要保存两个,所以定义了两个double型变量numfirst和numsecond来进行存储。符号需要一个charop来存储。b)然后考虑在计算的过程中,numfirst和numsecond的存储状态有三种,一种是numfirst==0&&numsecond==0也就是程序刚开始运行还没有开始录入数字的状态。二种是numfirst!=0&&numsecond==0也就是第一个数字已经录
7、入,符号也已经录入时候把m_Dis的值直接赋值给numfirst,第三种是numfirst!=0&&numsecond!=0,表示可以通过op来把两数合并为一个数。c)考虑到该计算器支持连续的计算,比如3.33+1.33*88/96=?。所以必须在点符号Button也要计算出之前的结果,通过判断op,来计算,把两个数字合并为一个数字,方便下一次运算,功能近似于点=,所以把=也划分到符号类。d)因为数字全部使用的是double,键入的数字必须通过一定的处理达到累加的效果,加上小数和整数的处理差异性大,所以分别用point_flag来判断,分别出来小数和整数。
8、4.2.3成员函数及其释义因为对OnNum0()到OnNum9()