四则运算APP最后阶段

【开发环境】:eclipse

【开发项目】:小学生四则运算APP

【开发人员】:郑胜斌 http://www.cnblogs.com/zsb1/

孔德颖 http://www.cnblogs.com/kong21/

李豌湄 http://www.cnblogs.com/leewanmei/

江丹仪 http://www.cnblogs.com/JDY64/

【Github】:https://github.com/zhengshengbin/sizeyunsuan

在最后阶段中,我们对APP出题部分进行修改,例如把*号改为×,/号改为÷,这样会跟加直观。另外在初级的出题上也进行了修改,不会出现很难解答的题目。然后在提交答案后,我们对提交答案部分进行了判断,若提交的答案是错的,就会显示红色。修改的代码和截图如下:

  

package com.de.sizhe;

import java.math.RoundingMode;
import java.text.DecimalFormat;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent; public class ChujiActivity extends Activity { private TableLayout tableLayout;
private TextView tv1;
private Button b1;
private int count=0;
private int t=0;
static DecimalFormat decimal = new DecimalFormat("#.##"); private Handler handler=new Handler();
private Runnable runnable=new Runnable() { @Override
public void run() {
// TODO Auto-generated method stub
++t;
tv1.setText("时间:"+String.valueOf(t));
handler.postDelayed(runnable, 1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tgaoji);
handler.postDelayed(runnable, 1000); final Intent intent1=new Intent(ChujiActivity.this,TDeFenActivity.class);
tableLayout=(TableLayout) findViewById(R.id.GTab);
b1=(Button) findViewById(R.id.b1);
tv1=(TextView) findViewById(R.id.shijian); Intent intent=getIntent();
Bundle bundle=intent.getExtras();
count=bundle.getInt("tishu");//获取题目数量 String str1 = new String(); //题目
final String s[] = new String[count]; //题目数组
final String[] str=new String[count]; //用户输入的答案数组
final String[] bjanswer = new String[count];// 标准答案
int[] num1 = new int[4]; //计算的各个数值 final EditText[] answer=new EditText[count];
TextView[] show=new TextView[count]; for(int i=0;i<count;i++)
{
int n=2;//4个操作数
char[] op = { '+', '-', '×', '÷' };
int[] no = new int[4];
int cs;// 正负参数 TableRow tableRow=new TableRow(this);
show[i]=new TextView(this);
answer[i]=new EditText(this); tableRow.addView(show[i]);
tableRow.addView(answer[i]); for (int j = 0; j < n; j++)
{
cs = (int) (Math.random() * 2);
if (cs == 0)// 负数
num1[j] = -(int) (Math.random() * 10);// 控制随机数数值
else// 正数
num1[j] = (int) (Math.random() * 10);// 控制随机数数值
} for (int k = 0; k < n - 1; k++)
{
no[k] = (int) (Math.random() * 4);// 随机产生操作符
if (no[k] == 3 && num1[k + 1] == 0)
{
do {
num1[k + 1] = (int) (Math.random() * 100);// 如果除号后为0,则重新取数。
} while (num1[k + 1] == 0);
}
} for (int h = 0; h < n; h++)
{
if (h != n - 1)
{
if (num1[h] < 0)
str1 = str1 +" (" + String.valueOf(num1[h])+")" + String.valueOf(op[no[h]]);
else
str1 = str1 +" "+ String.valueOf(num1[h])+ String.valueOf(op[no[h]]);
}
else
{
if (num1[h] < 0)
str1 = str1 +" (" + String.valueOf(num1[h]) +")=";
else
str1 = str1+" " + String.valueOf(num1[h]) + "=";
}
}
s[i] = str1;
str1 = new String(); // 计算标准答案
int sign; // 累加运算时的符号
float left, right;// 保存蹭结果
decimal.setRoundingMode(RoundingMode.HALF_UP);
left = 0;
right = num1[0];
sign = 1; for (int g = 0; g < n - 1; g++)
{
switch (op[no[g]])
{
case '+':
left = left + sign * right;
sign = 1;
right = num1[g + 1];
break;
case '-':
left = left + sign * right;
sign = -1;
right = num1[g + 1];
break;
case '×':
right = right * num1[g + 1];
break;
case '÷':
right = right / num1[g + 1];
break;
}
}
bjanswer[i] = String.valueOf(decimal.format(left + sign * right)); show[i].setText(s[i]);
show[i].setTextSize(18);
answer[i].setEms(5);
answer[i].setId(i);
tableLayout.addView(tableRow);
}
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<count;i++)
{
str[i]=answer[i].getText().toString(); //用户输入的答案数组
}
Bundle bundle=new Bundle();
bundle.putStringArray("timu", s);
bundle.putStringArray("useranswer", str);
bundle.putStringArray("bjanswer", bjanswer);
bundle.putInt("Ttishu", count);
bundle.putString("shijian", String.valueOf(t));
intent1.putExtras(bundle);
startActivity(intent1);
handler.removeCallbacks(runnable);
finish();
}
});
} }

