欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    VC++课程设计(论文)计算器的设计.doc

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

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

    VC++课程设计(论文)计算器的设计.doc

    中北大学课程设计任务书 09/10 学年第 一 学期学 院: 信息商务学院 专 业: 电子信息科学与技术 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 课程设计题目: 程序设计综合实践 起 迄 日 期: 2009年12月21 日2010年1月15日 课程设计地点: 专业实验室 指 导 教 师: 系 主 任: 下达任务书日期: 2009 年12 月 21日课 程 设 计 任 务 书1设计目的:(1) 掌握VC+程序开发平台;(2) 掌握对话框模式的可视化实现和按钮消息的响应;(3) 掌握应用VC+库函数实现数字的输入、计算和显示等功能。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):(1)查阅相关资料,掌握基于面向对象的编程方法;(2)主界面采用对话框模式,编辑计算器相应的控件;(3)实现数据的输入、计算和显示;(4)要求4位同学各自实现不同分工。3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:(1) 要求设计组的每个成员都要了解设计的要求和思路;(2) 编写详细的设计说明书一份;(3) 要求有正确的运行结果及结果分析。课 程 设 计 任 务 书4主要参考文献:1 王华, 叶爱亮, 祁立学等. Visual C+ 6.0 编程实例与技巧. 北京:机械工业出版社, 1999.2 李光明. Visual C+ 6.0 经典实例大制作. 北京:中国人事出版社,2000.3 严华峰. Visual C+ 课程设计案例精编. 北京:中国水利水电出版社,2002.4 官章全, 刘加明. Visual C+ 6.0 类库大全. 北京:电子工业出版社,1999.5 张荣梅,梁晓林. Visual C+实用教程. 北京:冶金工业出版社,2004.6 魏亮,李春葆. Visual C+程序设计例学与实践. 北京:清华大学出版社,2006.7 陈清华, 朱红. Visual C+课程设计案例精选与编程指导. 南京:东南大学出版社,2004.5设计成果形式及要求:提供详细的设计说明书一份软件设计结果6工作计划及进度:2009年12月14日 12月21日: 学习VC有关编程方法;12月22日 12月30日: 在指导教师指导下实现程序设计,并完成课程设计说明书的撰写;12月31日:答辩。系主任审查意见: 签字: 年 月 日 目 录1、设计目的 2、设计方案介绍 3、设计主要步骤 4、源程序代码 5、运行结果 6、设计评述 7、参考文献 图1一、设计目的简介 在实践中掌握VC+程序开发平台,学会应用VC+库函数,编辑计算器相应的控件实现数字的输入,计算,显示等功能。二、设计主要方案介绍1、 在Visual C+ 6.0 环境下首先通过“新建”利用MFC向导建立一个基于模态对话框的MFC应用程序,然后再通过“资源”插入一个对话框IDD_CALCULATOR_DIALOG作为计算机器的主要运算界面,再利用ClassWizard创建与它关联的类CCalculatorDlg,并为该类添加相应的成员,设置各种属性;2、 在对话框中添加51个按纽、2个编辑框作为输入和输出显示、8个单选按钮、3个静态文本控件,并为控件添加相关联的成员变量,整体界面见上图:3、 分别为按纽、文本框添加VC+6.0代码,关联变量与控件之间的关系,以实现所要实现的功能。三、设计主要步骤 1、创建应用程序(1)选择FileNew菜单命令,并在弹出的新建对话框中单击Project标签。 (2)选择MFC AppWizard(exe),并在Project Name编辑框中输入Calculator作为工程名称。单击OK按钮,出现Step1对话框。2、创建对话资源 在工程工作区中单击Resource View标签显示应用程序资源。单击Dialog旁边的“十”,再双击IDDCALCULATOR_DIALOG并编辑对话框资源,编辑后的对话框如图1所示。 3、添加消息处理函数 首先利用Class Wizard 为编辑框控件增加CString型成员变量m_result用于结果显示,然后使用Class Wizaed为对话框类CcalculatorDlg增加消息处理函数,ClassWizard会自动完成有关的函数声明。4、为各按钮添加消息处理函数。5、添加成员处理函数和成员变量。6、添加完成各个功能的代码。7、添加处理科学计算的功能8、动态设置计算器大小。9、制度的选择,程序运行默认制度选中角度,当选项中“角度”按钮时,则需将其转换为角度计算,由公式:弧度PI*角度180,可将表达式中角度转换为弧度既sll-1=PI*sll-1/180。对于反、正余弦和反正余切,由于C+math.h库函数提供的计算结果是弧度的,所以当选中默认的“弧度”按钮时可不必将计算结果转换,当选中“角度”按钮时,则由公式:角度=弧度*180/PI,既可计算出来。10、结果进制数的转换,十进制转换为二进制、八进制和十六进制是采用的是取余法。二进制、八进制和十六进制转换为十进制采用的是加权法。其它进制的转换则遵循1位八进制相当于3位二进制,1位十六制相当于4位二进制的规律进行转换。11、常数表,定义了11个比较多用的常数值,方便计算。11个常数值存放的位置是一个弹出式菜单m_menu。12、历史表达式,首先创建一个菜单使用函数CreatePopupMenu(),然后定义一个函数AddToHistr(CString strExp)将表达式strExp的内容添加到菜单,其中在函数中,GetMenuItemCount()是用来获取菜单中子菜单个数,AppendMenu(MF_STRING,IMENU_ITEM_ID+b,strExp)是用来在菜单的未尾添加子菜单中,m_menuItem.Add(strExp)是将表达式strExp显示为菜单内容。有了这些处理后,则在“计算”按钮的消息映射函数上用AddToHistr(m_strExp)将计算表达式和结果加到菜单上,在“历史表达式”按钮的消息映射函数上用GetCursorPos(&point)获取光标所在位置,并用m_menu2.TrackPopupMenu(TPM_CENTERALIGN,point.x,point.y,this)在光标所在位置上显示菜单内容。菜单存历史表达式是在内存空间中静态分配一片内存用于存放,将分配内存不够时将不再存放。13、查错处理,主要检查表达是否为空,二元运算符是否少了操作数,一元运算符的函数表达式为空,是否缺少二元运算符,结果进制的转换是否越界。三、部分代码定制的消息处理函数void CNewButton:OnMouseMove(UINT nFlags, CPoint point) SetTimer(1,10,NULL);CButton:OnMouseMove(nFlags, point);BOOL CNewButton:OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) if (bHighlight) :SetCursor(hHand);return true;return CButton:OnSetCursor(pWnd, nHitTest, message);处理运算函数void CCalculatorDlg:MultiE(CString *strExp)if(strExp->IsEmpty()*strExp="ERROR_函数表达式为空_"if(IsDigital(*strExp)return;处理一元运算while(1)for(int i=0;i<FUNCNUM;i+)int pos=strExp->Find(opti);if(pos!=-1)CString str=strExp->Right(strExp->GetLength()-pos-opti.GetLength();double dx=StoN(str);if(m_strTmp=str) *strExp="ERROR"+str+"_无法识别的函数_"return;strExp->Delete(pos,strExp->GetLength()-pos);*strExp+=SingleE(opti,dx)+m_strTmp;MinusMinus(strExp);if(pos>=1)char ch=strExp->GetAt(pos-1);if(ch>=48 && ch<=57)*strExp="ERROR_缺少二元运算符_"return;break;if(i=FUNCNUM)break;处理二元运算int pos=-1;while(1)pos=strExp->Find('');if(pos=-1)break;elseCalcu(strExp,pos);while(1)pos=strExp->Find('/');if(pos=-1) break;else Calcu(strExp,pos);while(1)pos=strExp->Find('*');if(pos=-1) break;else Calcu(strExp,pos);while(1)pos=strExp->Find('%');if(pos=-1) break;else Calcu(strExp,pos);pos=0;if(strExp->GetAt(0)='-' | strExp->GetAt(0)='+')strExp->Insert(0,"0");while(1)int tmpos=strExp->Right(strExp->GetLength()-pos).Find('-');if(tmpos=-1)break;elsepos+=tmpos;if(pos=0 && pos<strExp->GetLength() && strExp->GetAt(pos+1)='-' | pos>0)if(strExp->GetAt(pos+1)='+')strExp->Delete(pos+1);pos=0;continue;四、运行结果计算表达式:sin( 25+5 )+abs( 8 ) 结果为:8.500000000000000 结果转换成二进制为:1000.1 结果转换成八进制为:10.4 转换成十六制为:8.8五、设计心得在做这个课程设计之前,我只学过C+语言,对Visual C+的设计一无所知,但通过一个月的摸索和讨论,掌握了很多Visual C+设计的技术。我个人觉得VisualC+要比C+方便但比较难。我觉得此次实验主要是我们掌握面向对象技术相关的一些软件开发技术。利用MFC类库开发Windows应用程序,怎样用计算器控件实现数字的输入、计算和显示等功能。刚开始设计时,还停留在C+的基础上,总也弄不对。后来经老师指导才发现C+与VC+有很大的不同。通过这次课程设计,我知道了很多知识,所以我感谢这次的课程设计。 六、参考资料 1、王华, 叶爱亮, 祁立学等. Visual C+ 6.0 编程实例与技巧. 北京:机械工业出版社, 1999.2、李光明. Visual C+ 6.0 经典实例大制作. 北京:中国人事出版社,2000.3、严华峰. Visual C+ 课程设计案例精编. 北京:中国水利水电出版社,2002.4、官章全, 刘加明. Visual C+ 6.0 类库大全. 北京:电子工业出版社,1999.5、张荣梅,梁晓林. Visual C+实用教程. 北京:冶金工业出版社,2004.6、魏亮,李春葆. Visual C+程序设计例学与实践. 北京:清华大学出版社,2006.7、陈清华, 朱红. Visual C+课程设计案例精选与编程指导. 南京:东南大学出版社,2004.

    注意事项

    本文(VC++课程设计(论文)计算器的设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开