Android 作业:简单计算器实现

用c++写出带交互界面的简单计算器 利用devc++和QT写交互界面的计算器 一.先下载一个QT 下载地址 http://download.qt.io/archive/qt/ 我下载的是 5.12.8 版本的 第四个是windos的 第五个是mac的 第六个是linux的 按需下载就行了 这里有一篇下载安装教程可以看看 https://blog.csdn.net/cfan927/article/details/98115783?utm_medium=distribute.pc_relevant.none-task-blog-BlogComm 阅读详情
10004286-20a049f976125976.png
image.png

思路

  1. 首先设计界面,activity_main.xml
    计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Button
<?xml version="1.0" encoding="utf-8"?>
<GridLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:rowCount="6"
    android:columnCount="4"
    >
    <!--文本标签-->
    <TextView
        android:id="@+id/text"
        android:layout_width="350dp"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:layout_marginLeft="4px"
        android:gravity="left"
        android:textSize="50dp" />
 
    <Button
        android:id="@+id/btnClear"
        android:layout_width="353dp"
        android:layout_height="wrap_content"
        android:layout_columnSpan="4"
        android:background="@color/colorAccent"
        android:text="清除"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn1"
        android:text="1"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn2"
        android:text="2"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn3"
        android:text="3"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btnPlus"
        android:background="@color/colorPrimary"
        android:text="+"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn4"
        android:text="4"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn5"
        android:text="5"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn6"
        android:text="6"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btnSubtract"
        android:background="@color/colorPrimary"
        android:text="-"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn7"
        android:text="7"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn8"
        android:text="8"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn9"
        android:text="9"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btnMultiply"
        android:background="@color/colorPrimary"
        android:text="*"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btnPoint"
        android:text="."
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btn0"
        android:text="0"
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btnSum"
        android:text="="
        android:textSize="26sp" />
 
    <Button
        android:id="@+id/btnDivide"
        android:background="@color/colorPrimary"
        android:text="/"
        android:textSize="26sp" />
</GridLayout>
  1. 接下来是功能的实现,MainActivity.java
    给各个按钮注册点击事件、对输入内容的判断和计算等。
