第三个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 ...
随机推荐
- DevExpress gridcontrol gridView主从表折叠/展开显示
在使用报表的时候,有很多需要主从表一起显示,从表不需要另外弹窗显示明细,反而直接显示在主表下方.如图所示: 第一次做这个功能,主从表显示,从表列隐藏,从表单元格点击事件这三个功能点花费了很多时间,在网 ...
- Web自动化
# -*- coding:utf-8 -*- ''' Created on Oct 17, 2018 @author: SaShuangYiBing Comment: ''' from seleniu ...
- django 中的 ajax
(Asynchronous Javascript And XML ) 特点: 异步 页面局部刷新 传递的数据量小 ajax 请求返回数据 重定向 location.href='/index/' 发请求 ...
- 让你提前认识软件开发(31):数据库脚本中的begin与end
版权声明:本文为博主原创文章.对文章内容有不论什么意见或建议,欢迎与作者单独交流.作者QQ(微信):245924426. https://blog.csdn.net/zhouzxi/article/d ...
- centos7下安装docker(11容器操作总结)
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...
- ubuntu 16.04 SS安装及配置
安装SS客户端 安装pip3 一般情况下,pip3安装的版本比pip安装的新,pip安装的版本比apt安装的新,这里选择最新版本. sudo apt install python3-pip 安装SS ...
- js MD5加密处理
关于MD5: MD5.js是通过前台js加密的方式对用户信息,密码等私密信息进行加密处理的工具,也可称为插件. 在本案例中 可以看到MD5共有6种加密方法: 1, hex_md5(value) 2, ...
- 我是怎样和Linux系统结缘并通过红帽RHCE认证的
我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#.C++之类的?大约在大 ...
- Fedora安装Snapd和Snap软件包
导读 Snappy包管理器是一个跨发行版的包管理器.它最初是为Ubuntu系统构建的,但现在其他主要的Linux发行版( Fedora, Linux Mint, RHEL, OpenSUSE,Arch ...
- 2018-2019-2 20175105王鑫浩 实验二《Java面向对象程序设计》实验报告
一.实验步骤 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装,继承,多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 二.实验内容 (一).单元测试 1 ...