1. 程式人生 > 程式設計 >android計算器實現兩位數的加減乘除

android計算器實現兩位數的加減乘除

本文例項為大家分享了android計算器實現加減乘除的具體程式碼,供大家參考,具體內容如下

注:以下計算器只注重實現功能,不考慮其他BUG,只有兩位整數的演算法運算,適合新手

1、實現思想

將從鍵盤得到的數值放在一個字元陣列中,以運算子號(+-/)為分割點,將兩個數值分割開,進行演算法運算。*

2、難點

如何判斷是否為符號?+ - ×/
記錄符號的位置?

3、步驟:

1、得到鍵盤輸入的值
2、將值存放在一個字元陣列中
3、遍歷陣列中的每個數,如果找到演算法符號,記錄下演算法符號的位置。(要點,從0開始)
4、將演算法符號前面的數放在一個定義的int型數中
5、同理
6、判斷是加減乘除的哪一個方法,然後進行簡單的運算。

4、程式碼

i:佈局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 android:weightSum="1"
 >

 <TextView android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/etResult"
  android:layout_weight="0.05"
  android:textSize="25dp"
  android:paddingTop="10dp"
  android:gravity="bottom"
  android:hint="0.0"
  />
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 android:layout_weight="0.8">
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  android:weightSum="1">

  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="C"
  android:textSize="25dp"
  android:background="@color/colorWhite"
  android:id="@+id/btnQingchu"
  android:layout_weight="0.5" />
  <Button
  android:layout_width="235dp"
  android:layout_height="wrap_content"
  android:text="←"
  android:textSize="25dp"
  android:background="@color/colorBlue"
  android:id="@+id/btnHuishan"
  android:layout_weight="0.5"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn7"
  android:text="7"
  android:textSize="25dp"
  android:layout_weight="0.25"
  />
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn8"
  android:text="8"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn9"
  android:text="9"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnChu"
  android:text="÷"
  android:textSize="25dp"
  android:background="@color/colorBlue"
  android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn4"
  android:text="4"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn5"
  android:text="5"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn6"
  android:text="6"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnCheng"
  android:text="×"
  android:textSize="25dp"
  android:background="@color/colorBlue"
  android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn1"
  android:text="1"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn2"
  android:text="2"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn3"
  android:text="3"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnJian"
  android:text="-"
  android:textSize="25dp"
  android:background="@color/colorBlue"
  android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btn0"
  android:text="0"
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnDian"
  android:text="."
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnDengyu"
  android:text="="
  android:textSize="25dp"
  android:layout_weight="0.25"/>
  <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/btnJia"
  android:text="+"
  android:textSize="25dp"
  android:background="@color/colorBlue"
  android:layout_weight="0.25"/>
 </LinearLayout>
 </LinearLayout>
</LinearLayout>

ii:獲取鍵盤的值,寫監聽

public void getButton(){
 //獲取按鈕元件
 btn0= (Button) findViewById(R.id.btn0);
 btn1= (Button) findViewById(R.id.btn1);
 btn2= (Button) findViewById(R.id.btn2);
 btn3= (Button) findViewById(R.id.btn3);
 btn4= (Button) findViewById(R.id.btn4);
 btn5= (Button) findViewById(R.id.btn5);
 btn6= (Button) findViewById(R.id.btn6);
 btn7= (Button) findViewById(R.id.btn7);
 btn8= (Button) findViewById(R.id.btn8);
 btn9= (Button) findViewById(R.id.btn9);

 btnJia= (Button) findViewById(R.id.btnJia);
 btnJian= (Button) findViewById(R.id.btnJian);
 btnCheng= (Button) findViewById(R.id.btnCheng);
 btnChu= (Button) findViewById(R.id.btnChu);

 btnDian= (Button) findViewById(R.id.btnDian);
 btnDengyu= (Button) findViewById(R.id.btnDengyu);
 btnQingchu= (Button) findViewById(R.id.btnQingchu);
 btnHuishan= (Button) findViewById(R.id.btnHuishan);

 etGet = (TextView) findViewById(R.id.etResult);
 //繫結監聽
 btn0.setOnClickListener(this);
 btn1.setOnClickListener(this);
 btn2.setOnClickListener(this);
 btn3.setOnClickListener(this);
 btn4.setOnClickListener(this);
 btn5.setOnClickListener(this);
 btn6.setOnClickListener(this);
 btn7.setOnClickListener(this);
 btn8.setOnClickListener(this);
 btn9.setOnClickListener(this);

 btnJia.setOnClickListener(this);
 btnJian.setOnClickListener(this);
 btnCheng.setOnClickListener(this);
 btnChu.setOnClickListener(this);

 btnDian.setOnClickListener(this);
 btnDengyu.setOnClickListener(this);
 btnQingchu.setOnClickListener(this);
 btnHuishan.setOnClickListener(this);
 }

iii:繫結按鈕

 @Override
 public void onClick(View v) {
 str = etGet.getText().toString();
 switch (v.getId()){
  //數字按鈕
  case R.id.btn0:
  case R.id.btn1:
  case R.id.btn2:
  case R.id.btn3:
  case R.id.btn4:
  case R.id.btn5:
  case R.id.btn6:
  case R.id.btn7:
  case R.id.btn8:
  case R.id.btn9:
  /* if (b_Clean)
  {
   b_Clean =false;
   etGet.setText("");
  }*/
  etGet.setText(str+((Button)v).getText());
  break;
  //運算按鈕
  case R.id.btnJia:
  case R.id.btnJian:
  case R.id.btnCheng:
  case R.id.btnChu:
  case R.id.btnDian:
  /* if (b_Clean)
  {
   b_Clean =false;
   etGet.setText("");
  }*/
  etGet.setText(str+((Button)v).getText());
  break;
  //清除按鈕
  case R.id.btnQingchu:
  /* if (b_Clean)
  {
   b_Clean =false;
   etGet.setText("");
  }*/
  etGet.setText("");
  break;
  case R.id.btnDengyu:
  getResult();
  break;
  case R.id.btnHuishan:
  str=etGet.getText().toString();
  try {
   etGet.setText(str.substring(0,str.length()-1));
  }
  catch (Exception e){
   etGet.setText("");
  }

  break;

 }
 }

iV:演算法功能實現

public void getResult(){
 str = etGet.getText().toString();
 strArray = new String[str.length()]; //將得到的字串放在一個字元數組裡
 //System.out.println("str"+str);
 int n=0;
 for(int i=0; i<strArray.length;i++){
  strArray[i] = str.substring(i,i+1); //遍歷陣列的每個元素
  //System.out.print(strArray[i]);
  if(strArray[i].equals("+")||strArray[i].equals("-") //滿足條件
   ||strArray[i].equals("×")||strArray[i].equals("÷"))
  {
  n= i; //記錄符號存在的位置
  }
 }
 int num1 = Integer.parseInt(str.substring(0,n)); //得到前一串數
 String caculate = str.substring(n,n+1); //得到演算法符號,加減乘除
 int num2 = Integer.parseInt(str.substring(n+1)); //得到後一串數

 if (caculate.equals("+"))
 {
  Inputresult = num1+num2;
 }
 else if (caculate.equals("-"))
 {
  Inputresult = num1-num2;
 }
 else if (caculate.equals("×"))
 {
  Inputresult = num1*num2;
 }
 else if (caculate.equals("÷"))
 {
  if (num2==0)
  {
  return ;
  }
  Inputresult = num1/num2;
 }
 etGet.setText(num1+caculate+num2+"="+Inputresult);
 }

更多計算器功能實現,請點選專題: 計算器功能彙總 進行學習

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。