chujiActivity

package com.de.sizhe;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView; public class TDeFenActivity extends Activity { private Button cxbtn,tcbtn;
private TableLayout dtab1;
private TextView textView;
private int count=0;
private String sj=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tde_fen);
dtab1=(TableLayout) findViewById(R.id.DTab1);
cxbtn=(Button) findViewById(R.id.chongxin);
tcbtn=(Button) findViewById(R.id.tuichu);
textView=(TextView) findViewById(R.id.showtime); Intent intent=getIntent();
Bundle bundle=intent.getExtras();
count=bundle.getInt("Ttishu"); String[] sty=new String[count];
String[] stb=new String[count];
String[] stimu=new String[count]; sty=bundle.getStringArray("useranswer");
stb=bundle.getStringArray("bjanswer");
sj=bundle.getString("shijian");
stimu=bundle.getStringArray("timu"); textView.setText("完成时间为:"+sj+"s");
int tn=(count+1)*3;
TextView[] Tshow=new TextView[tn]; TableRow tableRow=new TableRow(this);
Tshow[0]=new TextView(this);
Tshow[1]=new TextView(this);
Tshow[2]=new TextView(this);
Tshow[0].setText(" 题目");
Tshow[1].setText(" 你的答案");
Tshow[2].setText(" 正确答案");
tableRow.addView(Tshow[0]);
tableRow.addView(Tshow[1]);
tableRow.addView(Tshow[2]);
dtab1.addView(tableRow);
for(int i=0;i<count;i++)
{
TableRow tableRow1=new TableRow(this);
Tshow[(i+1)*3]=new TextView(this);
Tshow[(i+1)*3+1]=new TextView(this);
Tshow[(i+1)*3+2]=new TextView(this);
tableRow1.addView(Tshow[(i+1)*3]);
tableRow1.addView(Tshow[(i+1)*3+1]);
tableRow1.addView(Tshow[(i+1)*3+2]); if(sty[i].equals(stb[i]))
{
Tshow[(i+1)*3].setText(stimu[i]);
Tshow[(i+1)*3+1].setText(sty[i]);
Tshow[(i+1)*3+1].setGravity(Gravity.RIGHT);
Tshow[(i+1)*3+2].setText(stb[i]);
Tshow[(i+1)*3+2].setGravity(Gravity.RIGHT);
}
else
{
Tshow[(i+1)*3].setText(stimu[i]);
Tshow[(i+1)*3+1].setText(sty[i]);
Tshow[(i+1)*3+1].setGravity(Gravity.RIGHT);
Tshow[(i+1)*3+1].setTextColor(Color.RED);
Tshow[(i+1)*3+2].setText(stb[i]);
Tshow[(i+1)*3+2].setGravity(Gravity.RIGHT);
}
dtab1.addView(tableRow1);
} cxbtn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(TDeFenActivity.this,TixingActivity.class);
startActivity(intent);
finish();
}
}); tcbtn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
}
}); } }

