Android 程序设计实验一
—— 一个整数计算器的设计与实现
1. 设计思路
a) 计算器是事件驱动的,而每个按键事件每次输入一个键值,故将计算器的 16 个按键分为数字、操作符、等号三类,输入的种类是有限个的,计算器在不同的状态得到不同分类的输入转到相应的状态,这就形成了一个状态机。本设计的状态机图如下,各个状态说明如下:
i. { 状态 0} “初始状态”,没有任何输入;
ii. { 状态 1} 操作数 x 的输入状态
iii. { 状态 2} 操作数 y 的输入状态
iv. { 状态 3} 操作符的输入状态
v. { 状态 4} 显示计算结果的状态
图 1 计算器的状态转换图
2. 程序特点
a) 与 windows 计算器逻辑完全相同,如按一个操作数 x 和操作符 [op] 再按等号将进行 x[op]x 的计算、按下多个操作符 x[op1][op2][op3]y 时只按最后一个 [op3] 进行计算: x[op3]y 、按下操作符时显示中间结果: x[op1]y[op2] 此时屏显 x[op1]y 的中间结果等;
b) 可以处理(显示)负数;
c) 可以包容错误操作而不是直接崩溃(如除 0 ,屏显“ E ”,而且只能按清楚按钮 [C] 才能恢复正常使用);
3. 程序的不足
a) 只能进行整数计算,没有小数点 [.] 按钮;
b) 不能输入负数,没有取相反数 [+/-] 按钮;
c) 界面丑陋
src/lab/first/first.java
res/layout/main.xml
res/values/strings.xml
res/values/colors.xml
效果图:
正常状态
出错状态