Android Studio计算器课程设计报告

引言

计算器是人们日常生活中经常使用的工具之一。随着移动设备的普及,移动端的计算器应用也得到了广泛应用。本文将介绍如何使用Android Studio开发一个简单的计算器应用,并提供详细的代码示例。

设计目标

本次课程设计的目标是开发一个实现基本四则运算功能的计算器应用。用户可以通过界面输入算术表达式,并获取计算结果。同时,还需考虑用户输入的表达式合法性检查和错误处理。

开发环境

本次课程设计使用Android Studio进行开发,Android Studio是官方推荐的Android开发工具。它集成了各种开发工具和功能,提供了强大的开发能力和丰富的开发资源。

开发步骤

步骤一:创建Android项目

首先,我们需要在Android Studio中创建一个新的Android项目。打开Android Studio,选择"Start a new Android Studio project",填写项目名称和包名等信息,并选择适当的目标设备和最低API级别。

步骤二:设计用户界面

计算器的用户界面主要包含一个显示结果的文本框和一组按钮。我们通过布局文件来设计用户界面,使用LinearLayout来布局文本框和按钮。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/resultTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="1" />

        <!-- 其他按钮 -->

    </LinearLayout>

    <!-- 其他行按钮 -->

</LinearLayout>

步骤三:处理用户输入

我们需要为每个按钮设置点击事件的处理方法,在处理方法中获取按钮的文本,并添加到算术表达式中。同时,我们还需实现清除按钮的处理方法,以清空算术表达式。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
    private TextView resultTextView;
    private String expression = "";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        resultTextView = findViewById(R.id.resultTextView);
        
        Button button1 = findViewById(R.id.button1);
        button1.setOnClickListener(this);
        
        // 其他按钮的设置
        
    }
    
    @Override
    public void onClick(View view) {
        Button button = (Button) view;
        String buttonText = button.getText().toString();
        expression += buttonText;
        resultTextView.setText(expression);
    }
    
    public void clear(View view) {
        expression = "";
        resultTextView.setText(expression);
    }
    
    // 其他处理方法
}

步骤四:计算结果

在计算结果之前,我们需要进行合法性检查。我们可以使用正则表达式来检查算术表达式是否合法。然后,我们可以使用Java的eval库来计算表达式的结果。

public double calculate() {
    if (!isValidExpression()) {
        return 0;
    }
    
    try {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        Object result = engine.eval(expression);
        return Double.valueOf(result.toString());
    } catch (ScriptException e) {
        e.printStackTrace();
        return 0;
    }
}

public boolean isValidExpression() {
    // 使用正则表达式进行合法性检查
    // 略
}

步骤五:显示结果和错误处理

在处理计算结果和错误时,我们需要根据计算结果的正负性和错误类型来更新结果文本框的内容和样式。

public void showResult() {
    double result = calculate();
    
    if (result == 0) {
        resultTextView.setText("Error");
        resultTextView.setTextColor(Color.RED);
    } else {
        resultTextView.setText(String.valueOf(result));
        resultTextView.setTextColor(Color.BLACK);
    }
}

流程图