快速业务通道

一个使用J2ME技术实现的简单计算器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

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

时间:2011-02-05 csdn博客 陈跃峰

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

本计算器代码的功能:

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、右软键代码计算,计算实际的结果

匯倖聞喘J2ME室宝糞?議酒汽柴麻匂(2)

扮寂:2011-02-05 csdn鴬人 蛎埔桁

現坿旗鷹?

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 lineHeight = 20; /**及匯倖方忖議峙*/ int firstNum = 0; /**及屈倖方忖議峙*/ int secondNum = 0; /**塰麻憲催?0涙吭吶?1旗燕+?2旗燕受、3核4茅*/ int flag = 0; /**徳鳥錐業*/ int w; /**徳鳥互業*/ int h;     /**塰麻憲方怏*/ String[] sFlag = {"+","-","*","/"}; public CalcCanvas() {       //兜兵晒彜蓑葎補秘及匯倖方忖彜蓑       status = INPUT_FIRST;       //譜崔畠徳鳥       setFullScreenMode(true);       //資誼徳鳥互業才錐業       h = getHeight();       w = getWidth(); } protected void paint(Graphics g) {       //賠徳       g.setColor(0xffffff);       g.fillRect(0,0,w,h);       g.setColor(0);       //紙崙梓泥猟忖       g.drawString("=", w,h,                Graphics.RIGHT | Graphics.BOTTOM);       g.drawString("C", 0,h,                Graphics.LEFT | Graphics.BOTTOM);       //功象彜蓑峙鳩協紙崙議坪否才了崔       switch(status) {       case INPUT_FIRST:            //紙崙及匯倖方忖            g.drawString("" + firstNum, x, y,                     Graphics.RIGHT | Graphics.BOTTOM);            break;       case INPUT_FLAG:            //紙崙及匯倖方忖            g.drawString("" + firstNum, x, y - lineHeight,  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号