C课程设计简易计算器实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《程序设计基础》(C++)课程设计报告计算器姓名:班级:学号:指导教师:成绩:完成时间:完成地点:计算器1基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。同时包含清除功能。2设计思路如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。若点击的是单目运算符,则直接对其处理得出结果。若点击清零,则m_edit等于0。设计思路流程图如下(见下页)。图1计算器设计思路总流程图编辑框关联变量m_edit保存至op2选择“=”根据变量calculator的值进行运算把结果保存到s选择运算符传递信息给变量calculator输入数据1编辑框关联变量m_edit保存至op1输出结果结束开始输入数据2运算符鉴别编辑框关联变量m_edit保存至x双目运算符单目运算符进行运算把结果保存到x3软件设计创建步骤打开MicrosoftVisualC++,选择新建,在弹出框内选择MFCAppWizard[exe]工程,输入工程名Calculator及其所在位置。将弹出MFCAppWizard-step1对话框,选择基本对话框,点击完成。MFCAppWizard建立基于对话窗口的程序框架。界面设计1、创建控件在对话框上的合适的位置画出编辑框和下压式按钮。如图2所示。图2绘制编辑框在按钮和编辑框属性对话框中输入控件的ID值和标题属性。如图3所示。图3PushButton属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。表1各对象属性对象ID标题或说明编辑框IDC_EDIT1结果显示按钮IDC_BUTTON00按钮IDC_BUTTON11按钮IDC_BUTTON22按钮IDC_BUTTON33按钮IDC_BUTTON44按钮IDC_BUTTON55按钮IDC_BUTTON66按钮IDC_BUTTON77按钮IDC_BUTTON88按钮IDC_BUTTON99按钮IDC_BUTTONneg+/-按钮IDC_BUTTONpot.按钮IDC_BUTTONadd+按钮IDC_BUTTONsub-按钮IDC_BUTTONmul*按钮IDC_BUTTONdiv/按钮IDC_BUTTONsqrtsqrt按钮IDC_BUTTONCECE完成后界面如图4所示。图4计算器界面2、连接变量和代码1)给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard菜单项,弹出MFCClassWizard对话框,选择MemberVariables选项卡,如图5所示。图5MFCClassWizard对话框中的MenberVariable选项卡单击AddVariables按钮,在弹出的对话框中连接变量m_edit。变量类型设定为CString型。如图6所示。图6m_edit属性设置2)给“1”按钮连接代码。在“1”按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择MessagesMaps选项卡,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图7所示。图7“1”按钮链接代码对话框关键功能的实现1)操作数的输入编辑框所关联的变量为m_edit,程序开始时为零。每点击一个数字键按钮,就把它累加到m_edit里并刷新显示。2)单目运算符功能的实现单目运算符中包含要执行运算的函数。①正负号功能的实现利用语句(-)寻找操作数中是否有符号“-”,若没有符号,则在字符串m_edit前添加“-”。若有符号,则把字符串型变量m_edit转变为浮点型,进行相反数运算(对数值取负),再转变为字符串型通过传递给m_edit输出。②开方sqrt功能的实现利用语句x=sqrt(x),实现功能。③倒数功能的实现利用语句x=1/x,实现功能。3)双目运算符功能的实现执行双目运算符把m_edit中的操作数值保存到变量op1中,然后把m_edit清零。再将输入的第二个操作数保存到变量op2中。根据相应的运算符赋予变量calculator相应值,执行等号运算时,根据calculator值选择对应运算函数,讲运算结果传递给m_edit并输出。4)小数点利用语句(.)寻找操作数中是否有符号“.”,若有不添加“.”。若没有判断(),若大于0,添加字符串“.”;若等于0,添加字符串“0.”。4结论与心得体会经过测试,得出结论为设计的计算器能够完成功能描述内容中的全部功能。经过2个星期的课程1”=0)a=1;}if(a==0&&()0)m_edit=m_edit+.;if(a==0&&()==0)m_edit=m_edit+0.;UpdateData(false);}⑤等号“=”程序代码voidCCalculatorDlg::OnButtonequal(){UpdateData(true);op2=atof(m_edit);floats;switch(calculate){case'+':s=op1+op2;break;//与运算符键相对应的运算函数case'-':s=op1-op2;break;case'*':s=op1*op2;break;case'/':s=op1/op2;break;case's':s=sqrt(op1);break;case'w':s=0;break;}(%f,s);UpdateData(false);}⑥清除CE程序代码voidCCalculatorDlg::OnButtonCE(){m_edit=;UpdateData(false);}⑦百分号程序代码voidCCalculatorDlg::OnButtonperc(){k=1;floatx;UpdateData(true);x=atof(m_edit);x=x*100;(%f,x);m_edit=m_edit+%;UpdateData(false);}⑧正负号(相反数)voidCCalculatorDlg::OnButtonneg(){k=1;if(-)=0){floatx;UpdateData(true);x=atof(m_edit);x=-x;(%f,x);UpdateData(false);}else{UpdateData(true);m_edit=-+m_edit;UpdateData(false);}}⑨倒数1/x程序代码voidCCalculatorDlg::OnButtonreci(){k=1;floatx;UpdateData(true);x=atof(m_edit);x=1/x;(%f,x);UpdateData(false);}

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功