欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++-MFC计算器编程课程设计实践报告.doc

    • 资源ID:16707856       资源大小:250KB        全文页数:10页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++-MFC计算器编程课程设计实践报告.doc

    精选优质文档-倾情为你奉上中南大学本科生课程设计(实践)设计报告(程序设计基础)题 目MFC编程科学计算器 学生学号学生姓名郭斌繁指导教师蔡 旭 晖学 院交通运输工程学院专业班级交通运输类1205班计算机基础教学实验中心2013 年 7 月 1 日 程序设计(C+)实践报告1. 引言C+语言的主要特点表现在两个方面,一是全面兼容C 语言,二是支持面向对象的程序: (1) C+是一个更好的C,它保持了C 语言的优点,大多数的C 程序代码略作修改或不作修改就可在C+的集成环境下调试和运行。这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。(2) C+是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。这对于设计、编制和调试一些大型的软件尤为重要。(3) C+集成环境不仅支持C+程序的编译和调试,而且也支持C 程序的编译和调试。通常,C+程序环境 约定:当源程序文件的扩展名为c时,则为C 程序;而当源程序文件的扩展名为cpp时,则为C+程序。(4) C+语句非常简练,对语法限制比较宽松,因此C+语法非常灵活。其优点是给用户编程带来书写上的方便。其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误。次课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。(1).设计目标 利用MFC程序开发工具设计一款可以进行简单计算及部分科学计算的计算器。在设计当中将综合“面向对象程序设计与结构化程序设计”的思想方法和知识点,编制一个小型的应用程序系统。通过此设计进一步提高自己的动手能力,并能使自己清楚的知道开发一个应用程序的思想、方法和流程。(2).选题分析 此次实践所选题目中除了简单的加减乘除运算程序之外还包括了余弦函数、双曲余弦函数、度分秒的转换和X的y次方及y次根号下x的运算程序。除去四则基本运算程序之外,其余程序不可以直接调用系统的库函数需要经过自己的思考和查阅资料并结合迈克劳林等公式从源头开发相应运算的源代码,因此必须熟练掌握基本编程、代码语言、类运算及成员函数的设计、按键功能设计和整体协调等方面的相关知识。在此程序的设计过程中既锻炼了自己对C+软件的掌握程度也服务了自己,尤其是装有WIN8的电脑,其本身的系统是不带计算器软件的,通过此设计也算是实践于应用。 2. 总体设计(1) 体系设计:所要设计的程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算、次方开方及双曲函数的运算,运算结果能正确显示,可以清除数据等。(2) 设计思路:1) 先在Visual C+ 6.0中建立一个MFC工程文件,名为calc_mfc。2) 在对话框中添加适当的编辑框、按钮、静态文件、单选框。3) 设计按钮,并修改其相应的ID与Caption。4) 选择和设置各控件的单击鼠标事件。5) 为编辑框添加double类型的关联变量m_dNum.6) 在calc_mfcDlg.h中添加math.h头文件,然后添加public成员。打开calc_mfcDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。3. 详细设计(1).通过“开始”按钮,选择“程序”菜单,然后打开“Microsoft Visual studio 6.0中文版”子菜单中的“Microsoft Visual C+ 6.0 中文版”程序,选择“工程”里面的MFC AppWizard(exe)程序,再选“基本对话框”选项按“确定”建立文件名为“calc_mfc”的工程. (2).将原界面的按钮删除并添加所需按钮及编辑框并将其按照一定规律排列(如图1)图1(3).将各按键的属性按照相应的功能进行修改(如图2)图2(4).向CCalc_mfcDlg类中添加以下变量(如图3)图3(5).在cale_mfcDlg.cpp的OnInitDialog()函数中添加如下代码变量初始化:m_dPre=0;m_dCur=0;m_dNext=0;m_strPre=_T("");m_strCur=_T("");m_strNext=_T("");m_nDotSign=0;m_nDotNo=0;(6).通过MFC的“建立类向导”向“CCalc_mfcDlg”类添加各按钮的消息处理函数。(如图4)因为程序中用到一些数学函数,所以在calc_mfcDlg的开始处添加包含语句#include <<cmath>>. 图4 图5(7).在calc_mfcDlg.h文件中的calc_mfcDlg类中添加成员函数的声明:void SetNum(int).并在cale_mfcDlg.cpp文件末尾添加数字键0-9的公有处理函数SetNum,代码如图5。添加数字键处理函数,如数字键1:(8).计算器程序的关键是计算的顺序,当按下运算符键时,它的右操作符还是未知的,因此要保存当前的运算符选择,然后键入要操作的数字,这一数字也要保存,等到下一次按下某个运算符时再将原来的保存的运算符和数字进行运算,如此循环直到按下“=”为止。所以在cale_mfcDlg.cpp文件末尾添加公有成员函数process().代码如图6:图6 图7图7是“+”按钮的消息处理函数,其余“-”、“*”、“/”、“=”只需将“+”换为相应的运算符即可。图8图9分别为“.”和AC键的消息处理函数:图8 图9(9).将菜单与对话框关联,方法是右击对话框,选择快捷菜单中的属性,在“对话属性”窗口中选择“菜单”列表中所建立的ID,如图10:图10(10).保存所编辑的所有程序,调试运行正确后即可得到目标程序,界面如下:(11).几种按键的消息函数实现; 1).cos:由cos的迈克劳林公式知相邻两项之间有如下关系: (m =0,2,4,6,)故cos可以先将t赋值为1,再利用上式做累加得到,累加的上限是<0.,x详细步骤如以下代码:注:t=1是将cos函数公式的第一项赋值于t。 2)cosh:Cosh函数是双曲余弦函数,由双曲余弦函数的计算公式及 (的泰勒公式)知,cosh函数可以有这两个公式调用实现,类比cos的迈克劳林公式,的相邻两项关系是:,因此利用计算cos函数的方法编辑代码得到函数的计算代码,然后定义一个double型的有返回值的函数,将其返回值设为,然后在cosh函数的程序里面调用刚才定义的函数返回值即可。3):由于此用算属于双目运算,由(8)知此函数的代码需要调用到process()函数。首先自定义一个函数,里面包括一个int型的变量j,两个double型的变量k和s并给s赋初值1.0,将m_dPre的值赋给k,将m_dCur的值赋给j。然后用一个for语句for(j;j>0;j-)s*=k;实现次方的计算,将s作为返回值。在process()函数中仿照其他语句添加的语句(必须放在process函数的最前面,否则无法使用),调用所定义函数的返回值赋给m_dPre。然后仿照图7的 程序将“+”改为“xy”(按钮的属性是xy)后输入到的函数中作为计算代码即可。4):同函数一样,此函数也是双目运算,计算函数的代码实现步骤类似。先将做如下变换:,由ln(1+x)的泰勒公式:知,lnx可由先将(m_dPre-1)赋值给m_dPre,再将m_dPre赋值给x,类比计算cos的方法设计计算lnx函数的自定义函数并将返回值赋给t,在定义一个函数将m_dCur赋值给y,并让此函数调用t,将(1/y)*t的值赋给返回值h,然后再调用2)中所定义过的函数,将h做为其参数得到结果m并返回给s.在process函数中类比其他语句定义的语句,最后通过调用函数将之前定义的函数的返回值s赋给m_dPre,在对应的按钮的函数中仿照图7的 程序将“+”改为“xky”(按钮的属性是xky)后输入到的函数中作为计算代码即可。5)dms:此按钮是将输入的度数按照度分秒的格式显示,先将m_dPre赋值给x,利用强制类型转换(int)x,所以(int)x即为所求的度数。用x-(int)x所得到的数乘以60然后继续做强制类型转换就得到分了,类比得到分的步骤再做一次就得到了秒,最后将得到的度加上分除以100加上秒除以10000赋值给m_dNum即可(不可能将度分秒分别显示在编辑框内)。4. 设计总结经过两周的努力,课程设计基本完成了,在课程设计的实践中,我学到很多有用的知识,也积累了不少宝贵的经验。课程设计是以一个计算器的实现为基础,掌握一个基于对话框的应用程序的编程方法以及对话框常用控件的高级编程。在课程设计中我了解到到对话框应用程序的编程模式、改变按钮的形状及有关按钮函数计算程序代码的编写等知识。在此期间,遇上了不少的技术难题,但是经过努力,咨询老师,通过查找资料,难题还是一个个被解决了,我从中学到了许多课堂上没学到的东西,这使得我很高兴。实践中我觉得自己的程序设计方法及顺序是优缺并存的,比如在开始的时候由于基本计算器的按钮已经设计排序完成了,到后面才知道要在添加一些按钮,这样就只能手动的调节新添加的按钮的大小使其一致,还有就是在编写函数程序 时候有些代码不够精炼等。但我能够自行设计部分函数的计算方式及代码的完全自主完成,这一点还是不错的。这次设计的计算器还不够完善,还有很多功能没有实现,在接下来的时间里我决定在完善和改进的基础上继续完成其他功能的运算,使自己设计的计算器能够像一个真正的科学计算器一样进行各种运算,虽然这将需要很多的时间和精力,但我觉得依然值得自己去做。 经过设计的各个环节,我从中学到了很多,锻炼了自己对系统的设计的能力,从系统的需求到系统的功能,到系统的测试,再到系统的改进,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定了更好的基础。专心-专注-专业

    注意事项

    本文(C++-MFC计算器编程课程设计实践报告.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开