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

  • 相关阅读:
    linux解释器、内建和外建命令
    linux文件cat/tac/more/less/head/tail/find/vimdiff
    zk和eureka的区别(CAP原则)
    Hystrix断路器中的服务熔断与服务降级
    windows 查看端口被占用,解除占用
    JS中操作JSON总结
    Ajax请求($.ajax()为例)中data属性传参数的形式
    通过 Ajax 发送 PUT、DELETE 请求的两种实现方式
    feignclient发送get请求,传递参数为对象
    Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录
  • 原文地址:https://www.cnblogs.com/junkaiwang/p/5052548.html
Copyright © 2020-2023  润新知