




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题 目: 简单的计算器 院 (系): 数学与计算机学院 年级专业: 软件工程 姓 名: 学 号: 指导教师: 2014年6月27日 攀枝花学院本科学生课程设计任务书题目计算器1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)根据计算器的实际功能,要求:(1)能够实现简单的加、减、乘、除、乘方、开方、正弦、余弦运算等,界面美观。3、主要参考文献4、课程设计工作进度计划序号时间(天)内容安排备注11分析设计准备周一22编程调试阶段周二至周三31编写课程设计报告周四41考核周五总计5(天)指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 接受任务时间: 2014 年6 月 23 日注:任务书由指导教师填写。课程设计(论文)指导教师成绩评定表题目名称评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日摘要本课程设计将实现一个简单计算器。其类似于Windows附件中自带的计算器。这个计算器不仅实现了简单的四则运算功能,还实现了高级的科学计算功能,而且具有简洁大方的图文外观。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。在课程设计中,系统开发平台为Windows 7,程序设计设计语言采用Visual C+,在程序设计中,采用了结构化与面向对象两种解决问题的方法。关键词: 程序设计,计算器,MFC,按钮控件。 目录1需求分析61.1 需求概述61.2 需求环境62 设计分析62.1从要求分析:62.2 程序流程图73各模块的功能及程序说明84源程序84.1初始化数据模块:84.2数据输入模块:94.3计算方式选择模块:104.4结果计算模块115操作方法126实验结果121、按开始,输入15627.0956,结果如下图显示:122、按开始,输入300+500=,结果如下图显示:133、按开始,输入300*100=,结果如下图显示:134、按开始,输入36开方=,结果如下图显示:147设计体会15参考文献161需求分析1.1 需求概述本软件主要用于计算机windows 2000/XP以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。要程序能实现:加,减,乘,除,开方,乘方,sin,cos等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。另外还可以实现多种科学计算的功能,如:三角函数的计算,弧度与角度间的转换,对数指数的计算等等。1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:硬件要求:一台计算机。软件配置:WINDOWS、C/VC+6.0。2 设计分析2.1从要求分析:(1)界面类似于windows系统中提供的计算器界面;(2)能实现加、减、乘、除、乘方、开方等功能。界面类似于windows系统中提供的计算器界面,则数字的输入和功能的执行都通过按键来实现,并且能够在显示区域里及时的显示出数据,所用本程序使用VC+提供的高度可视化的应用程序开发工具MFC来实现。要实现加、减、乘、除、乘方、开方等功能,则在程序中包含math.h库函数文件,通过引用相应的函数来实现乘方、开方等功能。在输入第一个计算参数以后,点击需要执行的计算方式,然后输入第二个计算参数,点击“=”按钮,则会在显示区显示出正确的结果。本程序从设计上来讲,主要分为两个重点部分,一个是数字的输入,即逐个点击单个数字(包括小数点)之后,这些数据能够在显示区正确的显示。第二个是数据的计算,先输入第一个计算参数,然后选择计算方式,再输入第二个计算参数,最后点击“=”按钮,计算结果。2.2 程序流程图图2.2 程序流程图3各模块的功能及程序说明按照程序的设计,可以分为数据显示模块、数据输入模块、计算方式选择模块、结果计算模块,以下逐个说明各模块的功能及程序说明。1、数据显示模块。数据显示模块显示用户输入的数字和计算器计算的结果,主要由一个编辑框组成。数字显示框是一个编辑框控件,属性设置为只读模式,不能由用户编辑。在MFC的类向导中,给数字显示框添加一个变量m_num,用来记录数字的变化,当每次操作以后,都会把数字更新到界面上,显示给用户。2、数据输入模块。数据输入模块用来输入1、2、3、4、5、6、7、8、9、0等十个数字和一个“.”小数。有一个变量m_dian来标识小数点是否已经输入,如果变量等于1,则在同一个数据的输入小数位,小数点标识只在第一次点击时有效。每一个按键的操作都由一个函数单独完成,避免相互影响。每一次数据输入,都会更新数据框的显示,达到实时性。3、计算方式选择模块。计算方式选择用来选择加、减、乘、除、乘方、开方,sin,cos等8个操作,每个计算方式都有一个单独的按钮,每个按钮都有一个单独的函数来执行。用一个int类型的变量m_fuhao来标识计算方式的选择。执行计算方式选择以后,把原先数据框中显示的数据赋值给第一个计算参数m_canshu1,并且对于系统标识变量进行相应的处理。因为对于六个函数来说,这些系统标识变量的相应处理都是相同的,所以把这些系统标识变量整理为一个函数void TagFuc()初始化m_dian等部分数据,以利于代码的重复利用。4、结果计算模块。结果计算模块是点击了“=”按键以后,执行相应的计算,并且输出结果。在其他的模块已经以此执行输入了第一个操作数据、计算方式、第二个操作数据,然后在这里根据这些数据进行计算。在这个模块中,使用switch语句,分别根据计算方式的不同执行相应的操作。执行完计算以后,将结果显示在显示框中,并且对系统标识变量进行一些相应的处理。5、数据初始化,开始按键下一程序来实现初始化。4源程序根据程序模块的划分,下面根据模块依次来对其他模块的源程序进行说明。4.1初始化数据模块:void CMyDlg:OnButton21() /开始初始化,清零按键/ TODO: Add your control notification handler code here m_canshu1=0; m_canshu2=0; m_1=0; m_dian=0; m_dianshu=1; m_fuhao=0; m_num=0; UpdateData(false);void CMyDlg:TagFuc()/局部初始化,当我们按了加减等符号后,可以再次输入 作为类成员,没有按钮,调用启动m_num=0;m_dian=0;m_dianshu=1;m_1=0;UpdateData(false);4.2数据输入模块:void CMyDlg:OnButton1() /按键1if(m_1=1)/显示框中原来的数据是否继续使用。刚点击过加减乘除乘方开方或者等于按键,则原来的数据不继续使用m_num=0;m_1=0; /0代表没有点过过加减乘除乘方开方或者等于按键,则原来的数据继续使用if(m_dian=0)/是否已经输入小数点,0代表没按过m_num=10*m_num+1; /整数,则把新数据加在原来数据之后elsedouble jishu=1;for(int i=0;im_dianshu;i+)jishu=jishu/10; m_num=m_num+jishu;m_dianshu=m_dianshu+1;/小数点后的位数再加1UpdateData(false);4.3计算方式选择模块:void CMyDlg:OnButton13() /加法按键/ TODO: Add your control notification handler code herem_fuhao=1;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton17() /减法按键/ TODO: Add your control notification handler code herem_fuhao=2;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton14() /乘法按键/ TODO: Add your control notification handler code herem_fuhao=3;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton18() /除法按键/ TODO: Add your control notification handler code herem_fuhao=4;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton15() /sin按键/ TODO: Add your control notification handler code herem_fuhao=7;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton19() /cos按键/ TODO: Add your control notification handler code herem_fuhao=8;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton16() /乘方按键/ TODO: Add your control notification handler code herem_fuhao=5;m_canshu1=m_num;TagFuc();m_1=0;void CMyDlg:OnButton20() /开方按键/ TODO: Add your control notification handler code herem_fuhao=6;m_canshu1=m_num;TagFuc();m_1=0;4.4结果计算模块void CMyDlg:OnButton12() /=按键/ TODO: Add your control notification handler code hereif(m_1=0)/这个判断是为了处理用户点击完=,没有点击其他按键再点击=,这种情况下,不更新第二个计算参数。m_canshu2=m_num;/if(m_tag=true)m_canshu1=m_num; / CString sTemp;/sTemp.Format(m_canshu1= %f ;m_canshu2= %f n, m_canshu1,m_canshu2);/MessageBox(sTemp);switch(m_fuhao)/选择符号case 1:m_num=m_canshu1+m_canshu2; /加UpdateData(false);break;case 2:m_num=m_canshu1-m_canshu2; /减UpdateData(false);break;case 3:m_num=m_canshu1*m_canshu2; /乘UpdateData(false);break;case 4:m_num=m_canshu1/m_canshu2; /除UpdateData(false);break;case 5:m_num=pow(m_canshu1,m_canshu2); /乘方UpdateData(false);break;case 6:m_num=sqrt(m_canshu1); /开方UpdateData(false);break;case 7:m_num=sin(m_canshu1); /sinUpdateData(false);break;case 8:m_num=cos(m_canshu1); /cosUpdateData(false);break;default:break;m_canshu1=m_num;m_1=1;5操作方法1、输入第一个计算参数,比如:2642、246.78、-578、-2.6;2、点击选择计算方式,比如:加、减、乘、除、乘方、开方;3、输入第二个计算参数(注:开方计算只需要一个计算参数,不需要输入第二个计算参数。);4、点击“=”按键,输入计算结果;5、由于程序做过处理,可以实现连等操作,多次点击“=”按键计算;6实验结果1、按开始,输入15627.0956,结果如下图显示: 2、按开始,输入300
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业防洪防汛安全培训
- 2025年民间借款合同范本模板
- 急性心肌梗死的护理
- 2025薪资劳动合同要注意的问题
- 2025年电缆技术升级合同书
- 2025年个人与个人之间的商品房租赁合同
- 2025年企业股权转让合同模板2
- 2025物业管理服务合同简易版协议书
- 2025机械设备购销合同书(简化版)
- 食品企业管理第一章
- 设备的技改和更新管理制度
- GB/T 5453-2025纺织品织物透气性的测定
- 2025年度毛绒玩具采购合同
- 2024年重庆A卷中考满分作文《美不止一个答案》
- 做好基层纪检监察工作措施
- 2025年安徽铜陵市医保局招聘编外聘用人员2人历年自考难、易点模拟试卷(共500题附带答案详解)
- 2025年吉林工程职业学院单招职业技能考试题库附答案
- 日语专业的毕业论文
- 2025年郑州科技学院单招职业技能测试题库含答案
- 膏方基本知识
- 卓有成效的管理知到课后答案智慧树章节测试答案2025年春青岛黄海学院
评论
0/150
提交评论