用Android studio写一个科学计算器
时间: 2023-10-04 09:13:45 浏览: 72
好的,下面是一个简单的科学计算器的实现步骤:
1. 创建一个新的 Android Studio 项目。
2. 在 layout 文件夹中创建一个新的布局文件,用于显示计算器界面。
3. 在布局文件中添加一个 EditText 控件,用于显示计算结果。
4. 在布局文件中添加多个 Button 控件,用于输入数字和运算符。
5. 在 MainActivity 中获取 EditText 控件的实例,并设置其为不可编辑。
6. 为每个 Button 控件设置 OnClickListener,用于处理用户的输入。
7. 在 OnClickListener 中根据用户输入的按钮来执行相应的计算操作,例如加减乘除、平方根、正弦余弦等。
8. 将计算结果显示在 EditText 控件中。
下面是一个示例代码:
```java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText etResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etResult = findViewById(R.id.et_result);
etResult.setKeyListener(null);
findViewById(R.id.btn_0).setOnClickListener(this);
findViewById(R.id.btn_1).setOnClickListener(this);
findViewById(R.id.btn_2).setOnClickListener(this);
findViewById(R.id.btn_3).setOnClickListener(this);
findViewById(R.id.btn_4).setOnClickListener(this);
findViewById(R.id.btn_5).setOnClickListener(this);
findViewById(R.id.btn_6).setOnClickListener(this);
findViewById(R.id.btn_7).setOnClickListener(this);
findViewById(R.id.btn_8).setOnClickListener(this);
findViewById(R.id.btn_9).setOnClickListener(this);
findViewById(R.id.btn_add).setOnClickListener(this);
findViewById(R.id.btn_subtract).setOnClickListener(this);
findViewById(R.id.btn_multiply).setOnClickListener(this);
findViewById(R.id.btn_divide).setOnClickListener(this);
findViewById(R.id.btn_sqrt).setOnClickListener(this);
findViewById(R.id.btn_sin).setOnClickListener(this);
findViewById(R.id.btn_cos).setOnClickListener(this);
findViewById(R.id.btn_clear).setOnClickListener(this);
findViewById(R.id.btn_equal).setOnClickListener(this);
}
@Override
public void onClick(View view) {
String input = etResult.getText().toString();
switch (view.getId()) {
case R.id.btn_0:
case R.id.btn_1:
case R.id.btn_2:
case R.id.btn_3:
case R.id.btn_4:
case R.id.btn_5:
case R.id.btn_6:
case R.id.btn_7:
case R.id.btn_8:
case R.id.btn_9:
etResult.setText(input + ((Button) view).getText());
break;
case R.id.btn_add:
case R.id.btn_subtract:
case R.id.btn_multiply:
case R.id.btn_divide:
etResult.setText(input + " " + ((Button) view).getText() + " ");
break;
case R.id.btn_sqrt:
double sqrt = Math.sqrt(Double.parseDouble(input));
etResult.setText(String.valueOf(sqrt));
break;
case R.id.btn_sin:
double sin = Math.sin(Double.parseDouble(input));
etResult.setText(String.valueOf(sin));
break;
case R.id.btn_cos:
double cos = Math.cos(Double.parseDouble(input));
etResult.setText(String.valueOf(cos));
break;
case R.id.btn_clear:
etResult.setText("");
break;
case R.id.btn_equal:
double result = calculate(input);
etResult.setText(String.valueOf(result));
break;
}
}
private double calculate(String input) {
String[] tokens = input.split(" ");
double result = Double.parseDouble(tokens[0]);
for (int i = 1; i < tokens.length; i += 2) {
String operator = tokens[i];
double operand = Double.parseDouble(tokens[i + 1]);
switch (operator) {
case "+":
result += operand;
break;
case "-":
result -= operand;
break;
case "*":
result *= operand;
break;
case "/":
result /= operand;
break;
}
}
return result;
}
}
```
希望这能帮助你实现一个简单的科学计算器!
阅读全文