ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:185.50KB ,
资源ID:13025243      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13025243.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模拟计算器实验报告Word文档格式.doc)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

模拟计算器实验报告Word文档格式.doc

1、 学生姓名: 柯尊国 班级: 10211303 学号:21 课程设计题目:模拟机算器程序项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力理论依据充分,数据准确,公式推导正确能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等能体现创造性思维,或有独特见解成果质量总体设计正确、合理,各项技术指标符合要求。说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰设计说明书栏目齐全、合理,符号统一、编号齐全。格

2、式、绘图、表格、插图等规范准确,符合国家标准有一定篇幅,字符数不少于5000总 分100指导教师评语: 指导教师签名: 年 月 日目 录一. 课程设计题目 .二. 问题分析 1.算法分析 . 2.流程图 .三. 算法设计 1.算法描述 . 2.系统类图 . 3.属性和方法定义 .四. 运行实例 .五. 经验与体会 .六. 参考文献七源代码 一: 课程设计题目 模拟计算器程序 问题描述设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及(清除)、A(全清除)操作。基本要求程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中

3、,用户键入= 符号后,窗口显示出结果。测试数据程序输入不少于5种不同的表达式进行测试。实现提示可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。选作内容如果用户输入的表达式不合法,可以判别出来并给出相应的错误提示。二问题的分析此程序设计主要运用了栈,利用栈后进先出的原理,建立两个栈,操作数栈和操作符栈,先将数据和运算符分别压入这两个栈,判断栈内和栈外运算符的优先级,依据运算符的优先级判断是应再次压入运算符,还是将数据和运算符弹出栈,在栈外进行运算,再将所得的结果压入栈,继

4、续进行与计算,直至运算结束。例如;计算5/2+1-2*3= 操作数2入操作数栈, 2运算符”/”入运算符栈,操作数5入操作数栈5/ 数字栈 运算符栈。运算符“+”入运算符栈顶比较后,将2,5出栈运算,并将结果入数字栈2.5 数字栈 字符栈运算符“+”入字符栈,操作 1数1入数字栈 2.5+ 数字栈 字符栈 运算符“”入运算符栈顶比较后,将1, 2.5出栈运算,并将结果压入操作数栈3.5 运算符“”入运算符栈操作数2入操作数栈,运算符“*”入运算符栈顶比较后压入运算符栈3将操作数3压入操作数栈 2* 3.5当扫描到=号时,操作数3和2出栈运算符*出栈,进行运算,运算结果入操作数栈 63.5 操作

5、数6和2出栈,运算符“” 出栈,进行运算,运算结果入操作数 栈 6 3.5 运算符栈空,操作数栈中运算为运算-2.5 数字栈 字符栈 结果分析:设置两个栈,运算数栈和运算符栈,然后,自左向右扫描表达式,遇操作数进操作数栈,遇操作符栈则与操作符栈顶运算符比较:若当前操作符大于操作符栈顶,则当前操作符进入操作符栈;若当前操作符小于等于运算符栈顶,次栈顶出栈,同时操作数栈顶也出栈,形成一个运算,并将运算的结果压入数字栈。 开 始流程图 初始化数字栈和字符栈 读入字符c Y 是否为“=”号 N N 是否为运算符 Y 字符栈是否为空 Y C入数字栈 Y是否比字符栈顶优先级高 N N C入字符栈 数字栈顶

6、元素和次栈顶元素 出栈,运算符栈顶出栈, 运算结果入数字栈 结束三 算法的设计1、 创建一个calculator类,将计算器需要用到的函数都封装起来,形成一个整体。2、 设计成员函数及数据。首先定义两个私有的结构体save1和save2分别用来存放数字和运算符,在结构体内定义整型的栈顶元素top,和存放数据及运算符的数组double nMAX和char nMAX。定义了一个空的构造函数calculator()。函数bool stack1empty(save1 s),bool stack2empty(save2 s)分别判断数字栈和字符栈是否为空,若栈顶为-1则空则返回1表示真,否则返回0表示假。函数void push1(save1 &s,double num);,void push2(save2 &s,char op);分别将数字和字符压入栈。若所存储的内容已经数组的最大限度,则显示“栈已满”,否则将数字和字符压入栈顶。函数void pop1(save1 &s,double &n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1