android studio大作业-简易计算器实现


先看效果图

基本功能:加,减,乘,除


核心代码实现


public class MainActivity extends AppCompatActivity implements View.OnClickListener {Button btn_0, btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9, btn_pt;Button btn_mul, btn_div, btn_add, btn_sub;Button btn_clr, btn_del, btn_eq;EditText et_input;boolean clr_flag;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件btn_0 = (Button) findViewById(R.id.btn_0);btn_1 = (Button) findViewById(R.id.btn_1);btn_2 = (Button) findViewById(R.id.btn_2);btn_3 = (Button) findViewById(R.id.btn_3);btn_4 = (Button) findViewById(R.id.btn_4);btn_5 = (Button) findViewById(R.id.btn_5);btn_6 = (Button) findViewById(R.id.btn_6);btn_7 = (Button) findViewById(R.id.btn_7);btn_8 = (Button) findViewById(R.id.btn_8);btn_9 = (Button) findViewById(R.id.btn_9);btn_pt = (Button) findViewById(R.id.btn_pt);btn_add = (Button) findViewById(R.id.btn_add);btn_sub = (Button) findViewById(R.id.btn_sub);btn_mul = (Button) findViewById(R.id.btn_mul);btn_div = (Button) findViewById(R.id.btn_div);btn_clr = (Button) findViewById(R.id.btn_clr);btn_del = (Button) findViewById(R.id.btn_del);btn_eq = (Button) findViewById(R.id.btn_eq);et_input = (EditText) findViewById(R.id.et_input);//给按钮设置的点击事件btn_0.setOnClickListener(this);btn_1.setOnClickListener(this);btn_2.setOnClickListener(this);btn_3.setOnClickListener(this);btn_4.setOnClickListener(this);btn_5.setOnClickListener(this);btn_6.setOnClickListener(this);btn_7.setOnClickListener(this);btn_8.setOnClickListener(this);btn_9.setOnClickListener(this);btn_pt.setOnClickListener(this);btn_add.setOnClickListener(this);btn_sub.setOnClickListener(this);btn_mul.setOnClickListener(this);btn_div.setOnClickListener(this);btn_clr.setOnClickListener(this);btn_del.setOnClickListener(this);btn_eq.setOnClickListener(this);}@Overridepublic void onClick(View v) {String str = et_input.getText().toString();switch (v.getId()) {case R.id.btn_0:case R.id.btn_1:case R.id.btn_2:case R.id.btn_3:case R.id.btn_4:case R.id.btn_5:case R.id.btn_6:case R.id.btn_7:case R.id.btn_8:case R.id.btn_9:case R.id.btn_pt:if (clr_flag) {clr_flag = false;str = "";et_input.setText("");}et_input.setText(str + ((Button) v).getText());break;case R.id.btn_add:case R.id.btn_sub:case R.id.btn_mul:case R.id.btn_div:if (clr_flag) {clr_flag = false;str = "";et_input.setText("");}if (str.contains("+") || str.contains("-") || str.contains("×") || str.contains("÷")) {str = str.substring(0, str.indexOf(" "));}et_input.setText(str + " " + ((Button) v).getText() + " ");break;case R.id.btn_clr:if (clr_flag)clr_flag = false;str = "";et_input.setText("");break;case R.id.btn_del: //判断是否为空,然后在进行删除if (clr_flag) {clr_flag = false;str = "";et_input.setText("");} else if (str != null && !str.equals("")) {et_input.setText(str.substring(0, str.length() - 1));}break;case R.id.btn_eq: //单独运算最后结果getResult();//调用下面的方法break;}}private void getResult() {String exp = et_input.getText().toString();if (exp == null || exp.equals("")) return;//因为没有运算符所以不用运算if (!exp.contains(" ")) {return;}if (clr_flag) {clr_flag = false;return;}clr_flag = true;//截取运算符前面的字符串String s1 = exp.substring(0, exp.indexOf(" "));//截取的运算符String op = exp.substring(exp.indexOf(" ") + 1, exp.indexOf(" ") + 2);//截取运算符后面的字符串String s2 = exp.substring(exp.indexOf(" ") + 3);double cnt = 0;if (!s1.equals("") && !s2.equals("")) {double d1 = Double.parseDouble(s1);double d2 = Double.parseDouble(s2);if (op.equals("+")) {cnt = d1 + d2;}if (op.equals("-")) {cnt = d1 - d2;}if (op.equals("×")) {cnt = d1 * d2;}if (op.equals("÷")) {if (d2 == 0) cnt = 0;else cnt = d1 / d2;}if (!s1.contains(".") && !s2.contains(".") && !op.equals("÷")) {int res = (int) cnt;et_input.setText(res + "");} else {et_input.setText(cnt + "");}}//如果s1是空    s2不是空  就执行下一步else if (!s1.equals("") && s2.equals("")) {double d1 = Double.parseDouble(s1);if (op.equals("+")) {cnt = d1;}if (op.equals("-")) {cnt = d1;}if (op.equals("×")) {cnt = 0;}if (op.equals("÷")) {cnt = 0;}if (!s1.contains(".")) {int res = (int) cnt;et_input.setText(res + "");} else {et_input.setText(cnt + "");}}//如果s1是空    s2不是空  就执行下一步else if (s1.equals("") && !s2.equals("")) {double d2 = Double.parseDouble(s2);if (op.equals("+")) {cnt = d2;}if (op.equals("-")) {cnt = 0 - d2;}if (op.equals("×")) {cnt = 0;}if (op.equals("÷")) {cnt = 0;}if (!s2.contains(".")) {int res = (int) cnt;et_input.setText(res + "");} else {et_input.setText(cnt + "");}} else {et_input.setText("");}}
}

