본문 바로가기
프로그래밍/안드로이드

안드로이드 계산기 소스2

by -현's- 2012. 10. 29.
반응형

 

package your.packaga;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class CalculActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
 
 double a, b, tmp;                    //a는 첫번째 숫자, b는 두번째 숫자, c는 중간 계산값
 int flag1=0, flag2=0, flag3=1;    
 static double result=0;
 
 
 //flag1이 0이면 숫자, 1이면 연산자
 //flag2가 0이면 +, 1이면 -, 2면 *, 3이면 /
 //flag3이 0이면 숫자, 1이면 연산자, 2면 =
 
 
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button01=(Button)findViewById(R.id.Button01);
        Button button02=(Button)findViewById(R.id.Button02);
        Button button03=(Button)findViewById(R.id.Button03);
        Button button04=(Button)findViewById(R.id.Button04);
        Button button05=(Button)findViewById(R.id.Button05);
        Button button06=(Button)findViewById(R.id.Button06);
        Button button07=(Button)findViewById(R.id.Button07);
        Button button08=(Button)findViewById(R.id.Button08);
        Button button09=(Button)findViewById(R.id.Button09);
        Button button00=(Button)findViewById(R.id.Button0);
       
        Button plus=(Button)findViewById(R.id.ButtonP);
        Button minus=(Button)findViewById(R.id.ButtonM);
        Button div=(Button)findViewById(R.id.ButtonNA);
        Button mul=(Button)findViewById(R.id.ButtonX);
        Button equl=(Button)findViewById(R.id.ButtonE);
       
       
        button01.setOnClickListener(this);
        button02.setOnClickListener(this);
        button03.setOnClickListener(this);
        button04.setOnClickListener(this);
        button05.setOnClickListener(this);
        button06.setOnClickListener(this);
        button07.setOnClickListener(this);
        button08.setOnClickListener(this);
        button09.setOnClickListener(this);
        button00.setOnClickListener(this);
       
        plus.setOnClickListener(this);
        minus.setOnClickListener(this);
        div.setOnClickListener(this);
        mul.setOnClickListener(this);
        equl.setOnClickListener(this);
       
    }
   
   

    public static double plus (double a, double b)
    {
     return result  = a+b;
 
    }
    public static double minus (double a, double b)
    {
     return result  = a-b;
 
    }
    public static double mul (double a, double b)
    {
     return result  = a*b;
    
    }
    public static double div (double a, double b)
    {
     return result  = a/b;
    }
   
   
    public void onClick(View v){
     EditText text=(EditText)findViewById(R.id.et);
     switch (v.getId()) {

  case R.id.Button01:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   text.append("1");   
   break;
   
   
  case R.id.Button02:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   text.append("2");   
   break;
   
   
  case R.id.Button03:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   text.append("3");   
   break;
   
   
   

  case R.id.Button04:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   text.append("4");   
   break;
   
   
   

  case R.id.Button05:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   
   text.append("5");   
   break;
   
   
   

  case R.id.Button06:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }   
   text.append("6");   
   break;
   
   
   
  case R.id.Button07:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   
   text.append("7");   
   break;
   
   
   

  case R.id.Button08:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }   
   text.append("8");   
   break;
   
   
   

  case R.id.Button09:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }
   
   text.append("9");   
   break;
   
   
   
  case R.id.Button0:
   if(flag1==1){
    text.setText("");
    flag1=0;
   }
   else if(flag3==1||flag3==2){
    text.setText("");
    flag3=0;
   }   
   text.append("0");   
   break;
   //------------숫자처리
   

  case R.id.ButtonP:
   if(flag3==1){
    text.setText("");
   }
   else{
    flag3=1;
    flag1=1;
    a=Double.parseDouble(text.getText().toString());
    
    if(flag2==0){
     result=plus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==1){
     result=minus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==2){
     result=mul(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }else if(flag2==3){
     result=div(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
   }//else end
   flag2 = 0;

   break;

  case R.id.ButtonM:
   if(flag3==1){
    text.setText("");
   }
   else{
    flag3=1;
    flag1=1;
    a=Double.parseDouble(text.getText().toString());
    
    if(flag2==0){
     result=plus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==1){
     result=minus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==2){
     result=mul(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }else if(flag2==3){
     result=div(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
   }//else end
      
   flag2 = 1;

   
   break;

  case R.id.ButtonX:
   if(flag3==1){
    text.setText("");
   }
   else{
    flag3=1;
    flag1=1;
    a=Double.parseDouble(text.getText().toString());
    
    if(flag2==0){
     result=plus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==1){
     result=minus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==2){
     result=mul(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }else if(flag2==3){
     result=div(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
   }//else end
      
   flag2 = 2;

   
   break;

  case R.id.ButtonNA:
   if(flag3==1){
    text.setText("");
   }
   else{
    flag3=1;
    flag1=1;
    a=Double.parseDouble(text.getText().toString());
    
    if(flag2==0){
     result=plus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==1){
     result=minus(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
    else if(flag2==2){
     result=mul(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }else if(flag2==3){
     result=div(tmp,a);
     tmp=result;
     text.setText(Double.toString(result));
    }
   }//else end
      
   flag2 = 3;

   
   break;

  case R.id.ButtonE:
   if(flag3==1||flag3==2){
    text.setText("");
   }
   
   else{
    flag3=2;
    b=Double.parseDouble(text.getText().toString());
    
    if(flag2==0){
     result=plus(result,b);
     tmp=0;
     text.setText(Double.toString(result));
     flag2=4;
    }
    else if(flag2==1){
     result=minus(result,b);
     tmp=0;
     text.setText(Double.toString(result));
     flag2=4;
    }
    else if(flag2==2){
     result=mul(result,b);
     tmp=0;
     text.setText(Double.toString(result));
     flag2=4;
    }
    else if(flag2==3){
     result=div(result,b);
     tmp=0;
     text.setText(Double.toString(result));
     flag2=4;
    }
    
    
   }
   
   flag1=1;
   
   
   break;   
   
   
  }//switch end
     
     
    }//onCreate
   


}//end

 


 

 

반응형

댓글