



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算器实验报告班级: 07计本(1)班姓名: 王林学号: 20706031047指导老师: 韩静一、 需求分析(1) 制作一个计算器界面工程,有数字运算符等键,输入表达式后,按等号键输入结束,并显示出正确的结果。(2) 程序能根据运算符的高低进行运算(3) 可以输入括号二、 设计思路(1) 用工程建立一个字符串的类结构,并用编辑框输入相应的数字和字符,并且输入的字符用字符串逐个接受,当输入为=的时候,用#做最后一个输入。(2) 开始对所输入的字符串进行运算和操作,显示在工程中的编辑框内。(3) 如果结束则关闭,如果再次进行运算则进行清零。三、 主程序段 char Precede(char a,char b) /判断优先级的函数switch(a)case+:if(b=*|b=/|b=() return(); case-:if(b=*|b=/|b=() return(); case*:if(b=() return(); case/:if(b=() return(); case(:if(b=) return(=);else if(b=#) return(0);else return(); case#:if(b=) return(0);else if(b=#) return(=);else return(); float Operate(float a,char theta,float b) /计算两个数的结果的函数 float z; switch(theta) case +:z=a+b;break; case -:z=a-b;break; case *:z=a*b;break; case /:z=a/b;break; return(z);float Shuhe(SqStack1 &OP,int k,int j) /输入的字符转化为数字的函数int i,e,n=k;float sum=0,fe;while(j!=0)Pop1(OP,e);fe=float(e);for(i=1;i=j;i+)fe=fe/10;sum=sum+fe;j-;while(k!=0)Pop1(OP,e);for(i=0;i=0&c=9) Push1(OP,int(c)-48); c=m_ssi+; if(tag=0) k+; else j+; flag=1; else if(flag=1) sum=Shuhe(OP,k,j); Push2(OPND,sum); OP.top=OP.base; k=0;flag=0;j=0;tag=0; switch(Precede(GetTop(OPTR),c) case:/退栈并将运算结果入栈 Pop(OPTR,theta); Pop2(OPND,b);Pop2(OPND,a); Push2(OPND,Operate(a,theta,b); break; sum=GetTop2(OPND); m_ss.Format(%f,sum); UpdateData(FALSE);四、 调试分析(1) 当输入“1+2-3=”时,显示结果为“0.000000”,结果正确,置清零。(2) 当输入“2.96*1.85/6.741=”时,显示结果为“0.812342”, 结果正确,置清零。(3) 当输入“2.69-19.145=”时,显示结果为“-16.455000”, 结果正确,置清零。(4) 当输入“5-7*(5+1.8)=”时,显示结果为“-42.600002”, 结果正确,置清零。(5) 当输入“2-/65=”时,显示结果为“1.969231”,结果错误,置清零。(6) 当输入“-6+9=”时,显示结果为“-107374176.000000”, 结果错误,置清零。(7) 当输入“0-6+9=”时,显示结果为“3.000000”, 结果正确,置清零。(8) 当输入“(2+3)*5-8=”时,显示结果为“17.000000”, 结果正确,置清零。(9) 当输入“6*(-3+1)=”时,显示结果为“12.000000”, 结果错误,置清零。(10) 当输入“6*(0-3+1)=”时,显示结果为“-12.000000”, 结果正确,置清零。(11) 当输入“6*(1-3)=”时,显示结果为“-12.000000”, 结果正确,结束。调试说明以及分析:1、当输入为正确的格式时,能算出正确的结果,其中包括:小数、整数以及个位以上的数字,且运算符包括:加、减、乘、除运算,还有就是可以加括号等。 2、当输入为错误的格式是,显示的是错误的结果,如(5)中的运算结果就是错误的。 3、若某个数字是负数,如果直接输入,结果是错误的,但如果变为零减去该数字的绝对值的话或者把两数的顺序更改一下,显示的是正确的结果,如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 格列佛游记幻想与现实主题探究:初二语文阅读教学教案
- 规范高校学生企业实习管理的策略及实施路径
- 古典诗词与高中语文写作能力的提升
- 书信爸爸的一封信400字10篇范文
- 新闻传媒业法律法规题库
- 《高中作文写作技巧与素材积累:高三语文教案》
- 边城赏析:人性之美与悲剧意味教案
- 语言文字训练:七年级语文古诗词教学教案
- 软件测试合同保密协议
- 音乐理论作曲技术基础模拟题
- Unit6NumbersinlifePartCReadingtime(课件)-人教PEP版(2024)英语三年级下册
- 北京市建设工程施工现场安全生产标准化管理图集(2019版)
- 《卵巢囊肿蒂扭转》课件
- 外周血管介入器械行业深度报告:集采正推进国内品牌大有可为
- 《执业医师法培训》课件
- 江苏省南通机场集团有限公司关于“空港英才计划”招聘高频重点提升(共500题)附带答案详解
- 普通话考试30个经典命题说话题目及范文
- 【MOOC】《仪器分析》(北京化工大学) 期末中国大学慕课答案
- 2024-2030年中国金刚石锯片行业市场分析报告
- 第2部分 虫害调查技术规范
- 办公耗材售后服务承诺书
评论
0/150
提交评论