加中实训课程设计_第1页
加中实训课程设计_第2页
加中实训课程设计_第3页
加中实训课程设计_第4页
加中实训课程设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、行运算 把结果保存到x 加中实训课程设计-计算器设计报告 3 软件设计 3.1 创立步骤 翻开Microsoft Visual C+ 6.0,选择新建,在弹出框内选择MFC AppWizardexe工程, 输入工程名Calculator 及其所在位置。将弹出MFCAppWizard-step 1 对话框,选择根本对 话框,点击完成。MFC AppWizard 建立基于对话窗口的程序框架。 3.2 界面设计 1、创立控件 在对话框上的适宜的位置画出编辑框和下压式按钮。如图2 所示。 图2 绘制编辑框 在按钮和编辑框属性对话框中输入控件的ID 值和标题属性。

4、如图3 所示。 图3 Push Button 属性 按照上面的操作过程编辑其他按钮和编辑框等对象的属性。 加中实训课程设计-计算器设计报告 表1 各对象属性 对象 ID 标题或说明 编辑框 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 +/

5、- 按钮 IDC_ BUTTONpot . 按钮 IDC_ BUTTONadd + 按钮 IDC_BUTTONsub - 按钮 IDC_BUTTONmul * 按钮 IDC_BUTTONdiv / 按钮 IDC_BUTTONsqrt sqrt 按钮 IDC_BUTTONCE CE 完成后界面如图4 所示。 图4 计算器界面 加中实训课程设计-计算器设计报告 2、连接变量和代码 1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择 ClassWizard 菜 单项,弹出MFC ClassWizard 对话框,选择Member Variables 选项卡,如图5 所

6、示。 图5 MFC ClassWizard 对话框中的Menber Variable 选项卡 单击Add Variables 按钮,在弹出的对话框中连接变量m_edit。变量类型设定为CString 型。如图6 所示。 图6 m_edit 属性设置 加中实训课程设计-计算器设计报告 2) 给“1按钮连接代码。在“1按钮上单击鼠标右键,选择 ClassWizard 菜单项,在弹 出的对话框中选择Messages Maps 选项卡,在Messages 列表框中选择BN_CLICKED 项, 即选择单击按钮事件,如图7 所示。 图7 “1按钮链接代码对话框 3.3 关键

7、功能的实现 1)操作数的输入 编辑框所关联的变量为m_edit,程序开始时为零。每点击一个数字键按钮,就把它累 加到m_edit 里并刷新显示。 2)单目运算符功能的实现 单目运算符中包含要执行运算的函数。 正负号功能的实现 利用语句 m_edit.FindOneOf("-")寻找操作数中是否有符号“-,假设没有符号,那么在字 符串m_edit 前添加“-。假设有符号,那么把字符串型变量m_edit 转变为浮点型,进行相反数 运算(对数值取负),再转变为字符串型通过传递给m_edit 输出。 开方sqrt 功能的实现 利用语句x=sqrt(x),实现功能。 倒数功

8、能的实现 利用语句x=1/x,实现功能。 加中实训课程设计-计算器设计报告 3)双目运算符功能的实现 执行双目运算符把 m_edit 中的操作数值保存到变量 op1 中,然后把 m_edit 清零。再 将输入的第二个操作数保存到变量op2 中。根据相应的运算符赋予变量calculator 相应值, 执行等号运算时,根据calculator 值选择对应运算函数,讲运算结果传递给m_edit 并输出。 4)小数点 利用语句m_edit.FindOneOf(".") 寻找操作数中是否有符号“., 假设有不添加“.。假设 没有判断m_edit.GetLength(),假设大于0,添

9、加字符串“.;假设等于0,添加字符串 “0.。 4 结论与心得体会 经过测试,得出结论为设计的计算器能够完成功能描述内容中的全部功能。 经过2 个星期的课程设计实训,在老师和同学的共同帮助下,顺利完成该课程设计, 收获很大。 通过本次实训,我在很多方面得到了很大提升。 首先在理论知识与实际操作能力的结合方面,通过具体应用软件的制作,课本中学习 到知识得到具体的应用,对知识的理解更清晰、具体、全面,理论知识的实际应用更加熟 练。对类、函数等概念的理解和应用更加深刻。编程语言语句的应用更为流利,稳固了各 语句的使用方法和技巧。同时,对编程的过程了解的更加清晰,熟练地掌握了很多课堂知 识之外的能力。

10、 在团队协作方面,我意识到了团队协作的重要意义,学到了如何从他人处寻得帮助和 与他人分享成果。从团队合作中我学习到了技术协作与人际交流双方面的能力。懂得怎样 通过团队协作提高效率。 另外,通过本次实训,我充分意识到了当前人才市场现况和自己的缺乏,对自己的现 况有了危机感,并制定了自己的开展方案,使自己确立明确的奋斗目标,为成为合格计算 机专业人才而努力。 加中实训课程设计-计算器设计报告 5 附录 关键源代码 数字键程序代码(以“1为例) void CCalculatorDlg:OnButton1() /数字键“1 if (k!=1) /判断是否已点击运算符按钮 m_edit=m_edit+&

11、quot;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 calculate; void CCalculatorDlg:OnButtonadd() k=1; /是否点击过运算符的条件,与数字键对应 calculate=&#

12、39;+' /传度“+给变量calculator,与等号“=对应 UpdateData(true); op1=atof(m_edit); 开方sqrt 程序代码 void CCalculatorDlg:OnBUTTONSqrt() k=1; UpdateData(true); 加中实训课程设计-计算器设计报告 op1=atof(m_edit); if (op1<0) calculate='w' else calculate='s' 小数点程序代码 void CCalculatorDlg:OnBUTTONpot() UpdateData(true);

13、 int a=0; for (int b=0;b=0) a=1; if (a=0&&m_edit.GetLength()>0)m_edit=m_edit+"." if (a=0&&m_edit.GetLength()=0)m_edit=m_edit+"0." UpdateData(false); 等号“=程序代码 void CCalculatorDlg:OnButtonequal() UpdateData(true); op2=atof(m_edit); float s; switch(calculate) case

14、'+':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; 加中实训课程设计-计算器设计报告 m_edit.Format("%f",s); UpdateData(false); 去除CE 程序代码 void CCalculator

15、Dlg: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); else 加中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论