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

上传人:飞*** 文档编号:30954103 上传时间:2018-02-03 格式:DOC 页数:12 大小:536.50KB
返回 下载 相关 举报
C++课程设计简易计算器实验报告_第1页
第1页 / 共12页
C++课程设计简易计算器实验报告_第2页
第2页 / 共12页
C++课程设计简易计算器实验报告_第3页
第3页 / 共12页
C++课程设计简易计算器实验报告_第4页
第4页 / 共12页
C++课程设计简易计算器实验报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C++课程设计简易计算器实验报告》由会员分享,可在线阅读,更多相关《C++课程设计简易计算器实验报告(12页珍藏版)》请在金锄头文库上搜索。

1、加中实训课程设计计算器设计报告程序设计基础 (C+)课程设计报告计算器姓 名:班 级:学 号:指导教师:成 绩:完成时间:完成地点:加中实训课程设计计算器设计报告计算器1 基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。同时包含清除功能。2 设计思路如图 1 是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把 m_edit传递给 op1,并传递给变量 calculator 相对运算符对应的值,输入的第二个操作数传递给 op2,点击等号根据 calculator 的值进行相应运算并输出结果。若点击

2、的是单目运算符,则直接对其处理得出结果。若点击清零,则 m_edit 等于 0。设计思路流程图如下(见下页) 。加中实训课程设计计算器设计报告编辑框关联变量m_edit 保存至 op2选择“=”根据变量 calculator 的值进行运算把结果保存到 s选择运算符 传递信息给变量calculator输入数据 1编辑框关联变量m_edit 保存至 op1输出结果结束开始输入数据 2运算符鉴别编辑框关联变量m_edit 保存至 x双目运算符单目运算符进行运算把结果保存到 x图 1 计算器设计思路总流程图加中实训课程设计计算器设计报告3 软件设计3.1 创建步骤打开 Microsoft Visual

3、 C+ 6.0,选择新建,在弹出框内选择 MFC AppWizardexe工程,输入工程名 Calculator 及其所在位置。将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完成。MFC AppWizard 建立基于对话窗口的程序框架。3.2 界面设计1、创建控件在对话框上的合适的位置画出编辑框和下压式按钮。如图 2 所示。图 2 绘制编辑框在按钮和编辑框属性对话框中输入控件的 ID 值和标题属性。如图 3 所示。图 3 Push Button 属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。加中实训课程设计计算器设计报告表 1 各对象属性对象 ID 标

4、题或说明编辑框 IDC_EDIT1 结果显示按钮 IDC_BUTTON0 0按钮 IDC_BUTTON1 1按钮 IDC_BUTTON2 2按钮 IDC_BUTTON3 3按钮 IDC_BUTTON4 4按钮 IDC_BUTTON5 5按钮 IDC_BUTTON6 6按钮 IDC_BUTTON7 7按钮 IDC_BUTTON8 8按钮 IDC_BUTTON9 9按钮 IDC_ BUTTONneg +/-按钮 IDC_ BUTTONpot .按钮 IDC_ BUTTONadd +按钮 IDC_BUTTONsub -按钮 IDC_BUTTONmul *按钮 IDC_BUTTONdiv /按钮 ID

5、C_BUTTONsqrt sqrt按钮 IDC_BUTTONCE CE完成后界面如图 4 所示。图 4 计算器界面加中实训课程设计计算器设计报告2、连接变量和代码1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择 ClassWizard 菜单项,弹出 MFC ClassWizard 对话框,选择 Member Variables 选项卡,如图 5 所示。 图 5 MFC ClassWizard 对话框中的 Menber Variable 选项卡单击 Add Variables 按钮,在弹出的对话框中连接变量 m_edit。变量类型设定为CString 型。如图 6 所示。图 6

6、m_edit 属性设置加中实训课程设计计算器设计报告2) 给“1”按钮连接代码。在“1”按钮上单击鼠标右键,选择 ClassWizard 菜单项,在弹出的对话框中选择 Messages Maps 选项卡,在 Messages 列表框中选择 BN_CLICKED 项,即选择单击按钮事件,如图 7 所示。 图 7 “1”按钮链接代码对话框3.3 关键功能的实现1)操作数的输入编辑框所关联的变量为 m_edit,程序开始时为零。每点击一个数字键按钮,就把它累加到 m_edit 里并刷新显示。2)单目运算符功能的实现单目运算符中包含要执行运算的函数。正负号功能的实现利用语句 m_edit.FindOn