package com.example.asus.calculator;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 
    Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,
            btnClear,btnPlus,btnSubtract,btnMultiply,btnDivide,btnSum,btnPoint;
    TextView text;
    String str = "";
    boolean clr_flag;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btn0 = (Button) findViewById(R.id.btn0);
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn3 = (Button) findViewById(R.id.btn3);
        btn4 = (Button) findViewById(R.id.btn4);
        btn5 = (Button) findViewById(R.id.btn5);
        btn6 = (Button) findViewById(R.id.btn6);
        btn7 = (Button) findViewById(R.id.btn7);
        btn8 = (Button) findViewById(R.id.btn8);
        btn9 = (Button) findViewById(R.id.btn9);
        btnClear = (Button) findViewById(R.id.btnClear);
        btnPlus = (Button) findViewById(R.id.btnPlus);
        btnSubtract = (Button) findViewById(R.id.btnSubtract);
        btnMultiply = (Button) findViewById(R.id.btnMultiply);
        btnDivide = (Button) findViewById(R.id.btnDivide);
        btnPoint = (Button) findViewById(R.id.btnPoint);
        btnSum = (Button) findViewById(R.id.btnSum);
 
        text = (TextView) findViewById(R.id.text) ;
 
        btn0.setOnClickListener(this);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
        btn4.setOnClickListener(this);
        btn5.setOnClickListener(this);
        btn6.setOnClickListener(this);
        btn7.setOnClickListener(this);
        btn8.setOnClickListener(this);
        btn9.setOnClickListener(this);
        btnClear.setOnClickListener(this);
        btnPlus.setOnClickListener(this);
        btnSubtract.setOnClickListener(this);
        btnMultiply.setOnClickListener(this);
        btnDivide.setOnClickListener(this);
        btnPoint.setOnClickListener(this);
        btnSum.setOnClickListener(new click());
 
    }
 
    public void onClick(View v) {
        String input=text.getText().toString();
        switch (v.getId()){
            case   R.id.btn0:
            case   R.id.btn1:
            case   R.id.btn2:
            case   R.id.btn3:
            case   R.id.btn4:
            case   R.id.btn5:
            case   R.id.btn6:
            case   R.id.btn7:
            case   R.id.btn8:
            case   R.id.btn9:
            case   R.id.btnPoint:
                if(clr_flag){
                    clr_flag=false;
                    str="";
                    text.setText("");
                }
                text.setText(input+((Button)v).getText());
                break;
            case R.id.btnPlus:
            case R.id.btnSubtract:
            case R.id.btnMultiply:
            case R.id.btnDivide:
                if(clr_flag){
                    clr_flag=false;
                    input="";
                    text.setText("");
                }
                text.setText(input + " " + ((Button)v).getText() + " ");
                break;
            case R.id.btnClear:
                text.setText("");
                break;
        }
    }
    class click implements OnClickListener{
        public void onClick (View v) {
            getResult();//调用方法,计算结果
        }
    }
 
    private void getResult () {
        String str1 = text.getText().toString();
        if(str1 == null || str1.equals("")){
            return;
        }
        if(!str1.contains(" ")){
            return ;
        }
        if(clr_flag){
            clr_flag=false;
            return;
        }
        clr_flag=true;
        double result = 0;
//        运算符前的数字
        String s1 = str1.substring(0,str1.indexOf(" "));
//        运算符
        String op = str1.substring(str1.indexOf(" ")+1,str1.indexOf(" ")+2);
//        运算符后的数字
        String s2 = str1.substring(str1.indexOf(" ")+3);
//        判断
//        1. 如果s1、s2都不为空
        if(!s1.equals("")&&!s2.equals("")) {   //包含小数点运算
            double d1 = Double.parseDouble(s1);//则数字都是double类型
            double d2 = Double.parseDouble(s2);
            if (op.equals("+")) {   //如果是 +
                result = d1 + d2;
            } else if (op.equals("-")) {   //如果是 -
                result = d1 - d2;
            } else if (op.equals("*")) {   //如果是 *
                result = d1 * d2;
            } else if (op.equals("/")) {   //如果是 /
                if (d2 == 0) { //如果被除数是0
                    result = 0; //则结果是0
                }
                else {//否则执行正常是除法运算
                    result = d1 / d2;
                }
            }
            if (!s1.contains(".") && !s2.contains(".") && !op.equals("/")) {//如果是整数类型
                int r = (int) result; //都是整形
                text.setText(str1 + " = " + r + "");
            } else{
                text.setText(str1 + " = " + result + "");
            }
        }
//            如果s1不是空,s2是空
        else if(!s1.equals("")&&s2.equals("")){
            double d1 = Double.parseDouble(s1);
            if (op.equals("+")){
                result = d1;
            }
            if (op.equals("-")) {
                result = d1;
            }
            if (op.equals("*")) {
                result = 0;
            }
            if (op.equals("/")) {
                result = 0;
            }
            if(!s1.contains(".")) {
                int res = (int) result;
                text.setText(str1 + " = " + res+"");
            }else {
                text.setText(str1 + " = " + result+"");
            }
        }
//        如果s1是空,s2不是空
        else if(s1.equals("")&& !s2.equals("")){
            double d2 = Double.parseDouble(s2);
            if(op.equals("+")){
                result = 0+d2;
            }else if(op.equals("-")){
                result = 0-d2;
            }else if(op.equals("*")){
                result = 0;
            }else if(op.equals("/")){
                result = 0;
            }
            if(!s1.contains(".") && !s2.contains(".")){
                int res = (int) result;
                text.setText(str1 + " = " + res + "");
            }else{
                text.setText(str1 + " = " + result + "");
            }
        }else{
            text.setText("");
        }
    }
}
idea编写的安卓Android项目,计算器 idea编写的安卓Android项目,计算器简介项目展示代码页面 简介 用idea编写的安卓项目 项目展示 代码页面 activity_calculator.xml <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android. 阅读详情

相关推荐

Android Studio实现简易计算器

主要为大家详细介绍了Android Studio实现简易计算器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Android入门:简单计算器的实现

在学习了基本布局和点击监听后,可以写一个简单计算器,实现基础的演算功能。

L9102fun的博客 956

ADK 第一篇 Google Agent Development Kit 简介

是一个灵活且模块化的框架,专为开发和部署AI智能体而设计。虽然ADK针对Gemini和Google生态系统进行了优化,但它与模型无关、与部署环境无关,并兼容其他框架。ADK的核心理念是让智能体开发更接近传统软件开发模式,从而帮助开发者更轻松地构建、部署和编排智能体架构——无论是处理简单任务,还是管理复杂工作流。:利用预置工具、自定义函数、OpenAPI规范或集成现有工具,赋予智能体多样化能力,实现与谷歌生态系统的深度整合。

