- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告
学生姓名:
学生学号:
实验起至日期:
指导教师:
科学计算器 实验报告内容
一.实验目的与要求
1、要求实现具有加,减,乘,除基本四则运算功能
2、要求能包含操作数(整形、浮点数)、操作符、优先级,实现基于括号的优先级控制
3、设计基于MFC框架的,具有友好界面的Windows应用程序
4、科学计算器要求具有科学函数计算功能,主要包括三角函数,根号等,如算式有错误提示和处理算式越复杂,得分越高。
二.设计思路(包括算法基本流程设计,程序接口设计)
1、获取用户通过键盘或者界面输入的表达式,记为总表达式
2、将总表达式中的所有常数符号代换为相应的字数字串
3、判断总表达式中括号是否匹配,如不匹配,反馈信息并则退出,否则进入步骤4)
4、找到处在总表达式最内部的括号对(按从里到外,从左到右的顺序),提取括号内的表达式,记为子表达式
5、计算子表达式中的所有单目运算符, 结果正确则将计算结果转换为字符串放回子表达式,否则输出错误信息并退出
6、计算子表达式中的所有双目运算符,结果正确则将计算结果转换为字符串放回子表达式,否则输出错误信息并退出
7、将子表达式的计算结果转换为字符串插入总表达式
8、判断当前总表达式是否为纯数值,如果不是纯数值则返回步骤4),否则将结果转换为字符串
9、输出字符串结果
另:本计算器可以算多个括号,但是不能算括号里嵌套括号的算式。在开方sqrt,倒数1/x和三角函数sin,cos,tan,cot计算时,如果需要计算一个算式的这些值,要加括号来实现。除了AC清除以外,还加了一个Backspace来删除前面一个输入的值,方便操作。
三.实验中遇到的问题现象与具体解决步骤
问题1:不知道如何实现小数点的功能
解决方法:在拆开运算符和操作数的时候,增加一个变量,就可以同时完成进位和小数,网上可以搜到很多类似的代码,可以借鉴。
问题2:原本想以自然的方式来实现开方,三角函数的功能,就是按这些按钮,然后就可以读入跟在他后面的数字,写好代码以后没有反应。
解决方法:参考windows自带的计算器,发现要先输入要计算的算式或者数字,再点函数的按键,传给这些函数参数,就修改了代码,实现变的容易多了。
问题3:一开始接触MFC计算器,根本无从下手,没有任何头绪,很多借来的书也看不懂。
解决方法:先建好界面,然后逐个按钮添加代码,有些代码通过看书上的例子以及上网搜索都可以得到。然后再与同学一起交流讨论,逐渐理清自己的思路,才开始做得比较顺利。
四.基本界面与操作方法说明
数字,小数点,括号,+,-,*,/,按键只要按下,就会直接显示在编辑框里,按下等于,就可在编辑框里得到的结果。
Backspace用来删除输入错误的单个字符,AC清空整个对话框为0。
计算开方,三角函数、倒数的时候,先输入要进行开方,自然对数,三角函数的数值或者算式(算式前后一定要加括号),然后再按相应按键,不需要按等于,即可得到结果,如果后面还有要算的式子,可以在得到结果后继续输入。
该计算器还实现了报错功能,比如输入式子不正确,会弹出提示报错消息框,还考虑到了除数为0等情况。
5.在做完后为了独特美观,还自己做了图标。
参考书目
1、《Visual C++.NET编程实例》 苏峰 黄金双 汤蕾编著 清华大学出版社
2、《C++技术内幕第四版》 潘爱民译 清华大学出版社
3、
微软计算器
模板实现矩阵基本运算 实验报告内容
一.实验目的与要求
1.实现矩阵的“加”、“减”、“乘”、“转置” ;
2.内存动态分配并用随机数填充;
3.注意“加”、“减”、“乘” 要进行条件的判断;
4.进行int,double的选择;
二.设计思路(包括算法基本流程设计,程序接口设计)
1、用户输入行列数,并进行类型选择。
2、随机生成矩阵。
3、选择操作类型,转置只需要一个矩阵即可。其他操作需再生成一个矩阵。
4、如果矩阵不能进行运算(行列数不等等情况),利用try-catch语句弹出“Error!”的提示消息框。
实验中遇到的问题现象与具体解决步骤
问题1:没有想到合适的变量保存矩阵
解决方法:类模板成员变量中声明T **matrix,即指向指针的指针,可以动态的保存矩阵。
问题2:用随机数产生矩阵的时候用rand(),发现每次运行程序产生的矩阵是相同的,就是产生的伪随机数。
解决方法:利用srand()函数,向里面传参数time(0),得到真正的随机矩阵。
问题3:不知道
您可能关注的文档
最近下载
- 初中英语语法专项1000题:专题11-时态二(现在进行时)(答案解析).pdf VIP
- 外科学课件:胸部损伤-.ppt VIP
- 2021年1月自考11466现代企业人力资源管理概论试题及答案含解析.pdf VIP
- 营运桥梁变形监测报告.doc VIP
- 防水基本知识的普及雨虹.pdf VIP
- 初中英语语法专项1000题:专题10-时态一(一般现在时)(答案解析).pdf VIP
- 大疆无人机操作教程视频.pdf VIP
- 初中英语语法专项1000题:专题09-动词-专项训练(答案解析).pdf VIP
- 人教版四年级上册道德与法治培优辅差计划.docx VIP
- 东方雨虹聚羧酸减水剂应用.ppt VIP
文档评论(0)