四则运算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. 利用gulp 插件gulp.spritesmith 完成小图合成精灵图,并自动输出样式文件

    安装依赖 yarn add gulp yarn add gulp.spritesmith 本次依赖的版本是: "gulp": "^3.9.1" "gu ...

  2. python第三十二课——队列

    队列:满足特点 --> 先进先出,类似于我们生活中的买票.安检 [注意] 对于队列而言:python中有为其封装特定的函数,在collections模块中的deque函数就可以获取一个队列对象; ...

  3. [AHOI2014/JSOI2014]支线剧情

    题目 有源汇上下界最小费用可行流 首先注意到要求是每一条边都经过至少一次,所以对于每一条边我们设成\([1,\infty]\)就好了 另外所有点都能结束剧情,所有点都要向汇点\(t\)连一条\([0, ...

  4. numpy 的排序

    import numpy as np # 1.快速排序 ''' 1.np.sort(),不改变原先值的顺序,但是在运行时占内存 2.ndarry.sort(),改变原先值的顺序,不占用内存 ''' # ...

  5. Odoo Model内容详解

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9390688.html  一:Odoo模型属性   1:_name     模型的唯一标识:如果没有继承其他模型 ...

  6. python-celery定时提交任务

    pip install celery 使用消息中间件:RabbitMQ/Redis app=Celery('任务名',backend='xxx',broker='xxx') 基本使用 import c ...

  7. .netcore部署Linux并结合Nginx反向代理 get started

    一..NetCore网站准备与发布 首先准备好一个ASP.NET Core Web应用程序,我这里就使用新建的示例站点作为demo演示,使用dotnet publish 命令发布网站. 或者使用VS的 ...

  8. OpenCV——字符提取并保存

    截取图中上方数码管中的数字 基本思路: 1.将图像转化为灰度图 2.截取ROI区域 3.二值化 4.循环遍历每一行和每一列,得到字符的坐标 5.截取并保存 #include <opencv2/o ...

  9. 【LeetCode92】Reverse Linked List II★★

    题目描述: 解题思路: 题目大意:给定一个链表,反转第m到第n个结点部分,m.n满足1 ≤ m ≤ n ≤ length of list. 解题思路参照LeetCode206题,用迭代法,不过要注意以 ...

  10. 1.6《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——小结

    本章节学过的重要命令整理,见下表Table 2. 命令 描述 例子 echo <string> 向屏幕输出字符串 $ echo hello man <command> 显示命令 ...