简单的计算器有多个操作 - 机器人 [英] Simple Calculator with multiple operations - Android
问题描述
我创建了一个简单的计算器,计算两个输入(例如,2 + 2 = 4)。我想现在要做的就是让应用程序来计算像多个操作(例如2 + 2 * 4 - 1 = 15)。有人可以帮助我与我的code?这是我的code。
公共类MainActivity延伸活动{
公共字符串str =;
字符运算=Q;
INT I,NUM,numtemp;
的EditText showResult;
字符串displayStr =;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
。this.getWindow()setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
showResult =(EditText上)findViewById(R.id.result_id);
}
公共无效btn1Clicked(视图v){
插入(1);
}
公共无效btn2Clicked(视图v){
插入(2);
}
公共无效btn3Clicked(视图v){
插入(3);
}
公共无效btn4Clicked(视图v){
插入(4);
}
公共无效btn5Clicked(视图v){
插入(5);
}
公共无效btn6Clicked(视图v){
插入(6);
}
公共无效btn7Clicked(视图v){
插入(7);
}
公共无效btn8Clicked(视图v){
插入(8);
}
公共无效btn9Clicked(视图v){
插入(9);
}
公共无效btn0Clicked(视图v){
插入(0);
}
公共无效btnplusClicked(视图v){
执行();
运算=+;
displayStr + =+;
}
公共无效btnminusClicked(视图v){
执行();
运算=' - ';
displayStr + = - ;
}
公共无效btndivideClicked(视图v){
执行();
运算='/';
displayStr + =/;
}
公共无效btnmultiClicked(视图v){
执行();
运算='*';
displayStr + =*;
}
公共无效btnequalClicked(视图v){
计算();
}
公共无效btnclearClicked(视图v){
复位();
}
私人无效复位(){
// TODO自动生成方法存根
海峡=;
运算=Q;
NUM = 0;
numtemp = 0;
displayStr =;
showResult.setText();
}
私人无效插入(诠释J){
// TODO自动生成方法存根
海峡= STR + Integer.toString(J);
NUM = Integer.valueOf(STR).intValue();
displayStr + = Integer.toString(J);
showResult.setText(displayStr);
}
私人无效执行(){
// TODO自动生成方法存根
海峡=;
numtemp = NUM;
}
私人无效计算(){
// TODO自动生成方法存根
串首先=将String.valueOf(numtemp);
字符串秒=将String.valueOf(NUM);
如果(OP =='+')
NUM = numtemp + NUM;
否则,如果(OP ==' - ')
NUM = numtemp-NUM;
否则,如果(OP =='/')
NUM = numtemp / NUM;
否则,如果(OP =='*')
NUM = numtemp * NUM;
showResult.setText(第一+ OP +二+=+ NUM);
}
}
使用一些堆栈操作。
可能是下面的链接将帮助你。
http://innovativenetsolutions.com/2013/01/calculator-app/
http://www.androiddom.com/2011/04/creating -Android-计算器tutorial.html
I have created a simple calculator that calculates two inputs (ex. 2 + 2 = 4). What I want to do now is to make the app to calculate multiple operations like (ex. 2 + 2 * 4 - 1 = 15). Can someone help me with my code? Here is my code.
public class MainActivity extends Activity {
public String str ="";
Character op = 'q';
int i,num,numtemp;
EditText showResult;
String displayStr = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
showResult = (EditText)findViewById(R.id.result_id);
}
public void btn1Clicked(View v){
insert(1);
}
public void btn2Clicked(View v){
insert(2);
}
public void btn3Clicked(View v){
insert(3);
}
public void btn4Clicked(View v){
insert(4);
}
public void btn5Clicked(View v){
insert(5);
}
public void btn6Clicked(View v){
insert(6);
}
public void btn7Clicked(View v){
insert(7);
}
public void btn8Clicked(View v){
insert(8);
}
public void btn9Clicked(View v){
insert(9);
}
public void btn0Clicked(View v){
insert(0);
}
public void btnplusClicked(View v){
perform();
op = '+';
displayStr += "+";
}
public void btnminusClicked(View v){
perform();
op = '-';
displayStr += "-";
}
public void btndivideClicked(View v){
perform();
op = '/';
displayStr += "/";
}
public void btnmultiClicked(View v){
perform();
op = '*';
displayStr += "*";
}
public void btnequalClicked(View v){
calculate();
}
public void btnclearClicked(View v){
reset();
}
private void reset() {
// TODO Auto-generated method stub
str ="";
op ='q';
num = 0;
numtemp = 0;
displayStr = "";
showResult.setText("");
}
private void insert(int j) {
// TODO Auto-generated method stub
str = str+Integer.toString(j);
num = Integer.valueOf(str).intValue();
displayStr += Integer.toString(j);
showResult.setText(displayStr);
}
private void perform() {
// TODO Auto-generated method stub
str = "";
numtemp = num;
}
private void calculate() {
// TODO Auto-generated method stub
String first=String.valueOf(numtemp);
String second=String.valueOf(num);
if(op == '+')
num = numtemp+num;
else if(op == '-')
num = numtemp-num;
else if(op == '/')
num = numtemp/num;
else if(op == '*')
num = numtemp*num;
showResult.setText(first+op+second+"="+num);
}
}
Use some stack operations.
May be the below links will helpful to you.
http://innovativenetsolutions.com/2013/01/calculator-app/
http://www.androiddom.com/2011/04/creating-android-calculator-tutorial.html
这篇关于简单的计算器有多个操作 - 机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!