附录1:主界面设计:..........................................................................................................28
Ⅰ
一、综合训练目的与要求
1.巩固和加深对课堂所学知识的理解与应用;2.
学习掌握一般的
软件的设计方法和查阅、运用资料的能力;3.掌握JAVA
程序设计语言,面向对象的软件设计思想、方法。
二、综合训练任务
1.设计一个简易的计算器;功能要求:能实现基本的加、减、乘、除运算,以及表达式计算(加减乘除括号负号);二、八、十、十六进制间的相互转化,带符号的左移右移;逻辑与或非异或的运算;其他功能:开方、求倒数、化百分数、求平方、求立方、求x的y次方、求阶乘、取余、取整(取小数点之前的)、求
常用对数、求三角函数;界面简洁适用。2.设计任务要完成设计、编码、测试等过程,给出设计思路、主要的代码及其说明。3.整个过程要体现面向对象的思想。
三、总体设计
开始
主界面
输入
运算数据
运算符号
结果输出
继续
简易计算器总设计图图1
1
计算器
表达式计算
进制间相互转换
其他基本功能
左右移位
与或非异或运算
求倒数
化百分数
取余、取整
平方、立方、开方
求阶乘
求对数、求指数
求三角函数
功能结构图图2
主界面设计图(见附录1)
用户点击按钮或键盘输入
触发事件
文本框接收
表达式不合法时提醒
调用计算函数
文本框显示结果
运算流程图图3
2
获取合法表达式,计算开始Post第二个数组
将字符串表达式,正确拆分放入input数组,遍历input数组
判断是运算符还是数值
数值直接放入第二个数组
左括号直接入栈
运算符右括号来了,while循环判断,如果栈顶不是左括号,将栈顶元素出栈放入第二个数组;如果栈顶是左括号了,直接将其出栈
如果是+-*/
Stack栈
判断栈是否空