第三个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
第三个spring冲刺总结(附团队贡献分)的更多相关文章
- 第一个spring冲刺总结及后诸葛亮报告(附团队贡献分)
		
眨眼就完结了第一阶段的冲刺了,之前因为学校停电停水等诸多原因而导致冲刺完毕时间的推迟. 第一阶段总体是做到了运算的功能,只是一些基本的功能实现,但能保证的容错性能较高. 1.在普遍的四则运算中都能见到 ...
 - 第一个spring冲刺团队贡献分(80分满分)
		
团队贡献分(80分满分): 李泳江 24 叶煜稳 26 谢洪跃 18 周伟雄 12
 - 第一个Sprint冲刺总结(事后诸葛亮及团队贡献分)
		
第一个Sprint冲刺总结(事后诸葛亮及团队贡献分) 组员:欧其锋 廖焯燊 林海信 何武鹏 第一阶段的最终燃尽图如下: 2.事后诸葛亮: 3.团队贡献分: 欧其锋:22 林海信:21 何武鹏:19 ...
 - [课程设计]Sprint Three 回顾与总结&发表评论&团队贡献分
		
Sprint Three 回顾与总结&发表评论&团队贡献分 ● 一.回顾与总结 (1)回顾 燃尽图: Sprint计划-流程图: milestones完成情况如下: (2)总结 本次冲 ...
 - [课程设计]Sprint One 总结&发表评论&团队贡献分
		
一.总结 第一次冲刺结束了,总体来说我们团队还是做得不错的,完成了既定的目标,希望接下来还能保持这样的动力,fighting... ● 二.围观其他组并发表评论 ● http://www.cnblog ...
 - Sprint 3 回顾与总结  和团队贡献分  以及Sprint 1、2、3 总概
		
团队情况: 团队名称:Heaven Fire 团队博客地址:https://home.cnblogs.com/u/gjpg/ 团队Github地址:ht ...
 - [课程设计]Sprint Two 回顾与总结&发表评论&团队贡献分
		
[课程设计]Sprint Two 回顾与总结&发表评论&团队贡献分 ● 一.回顾与总结 (1)回顾 燃尽图: Sprint计划-流程图: milestones完成情况如下: (2)总结 ...
 - Sprint Three 回顾与总结&发表评论&团队贡献分
		
● 一.回顾与总结 (1)回顾 燃尽图: Sprint计划-流程图: milestones完成情况如下: (2)总结 从sprint one到three,我们团队配合十分默契,互相帮助,虽然遇到了不少 ...
 - 【软件工程-Teamwork 3】团队角色分配和团队贡献分分配规则
		
Part 1 团队角色分配 1.人员分配概要: Project Manager:1名 / Developer:4名 / Test: 1名 2.具体人员分配及职责: Project Manager(PM ...
 
随机推荐
- JavaScript中遍历数组和对象的方法
			
js数组遍历和对象遍历 针对js各种遍历作一个总结分析,从类型用处,分析数组和对象各种遍历使用场景,优缺点等 JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3 ...
 - postgresql中uuid的使用
			
本文总共介绍两种方法 : 1.使用create extension命令 create extension "uuid-ossp" 安装扩展成功以后,就可以通过uuid_genera ...
 - 深入探究JFreeChart
			
1 简介 JFreeChart 是 SourceForge.net 上的一个开源项目,它的源码和 API 都可以免费获得. JFreeChart 的功能非常强大,可以实现饼图 ( 二维和三维 ) , ...
 - 网络流(四)dinic算法
			
传送门: 网络流(一)基础知识篇 网络流(二)最大流的增广路算法 网络流(三)最大流最小割定理 网络流(四)dinic算法 网络流(五)有上下限的最大流 网络流(六)最小费用最大流问题 转自:http ...
 - Django templates 模板的语法
			
MVC 以及 MTV MVC: M : model -->> 存取数据(模型) V: view -->> 信息的展示(视图) C: controller -->> ...
 - Swift开发实例:苹果Swift编程语言新手教程中文版+FlappyBird,2048游戏源代码
			
源代码: 用IOS Swift语言实现的Flappy Bird源代码:http://download.csdn.net/detail/estellise/7449547 用IOS Swift实现的游戏 ...
 - 转://Oracle 11gR2 ASM磁盘组管理
			
一.环境.[grid@rhel2 ~]$ cat /etc/issueRed Hat Enterprise Linux Server release 5.5 (Tikanga) Kernel \r o ...
 - chm文件转换成html文件,解决chm文件无法使用浏览器打开的问题
			
每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code CHM是英语“Compiled Help Manual”的简写,即“已编译的帮助文件”.CHM ...
 - 关于pyquery小知识点
			
#表示的是取html中的id元素, . 表示的是取html中的class元素. 如果是标签,就直接用标签名 而它们之间的空格,则表示嵌套关系 单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪 ...
 - 工具 Sublime日志染色
			
工欲善其事,必先利其器. Preferences -> Browse Packages...