敬业的IT人 >> 网站建设 >> Web编程 >> J2EE/J2ME >> 一个使用J2ME技术实现的简单计算器

一个使用J2ME技术实现的简单计算器

敬业的IT人 互联网 佚名 2008-1-11 21:34:37

【引自Mailbomb的博客】在实际学习的过程中,经常做一些小的项目,可以把学到的技术综合应用起来,获得一定的成就感,并锻炼逻辑思维能力。

本计算器代码的功能:

1、实现四则运算,其中除法实现的是整数除法;
2、实现清楚输入功能。

实现该功能的核心思路:

1、对本程序的功能进行状态划分,总共划分出三个状态:

a)输入第一个数字状态
b)输入运算符号状态
c)输入第二个数字状态

通过状态划分,每个状态进行对应的绘制和事件处理,这样逻辑比较清晰,编写代码起来比较简单。

2、数据的存储

在计算器程序中,存储数据是一个比较核心的逻辑,本程序的实现方式,判断用户按下的是否是数字按键(KEY_NUM0到KEY_NUM9),这些按键的keyCode和对应的字符编码相同,例如KEY_NUM0和字符0的编码一样,利用这个规律,获得数字按键的值,可以通过keyCode – KEY_NUM0实现。

这样只能换算出来一次的输入,而实际输入的结果应该等于:

上次输入的值 × 10 + 本次输入的内容

例如,上次输入的是1,本次输入3,则实际输入的内容应该是1 × 10 + 3 = 13

本程序通过这样的方式存储用户的输入。

本程序的操作说明:

1、数字输入按数字键实现
2、运算符号使用星号键输入,按一次星号键切换一次运算符号
3、左软键代表清除,每次清除一个数字或运算符
4、右软键代码计算,计算实际的结果

附源代码:

import javax.microedition.lcdui.*;
/**
* 计算器界面和逻辑
*/
public class CalcCanvas extends Canvas {
/**状态值*/
int status;
/**输入第一个数字状态*/
final int INPUT_FIRST = 1;
/**输入第二个数字状态*/
final int INPUT_SECOND = 3;
/**输入运算符号状态*/
final int INPUT_FLAG = 2;
/**绘制内容右下角的x坐标*/
int x = 150;
/**绘制内容右下角的x坐标*/
int y = 160;
/**行高*/
int lineHeig

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com