7、eOf(-)寻找操作数中是否有符号“-” ,若没有符号,则在字符串 m_edit 前添加“- ”。若有符号,则把字符串型变量 m_edit 转变为浮点型,进行相反数运算(对数值取负) ,再转变为字符串型通过传递给 m_edit 输出。开方 sqrt 功能的实现利用语句 x=sqrt(x),实现功能。倒数功能的实现利用语句 x=1/x,实现功能。加中实训课程设计计算器设计报告3)双目运算符功能的实现执行双目运算符把 m_edit 中的操作数值保存到变量 op1 中,然后把 m_edit 清零。再将输入的第二个操作数保存到变量 op2 中。根据相应的运算符赋予变量 calculator 相应值,执

8、行等号运算时,根据 calculator 值选择对应运算函数,讲运算结果传递给 m_edit 并输出。4)小数点利用语句 m_edit.FindOneOf(.) 寻找操作数中是否有符号“.” , 若有不添加“.” 。若没有判断 m_edit.GetLength(),若大于 0,添加字符串“.” ;若等于 0,添加字符串 “0.”。4 结论与心得体会经过测试,得出结论为设计的计算器能够完成功能描述内容中的全部功能。经过 2 个星期的课程设计实训,在老师和同学的共同帮助下,顺利完成该课程设计,收获很大。通过本次实训,我在很多方面得到了很大提升。首先在理论知识与实际操作能力的结合方面,通过具体应用软

9、件的制作,课本中学习到知识得到具体的应用,对知识的理解更清晰、具体、全面,理论知识的实际应用更加熟练。对类、函数等概念的理解和应用更加深刻。编程语言语句的应用更为流利,巩固了各语句的使用方法和技巧。同时,对编程的过程了解的更加清晰,熟练地掌握了很多课堂知识之外的能力。在团队协作方面,我意识到了团队协作的重要意义,学到了如何从他人处寻得帮助和与他人分享成果。从团队合作中我学习到了技术协作与人际交流双方面的能力。懂得怎样通过团队协作提高效率。另外,通过本次实训,我充分意识到了当前人才市场现况和自己的不足,对自己的现况有了危机感,并制定了自己的发展计划,使自己确立明确的奋斗目标,为成为合格计算机专业

10、人才而努力。加中实训课程设计计算器设计报告5 附录关键源代码数字键程序代码(以“1”为例)void CCalculatorDlg:OnButton1() /数字键“1” if (k!=1) /判断是否已点击运算符按钮m_edit=m_edit+1; /如果 k1 即没有点击运算符,则直接改变字符串UpdateData(false);else m_edit=; /如果 k=1 即点击过运算符,则先清空编辑框UpdateData(false);m_edit=m_edit+1;UpdateData(false);k=0;四则运算程序代码(以“+”为例)float op1=0,op2=0;char c

11、alculate;void CCalculatorDlg:OnButtonadd() k=1; /是否点击过运算符的条件,与数字键对应calculate=+; /传度“+”给变量 calculator,与等号“=”对应UpdateData(true);op1=atof(m_edit);开方 sqrt 程序代码加中实训课程设计计算器设计报告void CCalculatorDlg:OnBUTTONSqrt() k=1;UpdateData(true);op1=atof(m_edit);if (op1=0)a=1;if (a=0if (a=0UpdateData(false);等号“=” 程序代码v

12、oid CCalculatorDlg:OnButtonequal() UpdateData(true);op2=atof(m_edit);float s;switch(calculate)case+:s=op1+op2;break; /与运算符键相对应的运算函数case-:s=op1-op2;break;case*:s=op1*op2;break;加中实训课程设计计算器设计报告case/:s=op1/op2;break;cases:s=sqrt(op1);break;casew:s=0;break;m_edit.Format(%f,s);UpdateData(false);清除 CE 程序代码

13、void CCalculatorDlg:OnButtonCE() m_edit=;UpdateData(false);百分号程序代码void CCalculatorDlg:OnButtonperc() k=1;float x;UpdateData(true);x=atof(m_edit);x=x*100;m_edit.Format(%f,x);m_edit=m_edit+%;UpdateData(false);正负号(相反数)void CCalculatorDlg:OnButtonneg () k=1;if (m_edit.FindOneOf(-)=0) float x;UpdateData(true);x=atof(m_edit);x=-x;m_edit.Format(%f,x);加中实训课程设计计算器设计报告UpdateData(false);elseUpdateData(true);m_edit=-+m_edit;UpdateData(false);倒数 1/x 程序代码void CCalculatorDlg:OnButtonreci() k=1;float x;UpdateData(true);x=atof(m_edit);x=1/x;m_edit.Format(%f,x);UpdateData(false);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号