第三個spring沖刺總結(附團隊貢獻分)


基於調查需求下完成的四則運算,我們完成了主要的3大功能。

第一,普通的填空題運算,這個是傳統的運算練習方式,團隊都認為這個選項是必要的,好的傳統要留下來,在個人經歷中,填空練習是一個不錯的選擇。

第二,選擇題的運算,選擇題是另一個特別的傳統練習方式,選擇題可以調轉運算者的思維方式,不一定要按部就班運算,例如某些答案可以帶入而得出結果。

第三,我們設立了一個提高測試的選項,里面有時間限制的填空題運算,好處是在做慣普通填空題的人可以在自己設立的時間限制下,看看能完成多少道題目,提高每次的效率,從而更好的提高運算能力。

整體燃盡圖:

 

本次實驗中團隊的分工完成如下:

王俊凱:主要對選擇題運算項目的編寫。

核心代碼:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xuanzeti_layout);
        ActionBar actionBar = getActionBar();//獲取ActionBar對象
        actionBar.setDisplayShowHomeEnabled(true);//顯示應用程序圖標
        actionBar.setDisplayHomeAsUpEnabled(true);//將應用程序圖標轉變為可點擊圖標,並添加一個返回箭頭
        btn_next = (Button) findViewById(R.id.buttonnext);
        btn_next.setOnClickListener(this);
        btn_FN = (Button) findViewById(R.id.buttonfinishe);
        btn_FN.setOnClickListener(this);
        textView = (TextView) findViewById(R.id.textViewtimu);
        textViewtip = (TextView) findViewById(R.id.textViewtip);
        btnA = (Button) findViewById(R.id.buttonA);
        btnA.setOnClickListener(this);
        btnB = (Button) findViewById(R.id.buttonB);
        btnB.setOnClickListener(this);
        btnC = (Button) findViewById(R.id.buttonC);
        btnC.setOnClickListener(this);
        btnD = (Button) findViewById(R.id.buttonD);
        btnD.setOnClickListener(this);
        CreatCal();

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.buttonA:
            if(datiflag==true){textViewtip.setText("你已答過此題!!");break;}datiflag=true;
            if (Integer.parseInt(this.btnA.getText().toString().substring(2)) == trueResult) {
                textViewtip.setText("選擇正確!");
                counter++;
                all++;
            } else {
                textViewtip.setText("選擇錯誤!");
                all++;
            }
            break;
        case R.id.buttonB:
            if(datiflag==true){textViewtip.setText("你已答過此題!!");break;}datiflag=true;
            if (Integer.parseInt(this.btnB.getText().toString().substring(2)) == trueResult) {
                textViewtip.setText("選擇正確!");
                counter++;
                all++;
            } else {
                textViewtip.setText("選擇錯誤!");
                all++;
            }
            break;
        case R.id.buttonC:
            if(datiflag==true){textViewtip.setText("你已答過此題!!");break;}datiflag=true;
            if (Integer.parseInt(this.btnC.getText().toString().substring(2)) == trueResult) {
                textViewtip.setText("選擇正確!");
                counter++;
                all++;
            } else {
                textViewtip.setText("選擇錯誤!");
                all++;
            }
            break;
        case R.id.buttonD:
            if(datiflag==true){textViewtip.setText("你已答過此題!!");break;}
            datiflag=true;
            if (Integer.parseInt(this.btnD.getText().toString().substring(2)) == trueResult) {
                textViewtip.setText("選擇正確!");
                counter++;
                all++;
            } else {
                textViewtip.setText("選擇錯誤!");
                all++;
            }
            break;
        case R.id.buttonnext:
            CreatCal();
            break;
        case R.id.buttonfinishe:
            textViewtip.setText("你一共答了" + all + "題,對了"+counter+"題");// +",正確率為:"
            Toast.makeText(this, "答題結束!", Toast.LENGTH_LONG).show();
            break;

        }
    }

    public int CreatCal() {
        datiflag=false;
        int i1, i2;
        char[] h = { '+', '-', 'x', '÷' };
        i1 = (int) (Math.random() * 3);
        i2 = (int) (Math.random() * 4);
        num1 = (int) (Math.random() * 100 + 1);

        num3 = (int) (Math.random() * 100 + 1);
        if (i2 == 3)
            num2 = (int) (Math.random() * 10 + 1) * num3;
        else
            num2 = (int) (Math.random() * 100 + 1);
        textView.setText(num1 + "" + h[i1] + "" + num2 + h[i2] + num3 + "=");
        trueResult = core.Cal(i1, i2, num1, num2, num3);

        rand = (int) (Math.random() * 3);
        switch (rand) {
        case 0:
            btnA.setText("A." + trueResult);
            btnB.setText("B." + (trueResult + 10));
            btnC.setText("C." + (trueResult + 20));
            btnD.setText("D." + (trueResult + 30));
            break;
        case 1:
            btnA.setText("A." + (trueResult - 10));
            btnB.setText("B." + trueResult);
            btnC.setText("C." + (trueResult + 10));
            btnD.setText("D." + (trueResult + 20));
            break;
        case 2:

            btnA.setText("A." + (trueResult - 20));
            btnB.setText("B." + (trueResult - 10));
            btnC.setText("C." + trueResult);
            btnD.setText("D." + (trueResult + 10));
            break;
        case 3:
            btnA.setText("A." + (trueResult - 30));
            btnB.setText("B." + (trueResult - 20));
            btnC.setText("C." + (trueResult - 10));
            btnD.setText("D." + this.CreatCal());
            break;
        }
        return trueResult;
    }

 

