用Android studio写一个科学计算器
时间: 2023-10-05 21:09:20 浏览: 172
基于Android的科学计算器【100010762】
好的,下面是一个简单的科学计算器的实现步骤:
1. 创建一个新的Android Studio项目
2. 在布局文件中添加一个EditText控件用于显示计算结果,以及若干个Button控件用于输入数字和操作符
3. 在MainActivity中编写逻辑代码,处理按钮点击事件,计算表达式并将结果显示在EditText中
4. 实现基本的算术运算,如加减乘除,可以使用Java自带的Math库提供的函数
5. 实现科学计算功能,如三角函数、指数、对数等,可以使用Java自带的Math库提供的函数
6. 添加清空、删除、等于等功能按钮,使得计算器更加完善
7. 将界面美化,添加动画效果等,提高用户体验
以下是一个简单的示例代码,实现了加减乘除和取反功能:
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText mResultEditText;
private Button mAddButton;
private Button mSubtractButton;
private Button mMultiplyButton;
private Button mDivideButton;
private Button mNegateButton;
private double mOperand1 = Double.NaN;
private double mOperand2 = Double.NaN;
private String mOperator = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mResultEditText = findViewById(R.id.result_edit_text);
mAddButton = findViewById(R.id.add_button);
mSubtractButton = findViewById(R.id.subtract_button);
mMultiplyButton = findViewById(R.id.multiply_button);
mDivideButton = findViewById(R.id.divide_button);
mNegateButton = findViewById(R.id.negate_button);
mAddButton.setOnClickListener(this);
mSubtractButton.setOnClickListener(this);
mMultiplyButton.setOnClickListener(this);
mDivideButton.setOnClickListener(this);
mNegateButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.add_button:
mOperator = "+";
break;
case R.id.subtract_button:
mOperator = "-";
break;
case R.id.multiply_button:
mOperator = "*";
break;
case R.id.divide_button:
mOperator = "/";
break;
case R.id.negate_button:
if (!mResultEditText.getText().toString().isEmpty()) {
double value = Double.parseDouble(mResultEditText.getText().toString());
mResultEditText.setText(String.valueOf(-value));
}
return;
}
if (!Double.isNaN(mOperand1)) {
mOperand2 = Double.parseDouble(mResultEditText.getText().toString());
mOperand1 = evaluate();
mResultEditText.setText(String.valueOf(mOperand1));
} else {
mOperand1 = Double.parseDouble(mResultEditText.getText().toString());
}
mResultEditText.setText("");
}
private double evaluate() {
switch (mOperator) {
case "+":
return mOperand1 + mOperand2;
case "-":
return mOperand1 - mOperand2;
case "*":
return mOperand1 * mOperand2;
case "/":
return mOperand1 / mOperand2;
default:
return Double.NaN;
}
}
}
```
你可以根据自己的需求进行修改和扩展,实现更加完善的科学计算器。
阅读全文