2501_90353350的博客 3043

Android实现简单的计算器功能

Android实现简单的计算器功能前言:通过Android实现简单的计算器功能,实现简单的加、减、乘、除操作。

tracy的博客 1万+

景观格局指数计算方法及代表的生态学意义(待补充)

景观指数 斑块密度(PD) 斑块密度(PD)表现某种斑块在景观中的密度,可反映出景观整体的异质性与破碎度[17],公式为PD=NP/A(1)式中NP———斑块数量,个A———景观或斑块的总面积,hm2PD———斑块密度,个/hm2 最大斑块指数(LPI) 最大斑块指数(LPI)用于确定景观中的优势斑块类型,间接反映人类活动干扰的方向和大小,公式为LPI=amaxA×100%(0≤LPI≤100%)(2)式中amax———景观或某一种斑块类型中最大斑块的面积,hm2LPI———最大斑块指数,% 凝聚

soderayer的博客 13万+

Win11内核隔离无法打开的解决方案详解

内核隔离问题的解决需遵循"先硬件后软件"的排查原则,90%以上的案例可通过驱动清理或外设断开解决。对于必须禁用该功能的用户,建议定期使用Windows Defender进行全盘扫描,并保持系统更新至最新版本。技术决策需在安全性和兼容性之间取得平衡,本文提供的多维解决方案可帮助用户构建更稳定的Windows 11使用环境。

mmoo_python的博客 4829

Android计算器实现

这次项目中学习到如何在Android应用中实现计算器功能。如何在Activity中创建和管理视图。解如何使用XML布局文件来设计和布局界面。需要熟悉各种布局元素,如。学习到如何使用各种UI组件来实现用户交互。这包括如何使用等组件来输入和显示文本。在实现计算器功能时,你需要了解各种运算的规则和算法。这包括加法、减法、乘法和除法的基本原理,以及如何处理浮点数和括号等复杂表达式。可以掌握Android应用开发的基本概念,包括布局、事件处理和计算功能。这将在Android开发领域的进一步学习打下坚实的基础。

m0_72104085的博客 6829

hi3516cv610在PQStream上实现拉出图像,windows和板端操作记录

PQStream拉出图像

weixin_51838255的博客 728

手把手教你完成Android期末大作业(多功能应用型APP)

前言 Android期末作业,估摸着也花了整整5天。里面可能会缺少某些细节,如果跟着做有不会的评论就行,每天都会看,尽力解答。 功能 待办 专注计时 音乐 天气 实现步骤 一、底部菜单栏切换页 1.添加依赖 dependencies { implementation 'com.google.android.material:material:1.2.1' } 2.在res资源文件夹下新建一个menu文件夹,创建底部导航的菜单布局文件 创建对应数量的item,为每个菜单栏选项 给每个item定

Dae_Lzh的博客 8万+

搭建自己的MQTT服务器,实现设备上云(Ubuntu+EMQX)

这篇文章教大家在ECS云服务器上部署EMQX,搭建自己私有的MQTT服务器,配置EMQX实现设备上云,设备数据转发,存储;服务器我采用的华为云的ECS服务器,系统选择Ubuntu系统。

2万+

【微服务】SpringBoot 对接飞书审批流程使用详解

SpringBoot 对接飞书审批流程使用详解

congge_study的博客 3771

【Android应用开发之前端——简单计算器效果】

用Android Studio最快速完成简单的计算器功能

Wistain的博客 5247

8-阿里云服务器 ECS配置R及Studio Server

步骤概览:(首先要明确自己的系统然后进行安装)

hx2024的博客 1572

android 计算器解析,Android 作业:简单计算器实现

image.png思路首先设计界面,activity_main.xml计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:rowCount="6"android:columnCount="4">android...

weixin_28339967的博客 294

Windows11 - Ubuntu 双系统及 ROS、ROS2 安装

在本教程中,我们将使用 Ubuntu 20.04 版本,该版本使用了新的 Ubuntu 桌面安装程序,该程序将包含在今后发布的所有 Ubuntu 版本中。如果你选择了这个选项,你会看到一个简单的界面,允许你选择要安装Ubuntu的硬盘,并通过滑块来决定你希望Ubuntu使用的磁盘空间大小。如果你的电脑有多个硬盘驱动器,那么只要它们各自有自己的驱动器,这个选项就能让你在安装 Ubuntu 的同时安装现有的操作系统。在此屏幕上,系统会提示您输入您的姓名和您的计算机名称,以显示在网络上。

