天天看點

結對項目 實踐三

一:題目簡介

該次實踐作業主要實作一個手機的簡單應用,電腦。可以在手機平台上實作,這裡模拟的安卓環境。

二:結對分工及過程

這次結對的同學是郭淑濤,主要是兩人确定了題目後,編寫代碼,之後在各自的電腦環境平台下進行運作,有問題互相交流,互相學習,也收獲很多。

三:代碼位址

https://github.com/githubmengqian/partner-project

四:測試情況

首先電腦需要有安卓的eclipse的軟體,配置好相應環境後,在平台上建項目,之後進行運作,這裡模拟的是安卓環境,這次使用的是bluestack,主要實作代碼為:

CalculatorActivity.java

import android.widget.EditText;

public class CalculatorActivity extends Activity implements OnClickListener{

EditText rsText = null; //顯示器

boolean isClear = false; //用于記錄依稀

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.calculator);

//fun 功能按鈕

rsText = (EditText)findViewById(R.id.rsText);

Button btnDel = (Button)findViewById(R.id.delete);

Button btnPlu = (Button)findViewById(R.id.plus);

Button btnMin = (Button)findViewById(R.id.minus);

Button btnMul = (Button)findViewById(R.id.multiply);

Button btnDiv = (Button)findViewById(R.id.division);

Button btnEqu = (Button)findViewById(R.id.equ);

Button btnTono = (Button)findViewById(R.id.tonone);

Button btnLeft = (Button)findViewById(R.id.left);

Button btnRight = (Button)findViewById(R.id.right);

//num 數字按鈕

Button num0 = (Button)findViewById(R.id.num0);

Button num1 = (Button)findViewById(R.id.num1);

Button num2 = (Button)findViewById(R.id.num2);

Button num3 = (Button)findViewById(R.id.num3);

Button num4 = (Button)findViewById(R.id.num4);

Button num5 = (Button)findViewById(R.id.num5);

Button num6 = (Button)findViewById(R.id.num6);

Button num7 = (Button)findViewById(R.id.num7);

Button num8 = (Button)findViewById(R.id.num8);

Button num9 = (Button)findViewById(R.id.num9);

Button dot = (Button)findViewById(R.id.dot);

//listener

btnTono.setOnClickListener(this);

btnLeft.setOnClickListener(this);

btnRight.setOnClickListener(this);

btnDel.setOnClickListener(this);

btnPlu.setOnClickListener(this);

btnMin.setOnClickListener(this);

btnMul.setOnClickListener(this);

btnDiv.setOnClickListener(this);

btnEqu.setOnClickListener(this);

num0.setOnClickListener(this);

num1.setOnClickListener(this);

num2.setOnClickListener(this);

num3.setOnClickListener(this);

num4.setOnClickListener(this);

num5.setOnClickListener(this);

num6.setOnClickListener(this);

num7.setOnClickListener(this);

num8.setOnClickListener(this);

num9.setOnClickListener(this);

dot.setOnClickListener(this);

}

public void onClick(View e) {

Button btn = (Button)e;

String exp = rsText.getText().toString();

if(isClear &&(

btn.getText().equals("0")

||btn.getText().equals("1")

||btn.getText().equals("2")

||btn.getText().equals("3")

||btn.getText().equals("4")

||btn.getText().equals("5")

||btn.getText().equals("6")

||btn.getText().equals("7")

||btn.getText().equals("8")

||btn.getText().equals("9")

||btn.getText().equals("."))

||btn.getText().equals("算數公式錯誤")){

rsText.setText("");

isClear = false;

if(btn.getText().equals("C")){

}else if(btn.getText().equals("清除")){

if(exp==null || exp.trim().length()==0)

return;

else

rsText.setText(exp.substring(0, exp.length()-1));

}else if(btn.getText().equals("=")){

exp = exp.replaceAll("×", "*");

exp = exp.replaceAll("÷", "/");

exp = getRs(exp);

if(exp.endsWith(".0")){

exp = exp.substring(0, exp.indexOf(".0"));

rsText.setText(exp);

}else{

rsText.setText(rsText.getText()+""+btn.getText());

//按鍵完成後始終保持光标在最後一位

rsText.setSelection(rsText.getText().length());

/***

* @param exp 算數表達式

* @return 根據表達式傳回結果

*/

private String getRs(String exp){

Interpreter bsh = new Interpreter();

Number result = null;

try {

exp = filterExp(exp);

result = (Number)bsh.eval(exp);

} catch (EvalError e) {

e.printStackTrace();

isClear = true;

return "算數公式錯誤";

}

return result.doubleValue()+"";

/**

* @return 因為計算過程中,全程需要有小數參與.

private String filterExp(String exp) {

String num[] = exp.split("");

String temp = null;

int begin=0,end=0;

for (int i = 1; i < num.length; i++) {

temp = num[i];

if(temp.matches("[+-/()*]")){

if(temp.equals(".")) continue;

end = i - 1;

temp = exp.substring(begin, end);

if(temp.trim().length() > 0 && temp.indexOf(".")<0)

num[i-1] = num[i-1]+".0";

begin = end + 1;

return Arrays.toString(num).replaceAll("[\\[\\], ]", "");

上述是該實踐的主代碼,具體運作截圖如下:

結對項目 實踐三

 之後進行運作,在bluestacks上進行運作:

結對項目 實踐三

當然可以實作簡單的數學運算。

五:問題及心得。

通過這次實踐,自己感覺到團隊的力量,和互相學習的重要性,未來會用更多注重團隊合作。也感覺到自己的不足,也很感謝自己的同伴,收獲很多,也找到許多不足,未來會用更多時間來豐富自己的知識面。最後附上一張合作時的照片:

結對項目 實踐三