计算器程序设计方案报告.doc
《计算器程序设计方案报告.doc》由会员分享,可在线阅读,更多相关《计算器程序设计方案报告.doc(15页珍藏版)》请在咨信网上搜索。
计算器程序设计汇报 一、设计分析 编写一个计算器程序,要求: 1、界面类似于windows系统中提供计算器界面; 2、能实现加、减、乘、除、乘方、开方等功效。 界面类似于windows系统中提供计算器界面,则数字输入和功效实施全部经过按键来实现,而且能够在显示区域里立即显示出数据,所用本程序使用VC++提供高度可视化应用程序开发工具MFC来实现。 要实现加、减、乘、除、乘方、开方等功效,则在程序中包含"math.h"库函数文件,经过引用对应函数来实现乘方、开方等功效。在输入第一个计算参数以后,点击需要实施计算方法,然后输入第二个计算参数,点击“=”按钮,则会在显示区显示出正确结果。 本程序从设计上来讲,关键分为两个关键部分,一个是数字输入,即逐一点击单个数字(包含小数点)以后,这些数据能够在显示区正确显示。第二个是数据计算,先输入第一个计算参数,然后选择计算方法,再输入第二个计算参数,最终点击“=”按钮,计算结果。 二、程序结构 根据程序设计,能够分为数据显示模块、数据输入模块、计算方法选择模块、结果计算模块、菜单模块等五个关键模块,其中,数字输入模块和计算模块是关键和难度,这两个模块步骤图以下所表示: 1、数字输入步骤图: 点击一个数字键以后,步骤开始: 开始 显示框中原来数据是否继续使用。 是否已经输入小数点。 清除原来数据; 而且将标识符改为继续使用。 m_num=m_num*10+1; float jishu=1; for(int i=0;i<m_dianshu;i++) jishu=jishu/10; m_num=m_num+jishu; m_dianshu=m_dianshu+1; 数据更新到界面上,显示在显示框 结束 否 是 是 否 2、数据计算步骤: 开始 结束 输入第一个操作数据。 输入第二个操作数据。 点击计算方法按钮,操作方法记入计算方法标识变量中。 数据更新到界面上,显示在显示框 点击“=”按钮后,依据第一个操作数据、计算方法、第二个操作数据进行对应计算。 是否有后续数据输入。 是 否 三、各模块功效及程序说明 根据程序设计,能够分为数据显示模块、数据输入模块、计算方法选择模块、结果计算模块、菜单模块等五个关键模块,以下逐一说明各模块功效及程序说明。 1、数据显示模块。数据显示模块显示用户输入数字和计算器计算结果,关键由一个数字显示框组成。数字显示框是一个编辑框控件,属性设置为只读模式,不能由用户编辑。在MFC类向导中,给数字显示框添加一个变量m_num,用来统计数字改变,当每次操作以后,全部会把数字更新到界面上,显示给用户。 2、数据输入模块。数据输入模块用来输入1、2、3、4、5、6、7、8、9、0等十个数字和一个“.”小数点,而且能够进行数据正负转换。此模块由十个数字按键、一个小数点按键、一个正负转换按键组成。有一个bool型变量来标识小数点是否已经输入,假如标识为假,则操作数据为整数,假如标识为真,则操作数据为小数。在同一个数据输入中,小数点标识只在第一次点击时有效。每一个按键操作全部由一个函数单独完成,避免相互影响。每一次数据输入,全部会更新数据框显示,达成实时性。 3、计算方法选择模块。计算方法选择用来选择加、减、乘、除、乘方、开方等六个操作,每个计算方法全部有一个单独按钮,每个按钮全部有一个单独函数来实施。用一个int类型变量m_fuhao来标识计算方法选择。实施计算方法选择以后,把原先数据框中显示数据赋值给第一个计算参数m_canshu1,而且对于系统标识变量进行对应处理。因为对于六个函数来说,这些系统标识变量对应处理全部是相同,所以把这些系统标识变量整理为一个函数void CJisuanqiDlg::TagFuc(),以利于代码反复利用。 4、结果计算模块。结果计算模块是点击了“=”按键以后,实施对应计算,而且输出结果。在其它模块已经以此实施输入了第一个操作数据、计算方法、第二个操作数据,然后在这里依据这些数据进行计算。假如前面没有完整实施输入第一个操作数据、计算方法、第二个操作数据,则此模块不做任何处理。在这个模块中,使用switch语句,分别依据计算方法不一样实施对应操作,其中乘方和开方操作需要调用"math.h"库函数文件中pow(m_canshu1,m_canshu2)和sqrt(m_canshu1)函数来实现。实施完计算以后,将结果显示在显示框中,而且对系统标识变量进行部分对应处理。 5、菜单模块。因为数据显示框中数据对于用户是只读,所以当用户在进行使用时候,不能对数据框中数据进行复制和粘贴等操作。这么在一定程度上限制了程序使用方便性。为了处理这个问题,添加了菜单操作模块。菜单由两部分组成,第一个清零、关闭功效,当用户在输入数据时候,假如不小心输入错误,能够实施清零操作,重新输入。假如用完计算器,能够实施关闭操作,关闭程序运行。第二部分是编辑功效,包含数据复制和粘贴功效,这么用户在使用中能够对关键数据进行复制,先保留起来,然后再需要时候进行粘贴,方便了用户操作。 四、源程序 依据程序模块划分,除显示模块只有变量不进行任何操作,不需要说明源程序外,下面依据模块依次来对其它模块源程序进行说明。 1、数据输入模块: void CJisuanqiDlg::OnButton1() //Button1是字符1按键 { // TODO: Add your control notification handler code here if(m_tag==false)//显示框中原来数据是否继续使用。刚点击过加减乘除乘方开方或等于按键,则原来数据不继续使用 { m_num=0; m_tag=true; } if(m_dian==false)//是否已经输入小数点 { m_num=m_num*10+1; //整数,则把新数据加在原来数据以后 } else { float jishu=1; for(int i=0;i<m_dianshu;i++)jishu=jishu/10; m_num=m_num+jishu; m_dianshu=m_dianshu+1;//小数点后位数再加1 } UpdateData(false); } void CJisuanqiDlg::OnButton12()//Button12是小数点按键 { // TODO: Add your control notification handler code here if(m_dian==false) m_dian=true; } void CJisuanqiDlg::OnButton19()//Button19是清零按键 { // TODO: Add your control notification handler code here m_num=0; m_dian=false; m_dianshu=1; m_tag=true; UpdateData(false); } void CJisuanqiDlg::OnButton11()//Button11是正负转换按键 { // TODO: Add your control notification handler code here m_num=0-m_num; UpdateData(false); } 2、计算方法选择模块: void CJisuanqiDlg::OnButton13()//Button13是加法按键 { // TODO: Add your control notification handler code here m_fuhao=1; m_canshu1=m_num; TagFuc(); m_tag=false; } void CJisuanqiDlg::OnButton14()//Button14是减法按键 { // TODO: Add your control notification handler code here m_fuhao=2; m_canshu1=m_num; TagFuc(); m_tag=false; } void CJisuanqiDlg::OnButton15()//Button15是乘法按键 { // TODO: Add your control notification handler code here m_fuhao=3; m_canshu1=m_num; TagFuc(); m_tag=false; } void CJisuanqiDlg::OnButton16()//Button16是除法按键 { // TODO: Add your control notification handler code here m_fuhao=4; m_canshu1=m_num; TagFuc(); m_tag=false; } void CJisuanqiDlg::OnButton17()//Button17是乘方按键 { // TODO: Add your control notification handler code here m_fuhao=5; m_canshu1=m_num; TagFuc(); m_tag=false; } void CJisuanqiDlg::OnButton18()//Button18是开方按键 { // TODO: Add your control notification handler code here m_fuhao=6; m_canshu1=m_num; TagFuc(); m_tag=false; } void CJisuanqiDlg::TagFuc() { //m_num=0; m_dian=false; m_dianshu=1; m_tag=true; UpdateData(false); } 3、结果计算模块 void CJisuanqiDlg::OnButton20() { // TODO: Add your control notification handler code here if(m_tag==true)//这个判定是为了处理用户点击完“=”,没有点击其它按键再点击“=”,这种情况下,不更新第二个计算参数。 { 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);//m_canshu1 UpdateData(false); break; default: break; } //m_num=0; m_canshu1=m_num; m_tag=false; } 4、菜单模块: void CJisuanqiDlg::OnMenuitem32773()//复制 { // TODO: Add your command handler code here m_baocun=m_num; } void CJisuanqiDlg::OnMenuitem32774()//粘贴 { // TODO: Add your command handler code here if(m_baocun!=0)m_num=m_baocun; UpdateData(false); } void CJisuanqiDlg::OnMenuitem32771()//清零 { // TODO: Add your command handler code here OnButton19(); } void CJisuanqiDlg::OnMenuitem32772()//关闭 { // TODO: Add your command handler code here CDialog::OnCancel(); } 五、操作方法 1,输入第一个计算参数,比如:2642、246.78、-578、-2.6; 2,点击选择计算方法,比如:加、减、乘、除、乘方、开方; 3,输入第二个计算参数(注:开方计算只需要一个计算参数,不需要输入第二个计算参数。); 4,点击“=”按键,输入计算结果; 5,因为程序做过处理,能够实现连等操作,数次点击“=”按键计算; 6,在操作过程中,能够对操作框进行复制、粘贴等操作。 六、试验结果 1、输入7865.78,结果以下图显示: 2、实施34+98,结果以下图显示: 3、实施65-87,结果以下图显示: 4、实施26*9,结果以下图显示: 5、实施64%98,结果以下图显示: 6、实施43次方,结果以下图显示: 7、实施88开方,结果以下图显示: 七、设计体会 在这段时间课程设计中, 和其说是完成设计,我更认为这是一个学习过程。在设计过程中,我有很多知识不懂或已经淡忘了,不过经过讨教于老师和同学,并勤于查阅资料,我又学到了很多知识。本人真切地感受到此次课程设计带给我学习动力和爱好.我相信有了这些,将会对我以后专业知识学习愈加有利. 此次课程设计顺利完成,还归功于老师殷切指导和无私帮助。在此,我向老师们表示衷心地感谢!- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算器 程序设计 方案 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文