android studio大作业-简易计算器实现相关推荐

  1. android studio 大作业

    安卓studio  大作业  报告马源安卓studio  大作业  报告马源安卓studio  大作业  报告马源安卓studio  大作业  报告马源安卓studio  大作业  报告马源安卓stu ...

  2. android仿QQ列表实现 android studio大作业,android studio课程设计

    1. 效果图 2.功能介绍:登录,注册,好友列表 3.核心代码 /*** 登录页面*/ public class LoginActivity extends BaseActivity {private ...

  3. 使用Android Studio实现简单的计算器(已亲自实验通过)

    使用Android Studio实现简单的计算器(已亲自实验通过) 实验内容 用多个Activity实现分别实现加.减.乘.除的计算器,具体包括:通过一个启动Activity布置4个按钮,每个按钮分别 ...

  4. 安卓(Android studio)编写一个计算器,可以连续加减乘除,可加小数点,不包含括号以及加减乘除优先算法。

    安卓(Android studio)编写一个计算器,可以累加,可加小数点,不包含括号以及加减乘除优先算法. 首先需要在res目录下的layout文件下创建一个xml文件进行界面的布局设计,接着在Jav ...

  5. 使用Android Studio做一个简易进制转换计算器

    Android Studio简易进制转换计算器 1.问题描述. 设计并实现一个数制转换器,能够对输入的任- -进制类型的数值转换为指定的数制类型的数值.必须实现的数制类型有二进制.八进制.十进制和十六 ...

  6. android studio线性布局做计算器,Android studio设计简易计算器

    本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下 效果显示: 第一步,简单的界面布局 xmlns:tools="http://schemas ...

  7. Android Studio小作业:科学计算器

    背景 上一章,我们完成基于Xamarin.Android的简单计算器 今天突发奇想,做一个科学计算器 支持标准四则运算.括号.小数点.三角函数.log.ln.倒数.阶乘.幂.算数平方根.百分数 开发环 ...

  8. github android 计算器,Android studio实现简单的计算器

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析及概要设计 目的 开发一个简单的计算器App,使之能够完成加减乘除混合运算 工具及环境 使用 ...

  9. Android期末大作业、移动应用开发期末大作业(教练预约APP)

    移动应用开发期末大作业(教练预约APP) 运动健身APP 用户:小型健身房和健身者 功能:注册登录,预约教练,发布讨论,删除讨论 页面展示: 欢迎页面:(三秒自动跳转到主页面) 首页: 我的: 登录注 ...

最新文章

  1. 转:[大数据竞赛]夺冠感言:走进业务,提升对世界的认知能力
  2. 神州数码使用telnet方式管理交换机
  3. Mybatis中模糊查询的各种写法(转)
  4. 《3ds Max疯狂设计学院》——1.5节怎样才能学好3ds Max,你要听好
  5. MySQL存储引擎的选择
  6. 深度学习领域专业词汇_深度学习时代的人文领域专业知识
  7. Dapr牵手.NET学习笔记:Actor一个场景
  8. android webview js 交互框架,自定义android混合框架开发实践1:实现基础andorid和webview交互...
  9. Java并发编程实战读书笔记(1)
  10. 如何应对企业的数字灾难
  11. matlab车轮滚动动画,利用几何画板演示滚动的车轮
  12. 自定义maven插件的实现
  13. 曾经,我以为我很懂 MySQL 索引...
  14. CJ88项目或WBS结算报错:消息号 KD506 “为接收者类型 FXA 定义一个成本要素“
  15. 007 锁存器和触发器
  16. PHP经典实例读书笔记--变量
  17. 华硕FL5900U笔记本电脑重装win10专业版详细操作教程
  18. 斯坦福高效睡眠法Xmind图
  19. 亚马逊和Global Optimism欢迎汉高和昕诺飞加入《气候宣言》
  20. linux上卸载php,linux怎么卸载软件?

热门文章

  1. Windows安全日志
  2. 网站运营如何做好活动策划(转载)
  3. 上货避坑指南 私域上货选品工具 无货源选品上货 采集商品详情数据API分享 详情图 sku信息
  4. 事业单位怎么发送通知短信
  5. 全球与中国萃取塔市场现状及未来发展趋势(2022)
  6. 5款小巧有趣的微信小程序,个个让你心花怒放!
  7. Jenkins构建maven项目失败
  8. 理解“万事万物皆对象”
  9. Failed to apply plugin [id 'com.gradle.build-scan']
  10. 【python 爬虫】百度手机助手爬虫