【安卓】Android Studio简易计算器(实现加减乘除,整数小数运算,正数负数运算)
目录
前言
运算效果
一、创建一个新的项目
二、编写xml文件(计算器显示页面)
三、实现Java运算逻辑
编辑
完整代码
xml文件代码:
Java文件代码:
注:
前言
随着移动互联网的普及,手机应用程序已经成为人们生活中不可或缺的一部分。计算器是一类被广泛使用的应用程序之一,因此学习如何开发一款简易的计算器应用程序是学习Android Studio开发的一个很好的开始。
Android Studio是一款Google开发的用于创建安卓应用的集成开发环境(IDE), 它可以帮助开发者快速设计、开发和测试应用程序。接下来我将为大家介绍如何使用Android Studio创建一个简易的计算器应用程序。
运算效果

一、创建一个新的项目



完成上面步骤以后,点击Finish,等待加载好项目就可以继续下面的步骤了
二、编写xml文件(计算器显示页面)
打开activity_main.xml文件: res --> layout --> activity_main.xml

可以模仿主流计算器或者自己手机上面的计算器的版式来设计你的计算页面样式。
xml文件代码附到最后啦,根据自己需要自行截取复制。
然后页面显示的样子就是下面这样的:
三、实现Java运算逻辑
写好基本的显示页面后,咱就得来完成逻辑运算和点击事件了
点开MainActivity.java文件:
Java逻辑要完成的主要是如何设计点击事件以及如何实现加减乘除的逻辑
完整代码
xml文件代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"app:circularflow_angles="20"tools:context=".MainActivity">
<!--csdn 波士顿o泡果奶 版权所有 --><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout"android:layout_width="match_parent"android:layout_height="80dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><ImageViewandroid:id="@+id/imageView"android:layout_width="29dp"android:layout_height="25dp"android:layout_marginTop="18dp"android:layout_marginEnd="10dp"app:layout_constraintEnd_toStartOf="@+id/imageView2"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/img" /><ImageViewandroid:id="@+id/imageView2"android:layout_width="32dp"android:layout_height="29dp"android:layout_marginTop="16dp"android:layout_marginEnd="16dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/img_1" /><TextViewandroid:id="@+id/textView"android:layout_width="65dp"android:layout_height="41dp"android:layout_marginStart="16dp"android:layout_marginTop="7dp"android:text="计算"android:textColor="#010101"android:textSize="31dp"android:textStyle="bold"app:autoSizeTextType="none"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="9dp"android:layout_marginTop="14dp"android:text="汇率"android:textColor="#B2B2B2"android:textSize="25dp"android:textStyle="bold"app:layout_constraintStart_toEndOf="@+id/textView"app:layout_constraintTop_toTopOf="parent" /><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="57dp"android:layout_height="3dp"android:layout_marginStart="19dp"android:background="#FF0101"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView"></androidx.constraintlayout.widget.ConstraintLayout></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout2"android:layout_width="410dp"android:layout_height="178dp"android:background="#FFFFFF"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/constraintLayout"><EditTextandroid:id="@+id/editTextText2"android:layout_width="409dp"android:layout_height="83dp"android:layout_marginStart="2dp"android:layout_marginTop="76dp"android:ems="10"android:inputType="text"android:textSize="50sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="466dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/constraintLayout2"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout51"android:layout_width="409dp"android:layout_height="89.8dp"android:background="#FFFFFF"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><androidx.cardview.widget.CardViewandroid:id="@+id/cardView2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/AC"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView12"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="18dp"android:layout_marginTop="16dp"android:text="AC"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.cardview.widget.CardViewandroid:id="@+id/cardView"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView3"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView2"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/dl"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/imageView3"android:layout_width="48dp"android:layout_height="30dp"android:layout_marginStart="14dp"android:layout_marginTop="28dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/img_4" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.cardview.widget.CardViewandroid:id="@+id/cardView3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView4"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView14"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="16dp"android:layout_marginTop="16dp"android:text="+/-"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.cardview.widget.CardViewandroid:id="@+id/cardView4"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F6E9E8"app:cardCornerRadius="45dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView3"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/D"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView15"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="10dp"android:text="÷ "android:textSize="42sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout54"android:layout_width="409dp"android:layout_height="89.8dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/constraintLayout51"><androidx.cardview.widget.CardViewandroid:id="@+id/cardView2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/seven"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView16"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="17dp"android:text="7"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView3"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView2"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/eight"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView17"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="17dp"android:text="8"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView4"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/nine"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView18"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="17dp"android:text="9"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView4"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F6E9E8"app:cardCornerRadius="45dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView3"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/X"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView19"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="31dp"android:layout_marginTop="14dp"android:text="x"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout52"android:layout_width="409dp"android:layout_height="89.8dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/constraintLayout54"><androidx.cardview.widget.CardViewandroid:id="@+id/cardView2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/four"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView20"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="4"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView3"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView2"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/five"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView21"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="5"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView4"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/six"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView22"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="6"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView4"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F6E9E8"app:cardBackgroundColor="#F6E9E8"app:cardCornerRadius="45dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView3"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/sub"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView23"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="35dp"android:layout_marginTop="16dp"android:text="-"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/constraintLayout53"android:layout_width="409dp"android:layout_height="89.8dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/constraintLayout52"><androidx.cardview.widget.CardViewandroid:id="@+id/cardView2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/one"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView24"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="1"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView3"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView2"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/two"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView25"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="2"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView4"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/three"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView26"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="3"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView4"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F6E9E8"app:cardCornerRadius="45dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView3"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/add"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView27"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="16dp"android:text="+"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="409dp"android:layout_height="89.8dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/constraintLayout53"><androidx.cardview.widget.CardViewandroid:id="@+id/cardView2"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/yu"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView28"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="27dp"android:layout_marginTop="17dp"android:text="%"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView3"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView2"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/zero"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView29"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="30dp"android:layout_marginTop="17dp"android:text="0"android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView3"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F2F1F1"app:cardCornerRadius="45dp"app:layout_constraintEnd_toStartOf="@+id/cardView4"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/point"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView30"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="36dp"android:layout_marginTop="17dp"android:text="."android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /><androidx.cardview.widget.CardViewandroid:id="@+id/cardView4"android:layout_width="80dp"android:layout_height="80dp"android:layout_marginTop="5dp"android:background="#F2F1F1"app:cardBackgroundColor="#F85955"app:cardCornerRadius="45dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toEndOf="@+id/cardView3"app:layout_constraintTop_toTopOf="parent"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/equal"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/textView32"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="31dp"android:layout_marginTop="16dp"android:text="="android:textSize="35sp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.cardview.widget.CardView><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent" /></androidx.constraintlayout.widget.ConstraintLayout></androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Java文件代码:
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private StringBuilder show=new StringBuilder();private ArrayList calculate_equation;private int signal=0;//为0 时表示刚输入状态;为1时表示当前在输出结果上继续输入@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);show=new StringBuilder();calculate_equation=new ArrayList<>();
//李木ConstraintLayout AC = findViewById(R.id.AC);ConstraintLayout Divide = findViewById(R.id.D);ConstraintLayout Multiplication = findViewById(R.id.X);ConstraintLayout Sub = findViewById(R.id.sub);ConstraintLayout Add = findViewById(R.id.add);ConstraintLayout Equal = findViewById(R.id.equal);ConstraintLayout Point = findViewById(R.id.point);ConstraintLayout one = findViewById(R.id.one);ConstraintLayout two = findViewById(R.id.two);ConstraintLayout three = findViewById(R.id.three);ConstraintLayout four = findViewById(R.id.four);ConstraintLayout five = findViewById(R.id.five);ConstraintLayout six = findViewById(R.id.six);ConstraintLayout seven = findViewById(R.id.seven);ConstraintLayout eight = findViewById(R.id.eight);ConstraintLayout nine = findViewById(R.id.nine);ConstraintLayout zero = findViewById(R.id.zero);EditText result=findViewById(R.id.editTextText2);AC.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {show.delete(0,show.length());show.append("");result.setText(show);result.setSelection(result.getText().length());signal=0;}});zero.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v){if(!(show.toString().equals("0"))){if(signal==0){show.append("0");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("0");result.setText(show);result.setSelection(result.getText().length());signal=0;}}}});one.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("1");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("1");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});two.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("2");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("2");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});three.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("3");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("3");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});four.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("4");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("4");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});five.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("5");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("5");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});six.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("6");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("6");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});seven.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("7");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("7");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});eight.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("8");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("8");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});nine.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){show.append("9");result.setText(show);result.setSelection(result.getText().length());}else{show.delete(0,show.length());show.append("9");result.setText(show);result.setSelection(result.getText().length());signal=0;}}});Point.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(signal==0){String a=show.toString();if(a.equals("")){show.append(".");result.setText(show);result.setSelection(result.getText().length());}else{int i;char t='0';for(i=a.length();i>0;i--){t=a.charAt(i-1);if(t=='.'||t=='+'||t=='-'||t=='*'||t=='/')break;}if(i==0){show.append(".");result.setText(show);result.setSelection(result.getText().length());}else if(t=='+'||t=='-'||t=='*'||t=='/'){show.append(".");result.setText(show);result.setSelection(result.getText().length());}}}else{show.delete(0,show.length());show.append(".");result.setText(".");result.setSelection(result.getText().length());signal=0;}}});Equal.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//判断用户是否输入了内容if(!show.toString().equals("")){signal=1;char temp=show.charAt(show.length()-1);if(show.charAt(0)=='-')show.insert(0,"0");if(temp=='+'||temp=='-')show.append("0");if(temp=='*'||temp=='/')show.append("1");StringBuilder temp1=new StringBuilder();for(int i=0;i<show.length();i++){if(show.charAt(i)>='0'&&show.charAt(i)<='9'||show.charAt(i)=='.'){temp1.append(String.valueOf(show.charAt(i)));}else if(show.charAt(i)=='N'){calculate_equation.add("NaN");i=i+2;}else if(show.charAt(i)=='∞'){calculate_equation.add("∞");}else{if(temp1.length()!=0){calculate_equation.add(temp1.toString());temp1.delete(0,temp1.length());}calculate_equation.add(String.valueOf(show.charAt(i)));}}if(temp1.length()!=0){calculate_equation.add(temp1.toString());}calculate_equation.add("#");String temp8=calculate(calculate_equation);result.setText(temp8);result.setSelection(result.getText().length());show.delete(0,show.length());calculate_equation.clear();show.append(temp8);}}});Add.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//判断用户是否输入了内容if(!(show.toString().equals(""))) {signal=0;char temp=show.charAt(show.length()-1);if(temp=='+'||temp=='-'||temp=='*'||temp=='/'){show.deleteCharAt(show.length()-1);show.append("+");}elseshow.append("+");result.setText(show);result.setSelection(result.getText().length());}}});Sub.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//判断用户是否输入了内容if(!(show.toString().equals(""))) {signal=0;char temp=show.charAt(show.length()-1);if(temp=='+'||temp=='-'||temp=='*'||temp=='/'){show.deleteCharAt(show.length()-1);show.append("-");}elseshow.append("-");result.setText(show);result.setSelection(result.getText().length());}}});Multiplication.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//判断用户是否输入了内容if(!(show.toString().equals(""))) {signal=0;char temp=show.charAt(show.length()-1);if(temp=='+'||temp=='-'||temp=='*'||temp=='/'){show.deleteCharAt(show.length()-1);show.append("*");}elseshow.append("*");result.setText(show);result.setSelection(result.getText().length());}}});Divide.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//判断用户是否输入了内容if(!(show.toString().equals(""))) {signal=0;char temp=show.charAt(show.length()-1);if(temp=='+'||temp=='-'||temp=='*'||temp=='/'){show.deleteCharAt(show.length()-1);show.append("/");}elseshow.append("/");result.setText(show);result.setSelection(result.getText().length());}}});}protected boolean operatorPriorityCompare(char operator1,char operator2){int o1=0;int o2=0;switch (operator1){case '+':{o1=0;break;}case '-':{o1=0;break;}case '*':{o1=1;break;}case '/':{o1=1;break;}}switch (operator2){case '+':{o2=0;break;}case '-':{o2=0;break;}case '*':{o2=1;break;}case '/':{o2=1;break;}}if(o1<=o2){return false;}elsereturn true;}//相加public static Double Add(Double d1,Double d2) {if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){return d1+d2;}if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){return d1+d2;}BigDecimal b1 = new BigDecimal(Double.toString(d1));BigDecimal b2 = new BigDecimal(Double.toString(d2));return b1.add(b2).doubleValue();}//相减public static Double Sub(Double d1,Double d2){if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){return d1-d2;}if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){return d1-d2;}if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){return d1*d2;}BigDecimal b1=new BigDecimal(Double.toString(d1));BigDecimal b2=new BigDecimal(Double.toString(d2));return b1.subtract(b2).doubleValue();}//相乘public static Double Mul(Double d1,Double d2){if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){return d1*d2;}if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){return d1*d2;}BigDecimal b1=new BigDecimal(Double.toString(d1));BigDecimal b2=new BigDecimal(Double.toString(d2));return b1.multiply(b2).setScale(8).doubleValue();}//相除public static Double Div(Double d1,Double d2){if(d1==Double.NEGATIVE_INFINITY||d1==Double.POSITIVE_INFINITY||d2==Double.NEGATIVE_INFINITY||d2==Double.POSITIVE_INFINITY){return d1/d2;}if(String.valueOf(d1).equals("NaN")||String.valueOf(d1).equals("NaN")){return d1/d2;}if(d1==0.0&&d2==0.0){return Double.NaN;}if(d2==0.0){return d1/d2;}BigDecimal b1=new BigDecimal(Double.toString(d1));BigDecimal b2=new BigDecimal(Double.toString(d2));return b1.divide(b2,8,BigDecimal.ROUND_HALF_UP).doubleValue();}protected String calculate(ArrayList equation){Double temp2;Double temp3;Double result;List operator=new ArrayList();List<Double> operand=new ArrayList();for(int i=0;i<equation.size();i++){String temp4=(String) equation.get(i);if(temp4.equals("+")||temp4.equals("-")||temp4.equals("*")||temp4.equals("/")){if(operator.size()>0){String temp5=operator.get(operator.size()-1).toString();while(!(operatorPriorityCompare(temp4.charAt(0),temp5.charAt(0)))&&operator.size()>0){operator.remove(operator.size()-1);temp3=operand.get(operand.size()-1);operand.remove(operand.size()-1);temp2=operand.get(operand.size()-1);operand.remove(operand.size()-1);switch (temp5.charAt(0)){case '+':{result=Add(temp2,temp3);operand.add(result);break;}case '-':{result=Sub(temp2,temp3);operand.add(result);break;}case '*':{result=Mul(temp2,temp3);operand.add(result);break;}case '/':{result=Div(temp2,temp3);operand.add(result);break;}}if(operator.size()>0){temp5=operator.get(operator.size()-1).toString();}elsebreak;}operator.add(temp4);}elseoperator.add(temp4);}else if(temp4.equals("#")){while(operator.size()>0){String temp6=(String)operator.get(operator.size()-1);operator.remove(operator.size()-1);temp3=operand.get(operand.size()-1);operand.remove(operand.size()-1);temp2=operand.get(operand.size()-1);operand.remove(operand.size()-1);switch (temp6.charAt(0)){case '+':{result=Add(temp2,temp3);operand.add(result);break;}case '-':{result=Sub(temp2,temp3);operand.add(result);break;}case '*':{result=Mul(temp2,temp3);operand.add(result);break;}case '/':{result=Div(temp2,temp3);operand.add(result);break;}}}}else{if(temp4.equals("NaN")){operand.add(Double.NaN);}else if(temp4.equals("∞")){operand.add(Double.POSITIVE_INFINITY);}else{operand.add(Double.parseDouble(temp4));}}}if(operand.get(0)==Double.NEGATIVE_INFINITY) return "-∞";if(operand.get(0)==Double.POSITIVE_INFINITY) return "∞";return operand.get(0).toString();}
}/*
* csdn 波士顿o泡果奶 版权所有 */
注:
xml文件中有一些图片,若完全粘贴xml代码,可将图片换成自己的图片,图片资源放到哪里,这里我就不多说了,可以参考下面的那些博客安卓studio图片资源放到哪里- CSDN搜索
https://so.csdn.net/so/search?q=%E5%AE%89%E5%8D%93studio%E5%9B%BE%E7%89%87%E8%B5%84%E6%BA%90%E6%94%BE%E5%88%B0%E5%93%AA%E9%87%8C&t=&u=&urw=
相关文章:
【安卓】Android Studio简易计算器(实现加减乘除,整数小数运算,正数负数运算)
目录 前言 运算效果 一、创建一个新的项目 二、编写xml文件(计算器显示页面) 三、实现Java运算逻辑 编辑 完整代码 xml文件代码: Java文件代码: 注: 前言 随着移动互联网的普及,手机应用程序已…...
一个vue mixin 小案例,实现等比例缩放
mixin.js /** Author: jinjianwei* Date: 2024-07-24 16:17:16* Description: 等比例缩放,屏幕适配 mixin 函数*/// * 默认缩放值 const scale {width: 1,height: 1, } // * 设计稿尺寸(px) const baseWidth 1920 const baseHeight 1080 …...
【数据结构初阶】单链表经典算法题十二道——得道飞升(中篇)
hi,bro—— 目录 5、 链表分割 6、 链表的回文结构 7、 相交链表 8、 环形链表 【思考】 —————————————— DEAD POOL —————————————— 5、 链表分割 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), …...
CTF ssrf 基础入门 (一)
0x01 引言 我发现我其实并不是很明白这个东西,有些微妙,而且记忆中也就记得Gopherus这个工具了,所以重新学习了一下,顺便记录一下吧 0x02 辨别 我们拿到一个题目,他的名字可能就是题目类型,但是也有可能…...
IP地址在后端怎么存才好?
目录 一、地址的区别 二、字符串存取 2.1 IPV4空间大小 2.2 IPV6空间大小 三、整数存取 四、总结 4.1 字符串存取优缺点 4.2 整数存取的优缺点 一、地址的区别 在网络中,IP地址分为IPV4和IPV6,IPV4是一共占32位的,每8位小数点分隔&…...
《通讯世界》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答 问:《通讯世界》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《通讯世界》级别? 答:国家级。主管单位:科学技术部 主办单位:中国科学技…...
go get的原理
1、GOPROXY 可以写在os的环境变量中,也可以写在go的环境变量中 GOPROXYhttps://goproxy.cn,direct 表示先去第一个网址下载,下载不到,就直接下载 也可以配置GOPRIVATE私有仓库,遇到私有仓库中的包,就直接下载 2、go…...
jenkins替换配置文件
1.点击首页的【Manage Jenkins】-【Manage Plugins】,在选项【Available plugins】安装 Config File Provider Plugin ,安装后重启jenkins 2.安装完成后会有这个图标,点进去 3.点击新建,选择自定义,填入要替换的文件…...
C# Web控件与数据感应之 填充 HtmlTable
C# Web控件与数据感应之 填充 HtmlTable 在C#中,特别是在ASP.NET Web Forms应用中,你可能会遇到需要将数据动态填充到HTML表格(HtmlTable)中的场景。这通常涉及到遍历数据源(如数据库查询结果、集合等)&am…...
HAL库源码移植与使用之SPI驱动VS1053音频解码
你可以理解为带着dac adc芯片功能的集成芯片,声音的高低音形成由频率决定,大小声由波峰决定,所以采集时记录时间和电压值就可以确定高低音色和大小声,形成声音波形,再把波形用dac输出给喇叭,让喇叭在对应时…...
RK3568 Linux 平台开发系列讲解(内核入门篇):从内核的角度看外设芯片的驱动
在嵌入式 Linux 开发中,外设芯片的驱动是实现操作系统与硬件之间交互的关键环节。对于 RK3568 这样的处理器平台,理解如何从内核的角度构建和管理外设芯片的驱动程序至关重要。 1. 外设驱动的基础概念 外设驱动(Device Driver)是操作系统与硬件设备之间的桥梁。它负责控…...
初识C++ · AVL树(2)
目录 前言: 1 左右旋 2 右左旋 3 部分细节补充 3.1 单旋和插入 3.2 部分小函数 前言: AVL树作为一种结构,理解树的本身是不大难的,难的在于,树旋转之后的连接问题,写AVL树的代码大部分都是在旋转部分…...
LLM:归一化 总结
一、Batch Normalization 原理 Batch Normalization 是一种用于加速神经网络训练并提高稳定性的技术。它通过在每一层网络的激活值上进行归一化处理,使得每一层的输入分布更加稳定,从而加速训练过程,并且减轻了对参数初始化的依赖。 公式 …...
蓝桥杯 2024 年第十五届省赛真题 —— 最大异或结点
目录 1. 最大异或结点1. 问题描述2. 输入格式3. 输出格式4. 样例输入5. 样例输出6. 样例说明7. 评测用例规模与约定 2. 解题思路1. 解题思路2. AC_Code 1. 最大异或结点 1. 问题描述 小蓝有一棵树,树中包含 N N N 个结点,编号为 0 , 1 , 2 , ⋯ , N − 1 0,1,2,…...
AV1技术学习:Loop Restoration Filter
环路恢复滤波器(restoration filter)适用于64 64、128 128 或 256 256 像素块单元,称为 loop restoration units (LRUs)。每个单元可以独立选择是否跳过滤波、使用维纳滤波器(Wiener filter)或使用自导滤波器&#…...
如何使用python实现自动化办公?干货满满!
Python作为一种简单而强大的编程语言,不仅在数据科学和软件开发领域广受欢迎,还在办公自动化方面发挥了巨大作用。通过Python,我们可以编写脚本来自动执行各种重复性任务,从而提高工作效率并减少错误。在本文中,我们将…...
QT Creator下载安装详细教程(保姆级教程)
qt下载安装 1.下载网址 通过清华大学开源软件镜像站进行下载:链接: https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/online_installers/ 这里我选的是4.4版本的,也可以选择4.7版本,问题不大。 根据电脑系统选择下载linux…...
无人机公司销售需要什么资质
国家民航局于2024年1月1日实施了《无人驾驶航空器飞行管理暂行条例》,根据这个管理条例里面的 第十一条 使用除微型以外的民用无人驾驶航空器从事飞行活动的单位应当具备下列条件,并向国务院民用航空主管部门或者地区民用航空管理机构申请取得民用无人驾…...
代码自动化重构工具OpenRewrite介绍
OpenRewrite 是一个用于大规模自动化代码重构的开源框架,它极大地提升了开发人员的研发效率,通过自动化地进行代码重构和转换,帮助开发人员消除代码库中的技术债务。 通过 LST、访问器和配方的结合,OpenRewrite 能够实现准确的代…...
Win11安装Docker
下载Docker Desktop for Windows 下载 下载连接:Install Docker Desktop on Windows | Docker Docs 地址在国外,需要科学上网。也可使用我提供的,百度网盘:https://pan.baidu.com/s/1232TTkkzLsoZyFjC3bmgiQ 安装 下载完成之后…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...

