基于Android计算器功能的实现Word文档格式.docx
《基于Android计算器功能的实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Android计算器功能的实现Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。
输入模丄主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。
同时提供了较为直观的键盘图形用户界面。
显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其他的信息。
计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能以及清零的功能。
用系统框图来表示即如图2-00
图2-0系统框图
2、软件开发环境
论文主要阐述以面向对象的程序开发语言eclipse为开发工具,设计并实现基于
Android的计算器。
步骤1
安装JDK
步骤5
安装Eclipse的ADT插件
步骤2
安装Tomcat
步骤6
Eclipse的SDK配置
步骤3
安装AndroidSDK
步骤7
建立AVD虚拟机
步骤4
安装Eclipse
3、软件功能说明
系统包括普通计算功能,基本的加减乘除,小数运算以及清零功能。
如图2-1
对任意两个数据进行相加的操作
对任意两个数据进行相减的操作
对任意两个数相乘的操作
任意两个数相除的操作,但要符合运算逻辑
清除已经被记忆的数据
如图2-1功能图
4、程序流程图
知道了系统的功能以后,我们通过main.xml来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。
系统流程图如图2-2所示:
监听用户按键输入
5、软件介面及程序主要代码
1
3
4
5
6
9
Q
W
R
T
y
U
I
P
A
S
D
F
G
H
J
K
L
EELl
*
□
X
V
B
N
5YU
^^1
/
r
1:
(1)XML文件生成
Main.xml的代码:
根据MVC原则,UI应该与程序逻辑相分离,因此,在XML中定义UI结构是强烈推荐的。
常用的方式是用图形化的方式来编写布局Layout,这些布局保存在XML文件中,然后编译成资源,在程序中Activity通过setContentView()方法来加载,然后通过findViewByld()方式来获得每一个界面组件的引用。
实现过程及步骤。
在layout文件夹下定义自己的XML页面。
如计算器属性界面的实现如下所示
部分代码
v?
xmlversion="
1.0"
encoding="
utf-8"
?
>
<
LinearLayout
xmlns:
android="
ndroid"
android:
orientation="
vertical"
android:
layout_width="
fill_parent"
layout_height="
>
<
EditTextandroid:
id="
@+id/txt_input"
240dp"
android:
wrap_content"
android:
gravity="
right"
text="
@string/zero"
/>
/LinearLayout>
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。
id="
//定义了布局的变量名称为txt_input,会自动写进R.java;
在R.Java文件中会生成内部类id,可在主程序里面调用R.id.txt」nput来获取这个布局变量实体。
orientation="
//这个布局是垂直布局;
(水平horizontal)
layout_width="
fill_parent"
//设置一个顶部布局或控件强制性让它布满整个屏幕;
("
wrap_content"
设置一个顶部布局或控件强制性让它布满整个屏幕)
gravity="
//限定里面的内容向右对齐;
(android:
layout_gravity="
表示在界面上的位置向右对齐)
用XML实现用户界面具有以下优点:
a)XML文件结构清晰,易于扩展,系统可扩展性好。
b)用户界面与业务逻辑完全分离,降低了系统界面与业务逻辑的耦合性
c)XML文件简单易懂,可维护性好。
2:
计算器控制逻辑设计与实现代码:
CountMain.java
用户在输入过程中,肯定会存在一定的错误,程序设计过程中需要对应用程序进行容错处理。
容错设计比如:
在输入过程中小数的话只能有一个小数点,操作符不能连续输入,整数数据的开头不能出现0等等。
所以设计了如下代码:
//数字监听
publicvoidxianshi(finalButtonbut,finalEditTextt1){
but.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//判断开始是否可以按操作符
if(but.getText().toString().equals("
."
)){
if(strBuff.indexOf("
+"
)!
=-1
||strBuff.indexOf("
-"
||strBuff.indexOf("
*"
/"
=-1){
strBuff.append(but.getText().toString());
t1.setText(strBuff);
//判断一个操作数中是否可以按多个点
}else{
)==-1&
&
strBuff.length()
strBuff.append(but.getText().toString());
tl.setText(strBuff);
}
//判断在什么情况下可以按多个零
}elseif(but.getText().toString().equals("
O"
)==0&
strBuff.indexOf("
)strBuff.append(but.getText().toString());
t1.setText(strBuff);
}elseif(strBuff.length()==0){
//判断第一个按零,接着再按整数的情况时,
}elseif(strBuff.indexOf("
0"
)==0
!
=0){
==1){
屏幕的显示
)==-1){strBuff.delete(0,strBuff.length());
strBuff.append(but.getText().toString());
tl.setText(strBuff);
});
运算部分代码:
//符号监听
publicvoidjisuan(finalButtonbutl,finalEditTextt1){
butl.setOnClickListener(newOnClickListener(){
//存放输入的字符
Stringnewchar1=but1.getText().toString();
//判断开始是否为等号,输入一个数字后在输入等号没有反映
Stringnewchar="
"
;
if(!
(newchar1.equals("
="
))){
newchar=newchar1;
floatper1=0;
//用来存放截取字符串的第一个操作数
floatper2=0;
//用来存放截取字符串的第二个操作数
//判断按的字符是否为清除键
if(newchar.equalslgnoreCase("
c"
strBuff.delete(O,strBuff.length());
t1.setText("
);
return;
//判断按的操作符是什么计算字符
//判断是否为加法
)<
strBuff.length()-1
inti=strBuff.indexOf("
per1=Float.parseFloat(strBuff.substring(0,i));
per2=Float.parseFloat(strBuff.subs