




免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025工程咨询服务合同
- 2025物业用工合同范文
- 芷兰秋冬传染病防控知识
- 酒店食品安全知识培训
- 2025年云南省文山市西畴县初中学业水平模拟考试英语试题
- 常见恶性肿瘤概述
- 普通心理学(第2版)课件 第一章 心理学概述
- 平面构成特异8
- 2025年人际沟通与礼仪试题
- 互联网+广告投影灯行业运营模式及市场前景研究报告
- 中级宏观经济学知到课后答案智慧树章节测试答案2025年春浙江大学
- 森林火灾防控-深度研究
- 江苏开放大学2025年春大学英语B【2】
- 2025年江苏省安全员-B证考试题库及答案
- 地下车库车位划线合同
- DBJ04-T 241-2024 公共建筑节能设计标准
- 汽车维修厂安全生产
- 【数学】图形的轴对称 问题解决策略:转化课件+2024-2025学年北师大版数学七年级下册
- 铁路运输安全风险防范-洞察分析
- 三年级 语文 下册《火烧云》课件 (第1课时)
- 2025年临床医师定期考核必考复习题库及答案(1080题)
评论
0/150
提交评论