《加中实训课程设计》由会员分享,可在线阅读,更多相关《加中实训课程设计(5页珍藏版)》请在金锄头文库上搜索。
1、加中实训课程设计-计算器设计报告 程序设计基础(C+)课程设计报告 计算器 姓 名: 班 级: 学 号: 指导教师: 成 绩: 完成时间: 完成地点: 加中实训课程设计-计算器设计报告 计算器 1 基本功能描述 计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。可对输入任意操 作数,包括小数和整数及正数和负数进行以上的所有运算。同时包含清除功能。 2设计思路 如图 1 是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把 m_edit 传递给op1,并传递给变量calculator 相对运算符对应的值,输入的第二个操作数传递给 op2,点击等号根据calculator 的值进
2、行相应运算并输出结果。若点击的是单目运算符, 则直接对其处理得出结果。若点击清零,则m_edit 等于0。设计思路流程图如下(见下页)。 加中实训课程设计-计算器设计报告 图1 计算器设计思路总流程图 编辑框关联变量 m_edit 保存至op2 选择“=”根据变 量 calculator 的值 进行运算 把结果保存到s 选择运算符 传递 信 息 给 变 量 calculator 输入数据1 编辑框关联变量 m_edit 保存至op1 输出结果 结束 开始 输入数据2 运算符鉴别 编辑框关联变量 m_edit 保存至x 双目运算符单目运算符 进行运算 把结果保存到x 加中实训课程设计-计算器设计
3、报告 3 软件设计3.1 创建步骤 打开Microsoft Visual C+ 6.0,选择新建,在弹出框内选择MFCAppWizardexe工程, 输入工程名Calculator 及其所在位置。将弹出MFCAppWizard-step 1 对话框,选择基本对 话框,点击完成。MFCAppWizard 建立基于对话窗口的程序框架。 3.2 界面设计1、创建控件 在对话框上的合适的位置画出编辑框和下压式按钮。如图2 所示。 图2 绘制编辑框 在按钮和编辑框属性对话框中输入控件的ID 值和标题属性。如图3 所示。 图3 Push Button 属性 按照上面的操作过程编辑其他按钮和编辑框等对象的属
4、性。 加中实训课程设计-计算器设计报告 表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 +/- 按钮 IDC_ BUTTONpot . 按钮 IDC_ BUTTONadd + 按钮 IDC_B
5、UTTONsub - 按钮 IDC_BUTTONmul * 按钮 IDC_BUTTONdiv / 按钮 IDC_BUTTONsqrt sqrt 按钮 IDC_BUTTONCE CE 完成后界面如图4 所示。 图4 计算器界面 加中实训课程设计-计算器设计报告 2、连接变量和代码 1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择 ClassWizard 菜单项,弹出MFCClassWizard 对话框,选择Member Variables 选项卡,如图5 所示。 图5MFCClassWizard 对话框中的Menber Variable 选项卡单击Add Variables 按钮
6、,在弹出的对话框中连接变量m_edit。变量类型设定为CString 型。如图6 所示。 图6 m_edit 属性设置 加中实训课程设计-计算器设计报告 2) 给“1”按钮连接代码。在“1”按钮上单击鼠标右键,选择 ClassWizard 菜单项,在弹 出的对话框中选择Messages Maps 选项卡,在Messages 列表框中选择BN_CLICKED 项, 即选择单击按钮事件,如图7 所示。 图7 “1”按钮链接代码对话框 3.3 关键功能的实现 1)操作数的输入 编辑框所关联的变量为m_edit,程序开始时为零。每点击一个数字键按钮,就把它累 加到m_edit 里并刷新显示。 2)单目
7、运算符功能的实现单目运算符中包含要执行运算的函数。 正负号功能的实现 利用语句 m_edit.FindOneOf(-)寻找操作数中是否有符号“-”,若没有符号,则在字 符串m_edit 前添加“-”。若有符号,则把字符串型变量m_edit 转变为浮点型,进行相反数 运算(对数值取负),再转变为字符串型通过传递给m_edit 输出。 开方sqrt 功能的实现 利用语句x=sqrt(x),实现功能。 倒数功能的实现 利用语句x=1/x,实现功能。 加中实训课程设计-计算器设计报告 3)双目运算符功能的实现 执行双目运算符把 m_edit 中的操作数值保存到变量 op1 中,然后把 m_edit 清
8、零。再 将输入的第二个操作数保存到变量op2 中。根据相应的运算符赋予变量calculator 相应值, 执行等号运算时,根据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
11、=m_edit+1; UpdateData(false); k=0; 四则运算程序代码(以“+”为例) float op1=0,op2=0; char calculate; void CCalculatorDlg:OnButtonadd() k=1; /是否点击过运算符的条件,与数字键对应 calculate=+; /传度“+”给变量calculator,与等号“=”对应 UpdateData(true); op1=atof(m_edit); 开方sqrt 程序代码 void CCalculatorDlg:OnBUTTONSqrt() k=1; UpdateData(true); 加中实训课程
12、设计-计算器设计报告 op1=atof(m_edit); if (op10)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+:s=op1+op2;break; /与运算符键相对应的运算函数 case-:s=op1-op2;break; case*:s=o
13、p1*op2;break; case/:s=op1/op2;break; cases:s=sqrt(op1);break; casew:s=0;break; 加中实训课程设计-计算器设计报告 m_edit.Format(%f,s); UpdateData(false); 清除CE 程序代码 void CCalculatorDlg:OnButtonCE() m_edit=; UpdateData(false); 百分号程序代码 void CCalculatorDlg:OnButtonperc() k=1; float x; UpdateData(true); x=atof(m_edit); x=
14、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 加中实训课程设计-计算器设计报告 UpdateData(true); m_edit=-+m_edit; UpdateData(fal
15、se); 倒数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); 企业一般可在支付平台上备案多个用于税费电子支付的账号,法人卡用户可通过点击“修改可操作账号”,将这些银行账号的操作权限给予指定的操作员卡用户,并设定最大可操作金额。County continuation records has examined and approved the draft, spirit, believe, comprehensive Yearbook of zhuanglang already prepared draft, entered the phase of evaluation. Civil air defense work