语言课程设计实验报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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:不知道

文档评论(0)

三哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档