Android-計算機は二桁の加減乗除を実現します.
34002 ワード
注:下記の計算機は機能の実現だけを重視して、他のBUGを考慮しないで、2桁の整数の計算方法の演算だけあって、新米に適します.
1、思想を実現する
キーボードから得られた値を1つの文字列に置き、演算記号(+-/)を分割点として、2つの数値を分割してアルゴリズム演算を行います.*
2、難点
記号かどうかはどう判断しますか?+-×/記号の位置を記録しますか?
3、ステップ:
1、キーボード入力の値を得る2、1つの文字配列に値を格納する3、巡回配列の各数、アルゴリズム記号を見つけたら、アルゴリズム記号の位置を記録する.(要点、0から)4、アルゴリズム記号の前の数を一つの定義のint型数の中に入れて5、同理6、加減乗除のどちらの方法かを判断し、簡単な演算を行います.
4、コード
i:レイアウト:
1、思想を実現する
キーボードから得られた値を1つの文字列に置き、演算記号(+-/)を分割点として、2つの数値を分割してアルゴリズム演算を行います.*
2、難点
記号かどうかはどう判断しますか?+-×/記号の位置を記録しますか?
3、ステップ:
1、キーボード入力の値を得る2、1つの文字配列に値を格納する3、巡回配列の各数、アルゴリズム記号を見つけたら、アルゴリズム記号の位置を記録する.(要点、0から)4、アルゴリズム記号の前の数を一つの定義のint型数の中に入れて5、同理6、加減乗除のどちらの方法かを判断し、簡単な演算を行います.
4、コード
i:レイアウト:
<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; istr.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);
}
間違いを指摘することを歓迎します.ありがとうございます.