android计算器源码.doc_第1页
android计算器源码.doc_第2页
android计算器源码.doc_第3页
android计算器源码.doc_第4页
android计算器源码.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

这是我本人做的Android 简单计算器源代码。可以实现普通四则运算2,10,16进制转换。常见异常处理,可以实现activity屏幕跳转。算法用逆波兰实现。本项目所有代码不涉及任何知识产权问题,完全由自己学习android时候写的,所以各位可以放心下载。AndroidManifest.xml代码 /layout 代码主代码package my.calu;import java.util.ArrayList;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/package expression;import java.util.ArrayList;import java.util.Stack;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main extends Activity implements OnClickListener private static final char Str = 0;private Button number0,number1,number2,number3,number4,number5,number6,number7,number8,number9;private Button binary_sign,sexadecimal_sign,clear_sign,point_sign,add_sign,sub_sign,mult_sign,dev_sign,equal_sign;private EditText edittext;private String buffer=;private boolean first_is_number=false , after_equal=false,flage_10zhijing=true,flage_16zhijing=true;/初始化事件public void init() this.edittext=(EditText) findViewById(R.id.editview);this.edittext.setOnClickListener(this);this.number0=(Button) findViewById(R.id.number0);this.number0.setOnClickListener(this);this.number1=(Button) findViewById(R.id.number1);this.number1.setOnClickListener(this);this.number2=(Button) findViewById(R.id.number2);this.number2.setOnClickListener(this);this.number3=(Button) findViewById(R.id.number2);this.number0.setOnClickListener(this);this.number3=(Button) findViewById(R.id.number3);this.number3.setOnClickListener(this);this.number4=(Button) findViewById(R.id.number4);this.number4.setOnClickListener(this);this.number5=(Button) findViewById(R.id.number5);this.number5.setOnClickListener(this);this.number6=(Button) findViewById(R.id.number6);this.number6.setOnClickListener(this);this.number7=(Button) findViewById(R.id.number7);this.number7.setOnClickListener(this);this.number8=(Button) findViewById(R.id.number8);this.number8.setOnClickListener(this);this.number9=(Button) findViewById(R.id.number9);this.number9.setOnClickListener(this);this.point_sign=(Button) findViewById(R.id.point_sign);this.point_sign.setOnClickListener(this);this.equal_sign=(Button) findViewById(R.id.equal_sign);this.equal_sign.setOnClickListener(this);this.add_sign=(Button) findViewById(R.id.add_sign);this.add_sign.setOnClickListener(this);this.sub_sign=(Button) findViewById(R.id.sub_sign);this.sub_sign.setOnClickListener(this);this.mult_sign=(Button) findViewById(R.id.mult_sign);this.mult_sign.setOnClickListener(this);this.dev_sign=(Button) findViewById(R.id.dev_sign);this.dev_sign.setOnClickListener(this);this.clear_sign=(Button) findViewById(R.id.clear_sign);this.clear_sign.setOnClickListener(this);this.binary_sign=(Button) findViewById(R.id.binary_sign);this.binary_sign.setOnClickListener(this);this.sexadecimal_sign=(Button) findViewById(R.id.sexadecimal_sign);this.sexadecimal_sign.setOnClickListener(this);/判断字符串是否为全为0-9的整形数public boolean is10Numeric(String str) Pattern pattern = Ppile(0-9*); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ) return false; return true; /判断字符串是否为全为0-1的整形数public boolean is2Numeric(String str) Pattern pattern = Ppile(0-1*); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ) return false; return true; /判断字符串是否为全为0-f的整形数public boolean is16Numeric(String str) Pattern pattern = Ppile(0-f*); Matcher isNum = pattern.matcher(str); if( !isNum.matches() ) return false; return true; /判断最后一位和第一位是否为数字public boolean isnumber ( String s) int i=s.length();char c=s.charAt(i-1);char k=s.charAt(0);/System.out.println(-firstnumber-+k);/System.out.println(-70c=charAt-+c);if(s.equals(null) return false;if(c = 0 & c =0 & k 后缀表达式SSSssss/ String s = 8-3*5; /中缀 String S = ; /后缀 char Operators = new chars.length(); int Top = -1; for (int i = 0; i = 0) /栈不为空时 char c = OperatorsTop-; /pop Operator if (c = () Operators+Top = c; /push Operator break; else S = S + c; Operators+Top = C; /push Operator S += ; break; case * : /操作符 case / : while (Top = 0) /栈不为空时 char c = OperatorsTop-; /pop Operator if (c = () Operators+Top = c; /push Operator break; else if (c = + | c = -) Operators+Top = c; /push Operator break; else S = S + c; Operators+Top = C; /push Operator S += ; break; case ( : /操作符 Operators+Top = C; S += ; break; case ) : /操作符 while (Top = 0) /栈不为空时 char c = OperatorsTop-; /pop Operator if (c = () break; else S = S + c; S += ; break; default : /操作数 S = S + C; break; while (Top = 0) S = S + OperatorsTop-; /pop Operator / System.out.print(Operators);/ System.out.println(S); /后缀 /后缀表达式计算 double Operands = new doubleS.length();/ System.out.println(S.length(); double x, y, v; Top = - 1; String Operand = ; for (int i = 0; i = 0 & c =1) /buffer= (String )buffer.subSequence(0, len-1);/ else /buffer=;/buffer=;this.edittext.setText(buffer);/-计算结果-else if(v.getId()=this.equal_sign.getId() boolean isnumber;if(buffer.equa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论