第三个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

原文地址:https://www.cnblogs.com/junkaiwang/p/5052548.html