王逸輝:主要對計時練習運算項目的編寫。

核心代碼:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.jishi_layout);
        btn_next = (Button) findViewById(R.id.b2);
        btn_next.setOnClickListener(this);
        btn_PD = (Button) findViewById(R.id.button1);
        btn_PD.setOnClickListener(this);
        text = (EditText) findViewById(R.id.editText1);
        textView = (TextView) findViewById(R.id.textView2);
        textViewtip = (TextView) findViewById(R.id.textView5);
        ActionBar actionBar = getActionBar();//獲取ActionBar對象
        actionBar.setDisplayShowHomeEnabled(true);//顯示應用程序圖標
        actionBar.setDisplayHomeAsUpEnabled(true);//將應用程序圖標轉變為可點擊圖標,並添加一個返回箭頭

        CreatCal();
        final Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer);

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

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

        Button btnRest = (Button) findViewById(R.id.btnReset);

        final EditText edtSetTime = (EditText) findViewById(R.id.edt_settime);

        btnStart.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                System.out.println("--開始記時---");
                String ss = edtSetTime.getText().toString();
                if (!(ss.equals("") && ss != null)) {
                    startTime = Integer.parseInt(edtSetTime.getText()
                            .toString());
                }
                // 設置開始講時時間
                chronometer.setBase(SystemClock.elapsedRealtime());
                // 開始記時
                chronometer.start();

            }
        });

        btnStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 停止
                chronometer.stop();
            }

        });

        // 重置
        btnRest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chronometer.setBase(SystemClock.elapsedRealtime());
                a = b = c = 0;
            }

        });
        chronometer
                .setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
                    @Override
                    public void onChronometerTick(Chronometer chronometer) {
                        // 如果開始計時到現在超過了startime秒
                        if (SystemClock.elapsedRealtime()
                                - chronometer.getBase() > startTime * 1000) {
                            chronometer.stop();
                            // 給用戶提示
                            showDialog();
                        }
                    }
                });
    }

    protected void showDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        // builder.setIcon(R.drawable.eb28d25);
        builder.setTitle("警告")
                .setMessage("時間到,完成題目個數為" + c + "正確題目個數為" + a + "錯誤題目個數為" + b)
                .setPositiveButton("確定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    }
                });

        AlertDialog dialog = builder.create();
        dialog.show();
    }

 

羅凱傑丶馬志磊:主要對填空題運算項目的編寫,整體布局的制作和BUG的提出與修正。

核心代碼:布局那些代碼太多了,而且分散,這里就不作介紹了...

public void CreatCal() {
        int i1, i2;
        char[] h = { '+', '-', 'x', '÷' };
        i1 = (int) (Math.random() * 3);
        i2 = (int) (Math.random() * 4);
        num1 = (int) (Math.random() * 100 + 1);
    
        num3 = (int) (Math.random() * 100 + 1);
        if(i2==3)
            num2 = (int) (Math.random() * 10 + 1)*num3;  
        else
            num2 = (int) (Math.random() * 100 + 1);  
        textView.setText(num1 + "" + h[i1] + "" + num2 + h[i2] + num3 + "=");
        trueResult = core.Cal(i1, i2, num1, num2, num3);
        // trueResult=core.Add(i1,i2,num1,num2,num3);
        /*
         * switch (i1) { case 0: trueResult=core.Add(num1, num2);
         * 
         * break; case 1: trueResult=core.Subtraction(num1, num2); break; case
         * 2: trueResult=core.multiplication(num1, num2); break; case 3:
         * trueResult=core.Division(num1, num2); break; }
         */
    }

    public void checkout(int trueResult) {
        String test = text.getText().toString();
        if (test != null && test.length() > 0) {
            result = Integer.parseInt(this.text.getText().toString());
            if (result == trueResult) {
                this.textViewtip.setText("答案正確!");
            } else {
                this.textViewtip.setText("錯誤,正確答案是:" + this.trueResult);
            }

            // 處理代碼
        } else { // 可以彈出警告
            Toast.makeText(this, "輸入不能為空!", Toast.LENGTH_LONG).show();
        }

    }

 

每個人都有做出自己的工作量,有不懂和不適宜的地方,我們都會開會進行討論,互相幫助完成項目。

第三階段貢獻分:

王俊凱  30

王逸輝  30

羅凱傑  20

馬志磊  20

以下是我們程序的主要界面及應用:

 

 

完成軟件后,我們在推廣方面也下了不少功夫,比如在某些社交網站上上傳我們的軟件推介,向一些有需求的用戶推介,在之前作調查的用戶中也有期待我們結果的用戶,我們也給他們發送軟件下載,希望他們用了好評后推廣出去。

推廣鏈接:http://pan.baidu.com/s/1sjSvnKp

 我們團隊存放代碼的GITHUB的地址https://github.com/masion


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM