模拟计算器实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计题目:模拟机算器程序
学生姓名:柯尊国
专业:网络工程
班级:1021130321
指导教师:高永平、姜林
2011年11 月27 日
东华理工大学
课程设计评分表
学生姓名:柯尊国班级:10211303 学号:21
课程设计题目:模拟机算器程序
项目内容满分实评
选题能结合所学课程知识、有一定的能力训练。符合选题要求
(5人一题)
10 工作量适中,难易度合理10
能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10 理论依据充分,数据准确,公式推导正确10
能应用计算机软件进行编程、资料搜集录入、加工、排版、
制图等
10 能体现创造性思维,或有独特见解10
成果质量总体设计正确、合理,各项技术指标符合要求。10 说明书综述简练完整,概念清楚、立论正确、技术用语准确、
结论严谨合理;分析处理科学、条理分明、语言流畅、结构
严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。格式、
绘图、表格、插图等规范准确,符合国家标准
10 有一定篇幅,字符数不少于5000 10
总分100
指导教师评语:
指导教师签名:
年月日
目录
一. 课程设计题目
..................................................................................
二. 问题分析
1.算法分析.....................................................................
2.流程图........................................................................
三. 算法设计
1.算法描述.....................................................................
2.系统类图.....................................................................
3.属性和方法定义..............................................................
四. 运行实例
................................................................................
五. 经验与体会
................................................................................
六. 参考文献
................................................................................ 七.源代码
................................................................................
一:课程设计题目
模拟计算器程序
问题描述
设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。
基本要求
程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式显示在窗口中,用户键入’=’符号后,窗口显示出结果。
测试数据
程序输入不少于5种不同的表达式进行测试。
实现提示
可定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。
选作内容
如果用户输入的表达式不合法,可以判别出来并给出相应的错误提示。
二.问题的分析
此程序设计主要运用了栈,利用栈后进先出的原理,建立两个栈,操作数栈和操作符栈,先将数据和运算符分别压入这两个栈,判断栈内和栈外运算符的优先级,依据运算符的优先级判断是应再次压入运算符,还是将数据和运算符弹出栈,在栈外进行运算,再将所得的结果压入栈,继续进行与计算,直至运算结束。
例如;计算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出栈
运算符*出栈,进行运算,运算结果入
操作数栈
6
3.5 —
数字栈字符栈