四则运算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. 细数垃圾邮箱客户端 Live Mail 的BUG

    以前用XP系统,里面自带的有outlook,使用中还行,不过bug也不少,常见的如 1.查找,邮件多了后,常常查找不到: 2.有时收件箱什么的突然空白,或部分邮件不见了(2G大小限制,超过了就不能做移 ...

  2. Apache Kafka系列(一) 起步

    Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka系列(三) Java API使用 Apache Kafka系列(四) 多线程 ...

  3. BZOJ4401:块的计数(乱搞)

    Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构——块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...

  4. AddHandler php5-script .php\AddType text/html .php和AddType application/x-httpd-php .php的区别?

    让apache支持php文件的解释,有2种方法配置,RPM装的默认配置是:AddHandler php5-script .phpAddType text/html .php网上很多人的配置方法是:Ad ...

  5. linux(centos 7) 下安装nodejs

    1,到node官网下载linux版本,有32和64位版本 2,将文件上传到linux下 3,使用tar -xvf node-v8.9.3-linux-x64.tar.xz 进行解压 4,建立软连接,变 ...

  6. 模糊查询SSD_DATA盘谁使用率高?

    select sum(bytes / 1024 / 1024 / 1024),       d.owner,       d.segment_name,       d.segment_type  f ...

  7. ap、map值计算

    ap:所有图片某一个类 map:所有图片所有类的ap的平均 以一个score为阈值,大于score的所有框是假定正确输出的所有预测,将这些框和gt匹配(iou大于某一个阈值认为匹配成功),得到当前sc ...

  8. mysql 批量修改字段方法

    一.正式环境操作注意事项: .关闭应用访问或者设置数据库只读 mysql设为只读方法: 开启只读: mysql> show global variables like "%read_o ...

  9. PAT A1007 Maximum Subsequence Sum (25 分)——最大子列和,动态规划

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  10. Foxmail添加gmail密码错误

    想在foxmail上添加gmail时一直报密码错误,找了一圈发现是开启了两步验证,需要用应用专用密码才可以登录,生成应用专用密码的地址如下: https://security.google.com/s ...