cuteaddanina

再看,再看,就把你吃掉

 

软件工程第五次课(简单的一个计算器)<2>

用deepseek做的

总结以下几点:

1.灵活!各个方面的。

2.没了,因为这个挺简单的

展示环节(我做的哦)

附上源代码:

activity_main.xml里面的代码:( res/layout/activity_main.xml ):

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/inputField"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:focusable="false"
        android:clickable="false"
        android:textSize="24sp"
        android:gravity="end"
        android:padding="8dp"/>

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:columnCount="4"
        android:rowCount="5">

        <Button
            android:id="@+id/btn7"
            android:text="7"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn8"
            android:text="8"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn9"
            android:text="9"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btnDivide"
            android:text="/"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn4"
            android:text="4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn5"
            android:text="5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn6"
            android:text="6"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btnMultiply"
            android:text="*"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn1"
            android:text="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn2"
            android:text="2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn3"
            android:text="3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btnSubtract"
            android:text="-"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btn0"
            android:text="0"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btnDecimal"
            android:text="."
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btnEquals"
            android:text="="
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

        <Button
            android:id="@+id/btnAdd"
            android:text="+"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_columnWeight="1"
            android:layout_rowWeight="1"
            android:textSize="24sp"/>

    </GridLayout>
</LinearLayout>

MainActivity.java里面的代码:

 

package com.example.wow3179;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

    private EditText inputField;
    private String currentNumber = "";
    private String operation = "";
    private double firstNumber = 0;
    private double secondNumber = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        inputField = findViewById(R.id.inputField);

        // 设置数字按钮的点击事件
        setNumberButtonClickListeners();

        // 设置操作符按钮的点击事件
        setOperationButtonClickListeners();

        // 设置等号按钮的点击事件
        findViewById(R.id.btnEquals).setOnClickListener(v -> calculateResult());

        // 设置小数点按钮的点击事件
        findViewById(R.id.btnDecimal).setOnClickListener(v -> appendDecimal());
    }

    private void setNumberButtonClickListeners() {
        int[] numberButtonIds = {
                R.id.btn0, R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4,
                R.id.btn5, R.id.btn6, R.id.btn7, R.id.btn8, R.id.btn9
        };

        for (int id : numberButtonIds) {
            findViewById(id).setOnClickListener(v -> {
                Button button = (Button) v;
                currentNumber += button.getText().toString();
                inputField.setText(currentNumber);
            });
        }
    }

    private void setOperationButtonClickListeners() {
        int[] operationButtonIds = {
                R.id.btnAdd, R.id.btnSubtract, R.id.btnMultiply, R.id.btnDivide
        };

        for (int id : operationButtonIds) {
            findViewById(id).setOnClickListener(v -> {
                if (!currentNumber.isEmpty()) {
                    firstNumber = Double.parseDouble(currentNumber);
                    operation = ((Button) v).getText().toString();
                    currentNumber = "";
                    inputField.setText("");
                }
            });
        }
    }

    private void calculateResult() {
        if (!currentNumber.isEmpty() && !operation.isEmpty()) {
            secondNumber = Double.parseDouble(currentNumber);
            double result = 0;

            switch (operation) {
                case "+":
                    result = firstNumber + secondNumber;
                    break;
                case "-":
                    result = firstNumber - secondNumber;
                    break;
                case "*":
                    result = firstNumber * secondNumber;
                    break;
                case "/":
                    if (secondNumber != 0) {
                        result = firstNumber / secondNumber;
                    } else {
                        inputField.setText("Error");
                        return;
                    }
                    break;
            }

            inputField.setText(String.valueOf(result));
            currentNumber = String.valueOf(result);
            operation = "";
        }
    }

    private void appendDecimal() {
        if (!currentNumber.contains(".")) {
            currentNumber += ".";
            inputField.setText(currentNumber);
        }
    }
}

 

posted on 2025-03-20 01:39  Adda...nina  阅读(16)  评论(0)    收藏  举报

导航