机器人控制与仿真应用 4509

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

移动开发作业三:使用Android studio来实现简单的计算器

在这个文件中,当控件处于被按下的状态时(state_pressed=true),会显示gray.xml所定义的样式,否则显示white.xml所定义的样式。在onCreate方法中,我们首先通过findViewById方法获取到布局中定义的各个按钮和文本框的引用,并为它们设置点击事件监听器(this),这里我只显示一部分因为内容大致一样。这个文件定义了一个背景色为白色(#ffffffff)的形状,并设置了圆角半径为5dp。这个文件定义了一个背景色为黄色(#FFB400)的形状,并设置了圆角半径为5dp。

m0_65793218的博客 5593

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

自定义计算器 android,Android 作业:简单计算器实现

image.png思路首先设计界面,activity_main.xml计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:rowCount="6"android:columnCount="4">android...

weixin_30727701的博客 513

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

简单计算器 安卓 Android 作业

Android老师布置的课程作业——简单计算器 功能要求实现四则运算,参考界面见下图: 首先给各位老铁提供apk安装包以及项目压缩包,略表诚意~ github地址:https://github.com/wonke/Calculator 使用GirdLayout比较适合计算器这种规则的布局,每行有几个按钮几乎都是固定的,遇到一个按钮需要占两个常规按钮空间时,使用android:la...

weixin_34088583的博客 405

简单安卓计算器(课后小作业)

简单安卓计算器(课后小作业) 实现了基本的加减乘除取余运算可以叠加运算 首先给计算器布局 用的是TableLayout TableRow布的局 主要是老师要求这么做的还可以线性布局 ?xml version=“1.0” encoding=“utf-8”?> <Button android:layout_weight="1" andro...

Afour博客 792

java编写安卓计算器_安卓实现简单计算器

实现一个计算器 ,有加减乘除功能,小数点和清除操作。这是学校安卓老师布置的作业,计算器说实话实现起来挺多坑的,之前在算法比赛中见过这种题,用来熟悉安卓的布局的确是挺好的一个小案例,不过需要挺多逻辑处理!下面本人的实现思路:布局方面:使用网格GridLayout布局,除了显示数据的textView,其他都是button,使用xml设置好,添加到res。事件方面:通过findViewBy在R.id.x...

weixin_42469191的博客 943

安卓作业一、一个简单的安卓计算器app

1.布局 外层采用垂直的LinearLayout布局,内层再嵌套五个水平的线性布局,通过设置weightSum和layout_weight属性来设置按钮以及各个嵌套的LinearLayout的比例。以下为activity_main.xml文件的代码: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:and...

lv_1230的博客 1246

Android Studio小作业:科学计算器

Java实现安卓科学计算器!

Tony_LPJ_080410的博客 6239

AndroidStudio简单计算器的实现

项目简介 首先此项目是本人学校安卓开发的一次作业,用Android Studio开发一个简单的计算器,这个计算器正常的功能为带括号的加减乘除多项式计算! 界面展示 废话不多说先展示一下界面!(模仿了小米计算器),有两种方式添加控件,一种为动态添加,一种为直接添加。这里使用了EditText(1),TextView(1),Button(19) ”activity_main.xml“展示部分 And...

vvc_a的博客 4294

简单的android计算器实现(包含小彩蛋)

这是一个简单的android计算器实现,包含简单的主题色变换彩蛋。使用的是java语言。 本次任务使用 Android 开发技术,完成一个具备基本四则运算功能(加、减、乘、除)的计算器 应用。

rong_pei的博客 2190

Android Studio:一个简单的计算器app的实现过程<初级>

Android Studio:一个简单的计算器app的实现过程

零小唬的博客 4089

安卓(java)计算器简单实现

博主q q 656358805 欢迎线上交流! 以下两图是计算器的结果展示:                                                                  好了,那么今天我们来讲一下安卓计算器的简单实现,对于广大愁于编程的初学者大学生来说,自己制作一个计算器的作业会非常难,但是不要害怕,编程本来就很难,智商跟不上

qq_33905749的博客 1万+
上一篇: JSP 课后作业:编写 Tag 文件计算矩形、圆形面积
下一篇: 算法——0-1背包问题
Coder_xh
博客等级 码龄9年 15粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值