四则运算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. BZOJ 1345 序列问题 单调栈

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1345 题目大意: 对于一个给定的序列a1,…,an,我们对它进行一个操作reduce( ...

  2. 网络嗅探与欺骗(第一二部分)非平台——P201421410029

    中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告   实验二 网络嗅探与欺骗     学生姓名 李政浩 年级 2014 区 ...

  3. Node.js实战(三)之第一个Web服务器

    这次的示例同样也可以说是HelloWorld,只不过不同的是这是web服务器示例. (1)编写web.js,内容如下: var http = require("http") fun ...

  4. JAVA框架 Mybaits

     注意:我们在resultType中,对于selectlist方法也是projo类.resultType参数的含义是list的泛型的类型. 一:jar包下载: https://github.com/m ...

  5. Kafka设计解析(十九)Kafka consumer group位移重设

    转载自 huxihx,原文链接 Kafka consumer group位移重设 本文阐述如何使用Kafka自带的kafka-consumer-groups.sh脚本随意设置消费者组(consumer ...

  6. P2384 最短路

    题目背景 狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了...你能帮Bosh解决吗? 他会给你100000000000000000000000000000000000%10金币w ...

  7. C++ 怎么让静态变量只初始化一次

    童鞋们在学习C++的时候,往往只是按照书本上的原文去强行记忆各种特性,比方说,静态变量只初始化一次.你心中一定在默念:一定要记住,static只会初始化一次云云,希望自己能够记住.告诉你,你为什么总是 ...

  8. Centos7-kafka-2.12安装验证

    1.下载Kafka 官网:https://kafka.apache.org/ 2.安装脚本 #解压 tar zxf kafka_2.-.tgz -C /usr/local mv /usr/local/ ...

  9. 搭建HBase的本地模式、伪分布式、全分布式和HA模式

    一.安装HBase: 我这里选择的是hbase-1.3.1-bin.tar.gz版本解压HBase: tar -zxvf hbase-1.3.1-bin.tar.gz -C ~/training 配置 ...

  10. 2017-2018-2 20155203《网络对抗技术》Exp5 MSF基础应用

    1.实践过程记录 1.1一个主动攻击实践,如ms08_067; msf > search ms08_067_netapi //查看可以用的工具 [!] Module database cache ...