TDeFenActivity

四则运算APP最后阶段的更多相关文章

  1. 小学四则运算APP 最后阶段

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 这次发布的是我们APP的最终版本!图片背景有根据用户需求改变!还增加了草稿纸运算的画布功能! 运行结果如下: package com.ex ...

  2. 四则运算app工程的进展

    深入分析五个四则运算app: 1.ALM-Addition 缺点:版本是英文版,不利于孩子们弄懂.  用选择题的方法来选择正确的答案,固然有运气答对的成分,不利于统计真实的水平. 优点:有图标统计答题 ...

  3. 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)

    <软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...

  4. 小学四则运算APP 第三阶段冲刺-第一天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第三次冲刺阶段时间:12.12~12.19 本次发布的是音乐播放功能,可以根据用户需求一边播放音乐一边做题,也拥有暂停播放音乐的功能,增强 ...

  5. 小学四则运算APP 第二阶段冲刺-第五天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是判断题代码,已经实现部分功能,,但是美中不足的是判断错误 panduanset.j ...

  6. 小学四则运算APP 第二次冲刺 第四天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是合并后的选择题功能界面的设置: ChoiceSet.java: package c ...

  7. 小学四则运算APP 第二阶段冲刺-第三天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是判断题的部分代码 panduanset.java import com.examp ...

  8. 小学四则运算APP 第二次冲刺-第二天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的判断题功能界面的设置: activity_panduan_set.xml: < ...

  9. 小学四则运算APP 第二个冲刺 第一天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是已完成的功能二(选择题): ChoiceActivity.java: packag ...

随机推荐

  1. Vue.js实现前段评论展示

    本来想着给这个博客弄个回复系统(类似知乎的回复),最初的实现思路是这样的:主评论后台渲染,前台新增的评论,回复用jquery操作dom放到页面上.实现的时候感觉好复杂,大量的dom操作,目前前段框架不 ...

  2. 10行代码爬取全国所有A股/港股/新三板上市公司信息

    摘要: 我们平常在浏览网页中会遇到一些表格型的数据信息,除了表格本身体现的内容以外,可能还想透过表格背后再挖掘些有意思或者有价值的信息.这时,可用python爬虫来实现.本文采用pandas库中的re ...

  3. BZOJ3879:SvT(后缀数组,单调栈,ST表)

    Description (我并不想告诉你题目名字是什么鬼) 有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n]. 现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始 ...

  4. Java POI单元格使用心得

    1: /** * Created by liuguangxin on 2018/5/16. * <p> * MergeRegion:表示excel中cell的信息,startRow与end ...

  5. 不要以为字段以transient修饰的话就一定不会被序列化

    1: 先阅读这边文章:http://www.importnew.com/21517.html 2:被transient修饰真的会被序列化吗? 反例:java.util.ArrayList中底层存储数组 ...

  6. leetcode62—Unique Paths

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  7. JAVA框架 Spring 约束配置本地资源

    一:粘贴约束url:http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.or ...

  8. MySQL(六)创建用户与授权

    转载自:MySQL创建用户与授权 目录 一.创建用户 二.授权 三.设置和更改用户密码 四.撤销用户权限 五.删除用户 一.创建用户 命令: CREATE USER 'username'@'host' ...

  9. jqgrid 配置分页大小及下拉项

    如何配置分页大小的下拉项?显示效果如下: 通过 rowNum 来设置默认分页大小 通过 rowList 来设置分页下拉.   rowList 的值为一个数组,比如:[10,20,30] $(" ...

  10. WebHook之PHP实践@coding.net

    次写完代码, 打开FileZilla, 把写好的文件上传到vps上, 久而久之觉得腻烦, 寻思有没有更geek的方法, 便有此文. WebHook是跟随着Git而兴起的技术, 当你push到服务器的时 ...