文档详情

计算机与工程问题解决导论.pdf

发布:2017-09-25约字共19页下载文档
文本预览下载声明
计算机与工程问题解决导论 第24讲:事例学习: 创建一个简单的后缀计算器 Prof.Steven R.Lerman Dr.V.Judson Harward 目标 创建一个计算器来显示如何分隔函数成为 有意义的类 介绍两个有用的软件模式: -- 模型视图控制器 -- 有限状态机 中缀符号和后缀符号 大多数早期的科学计算器使用一个叫做后缀 的表达符号而不是我们现在使用的中缀表 达 中缀:(13.5 – 1.5)/(3.4 + 0.6) 后缀:13.5 1.5 -3.4 0.6 + / 中缀符号和后缀符号 后缀符号抛弃了中缀符号中必需用来决定优先顺 序和计算顺序的插入语 后缀是由左到右扫描的。遇到一个操作符便执行 该操作符 如果我们移除中缀表达中的插入语,我们得到模 糊的答案 13.5 – 1.5 / 3.4 + 0.6 是 13.5 – 1.5 / 3.4 + 0.6还是 13.5 – (1.5 / 3.4) + 0.6 后缀和栈 解释后缀符号最好的方法是用栈来解释 只要下一项是一个数,我们把它置于一个 栈中 当下一项是操作符的时候, -- 操作符的适当的操作数的数目从栈中移除, -- 应用操作符, -- 结果在放回到栈中 评估后缀 中缀:(13.5 – 1.5)/(3.4 + 0.6) 后缀:13.5 1.5 -3.4 0.6 + / 软件模式 软件模式是重现软件问题的解答的设计 模式同执行语言是相独立的 他们比算法和数据结构更一般更灵活 模型视图控制器(MVC) 模型视图控制器是一种很有用的用来作GUI 相互程序设计的模式 MVC 的历史可以追溯到一种早期的OO语 言,Smalltalk MVC给Java事件模型很大的影响 -- 事件源是视图的一部分 -- 事件监听器是控制器的一部分 MVC和我们的计算器 视图是代表用户接口,计算器和显示器的 类(Caculator ) 控制器是同用户交互的类(Caculator Controller ),执行事件及更新计算器而不 需要担心显示的细节 模型是处理计算,CPU和计算器内存的类 (CaculatorModel ),你可以这么来想 当然应用程序(CaculatorApp )用main() 把 这些联系在一起 计算器中的MVC 计算器GUI 计算器,1 计算器关键代码 计算器,KeyButton 什么是事件的ActionCommand 默认情况组件上的标签(例如,JButton )发送 ActionCommand 你可以设置使用它来告诉你哪一个按钮发送事件 计算器,Keypad 计算器,2 CaculatorController : 控制器 这个类的任务是最难的因为它是最混乱的 它的任务是描述用户的按钮的点击,更新 显示,使用model执行所有的计算 CaculatorController 是连接模式其他部分的 类。它不仅能分辨view也能分辨model ,但 view 只能分辨controller ,model被控制器使 用,但不反过来使用(调用) 控制器和模型 计算器显示栈顶端的副本吗? 在栈中进行的是什么?Double 吗? 当我们在计算器中输入一个数,想要考虑 中间值为double还是character ? 为了避免舍入误差,我们把显示看成是字 符串(实际上是一个StringBuffer ),作为
显示全部
相似文档