模拟计算器实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 —

数字栈字符栈

相关文档
最新文档