Android随机给出加减乘除的四则运算算术题

本文实例为大家分享了Android随机给出加减乘除的四则运算算术题,供大家参考,具体内容如下

点击显示题目即可在指定范围内随机出算数题目,适合初学者上手,易懂,另外,我没有把每一种运算的可能性都写出来,只写了部分的,不过两个数,三个数和四个数运算的可能性我都写了1-2中,你们可以比划模仿去写出其他的运算可能性,也很容易的,下面上代码!

xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    >
   <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="自动出题APP"
       android:textSize="35sp"
       android:textColor="#FF5722"
       android:gravity="center"
      android:layout_marginTop="20dp"
       />
    <TextView
android:layout_marginTop="100dp"
        android:id="@+id/tv_math"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:textSize="40sp"
        android:gravity="center_horizontal"
 
        />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#E91E63"
        />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
 
    android:orientation="horizontal">
    <Button
        android:layout_marginTop="20dp"
        android:layout_marginLeft="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示题目"
        android:textSize="30sp"
        android:id="@+id/btn_question"
        />
    <Button
        android:background="#05FC2E"
        android:layout_marginLeft="100dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示答案"
        android:id="@+id/btn_answers"
        android:textSize="30sp"
        android:layout_marginTop="20dp"
 
        />
</LinearLayout>
</LinearLayout>

Java代码文件

package com.example.dysuanshuti;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView tv_math;
    private Button btn_question;
    private Button btn_answers;
   @ Override
    protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main) ;
    initView();
}
    private void initView(){
        tv_math = (TextView) findViewById(R.id.tv_math) ;
        btn_question = (Button) findViewById(R.id.btn_question);
        btn_answers = (Button) findViewById(R.id.btn_answers);
        btn_question.setOnClickListener(MainActivity.this );
        btn_answers.setOnClickListener(MainActivity.this ) ;
    }
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_question:
                question();
                break;
        }
   }
    private void question() {
 
        java.util.Random random = new java.util.Random();
 
//先指定随机生成几组数字(2~4);
  int temp = random.nextInt(3) + 2;
 
//随机生成(0~3)四个数字分别对应:+,-,×,÷
//如果随机到四组数字,则会有三个运算符
   int signal = random.nextInt(4);//第一个运算符
   int signal1 = random.nextInt(4);//第二个运算符
   int signal2 = random.nextInt(4);//第三个运算符
 
//指随机生成的每组数字的数值(1~11)
   final int num1 = random.nextInt(11) + 1;
   final int num2 = random.nextInt(11) + 1;
   final int num3 = random.nextInt(11) + 1;
   final int num4 = random.nextInt(11) + 1;
   switch (temp) {
            case 2://2组数字
                switch (signal) {
                    case 0:// +
                        tv_math.setText(num1 + "+" + num2 + "=?");
                        btn_answers.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                tv_math.setText(num1 + "+" + num2 + "=" + (num1 + num2));
                            }
                        });
                        break;
                    case 1:// -
                        tv_math.setText(num1 + "-" + num2 + "=?");
                        btn_answers.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                tv_math.setText(num1 + "-" + num2 + "=" + (num1 - num2));
                            }
                        });
                        break;
                    case 2:// ×
                        tv_math.setText(num1 + "*" + num2 + "=?");
                        btn_answers.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                tv_math.setText(num1 + "*" + num2 + "=" + (num1 * num2));
                            }
                        });
                        break;
 
                    case 3:// ÷
                        tv_math.setText(num1 + "/" + num2 + "=?");
                        btn_answers.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                tv_math.setText(num1 + "/" + num2 + "=" + (num1 / num2));
                            }
                        });
                        break;
                }
                break;
 
            case 3://3组数字
                switch (signal) {//第一个运算符
                    case 0:// +
                        switch (signal1) {//第二个运算符
                            case 0:// +
                                tv_math.setText(num1 + "+" + num2 + "+" + num3 + "=?");
                                btn_answers.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View v) {
                                        tv_math.setText(num1 + "+" + num2 + "+" + num3 + "=" + (num1 + num2 + num3));
                                    }
                                });
                                break;
 
                            case 2:// *
                                switch (signal1) {//第二个运算符
                                    case 1:// -
                                        tv_math.setText(num1 + "*" + num2 + "-" + num3 + "=?");
                                        btn_answers.setOnClickListener(new View.OnClickListener() {
                                            @Override
                                            public void onClick(View v) {
                                                tv_math.setText(num1 + "*" + num2 + "-" + num3 + "=" + (num1 * num2 - num3));
                                            }
                                        });
                                        break;
 
 
                                }
 
                         break;
 
                  case 4://4组数字
                     switch (signal) {//第一个运算符
                        case 0:// +
                          switch (signal1) {//第二个运算符
                             case 0:// +
                                   switch (signal2) {//第三个运算符
                                      case 0:// +
                                        tv_math.setText(num1 + "+" + num2 + "+" + num3 + "+" + num4 + "=?");
                                        btn_answers.setOnClickListener(new View.OnClickListener() {
                                              @Override
                                         public void onClick(View v) {
                                               tv_math.setText(num1 + "+" + num2 + "+" + num3 + "+" + num4 + "=" + (num1 + num2 + num3 + num4));
 
                                                            }
 
                                          });
                                           break;
                                           case 1:// -
                                           switch (signal1) {//第二个运算符
                                           case 3:// /
                                           switch (signal2) {//第三个运算符
                                           case 2:// *
                                            tv_math.setText(num1 + "-" + num2 + "/" + num3 + "*" + num4 + "=?");
                                               btn_answers.setOnClickListener(new View.OnClickListener() {
                                                  @Override
                                                   public void onClick(View v) {
                                           tv_math.setText(num1 + "-" + num2 + "/" + num3 + "*" + num4 + "=" + (num1 - num2 / num3 * num4));
                                         }
                                    });
                              }
 
                          }
               break;
              }
           break;
         }
 
       }
      }
     }
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android基于反射技术实现的加减乘除运算示例

    本文实例讲述了Android基于反射技术实现的加减乘除运算.分享给大家供大家参考,具体如下: JAVA反射机制定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法

  • android计算器实现两位数的加减乘除

    本文实例为大家分享了android计算器实现加减乘除的具体代码,供大家参考,具体内容如下 注:以下计算器只注重实现功能,不考虑其他BUG,只有两位整数的算法运算,适合新手 1.实现思想 将从键盘得到的数值放在一个字符数组中,以运算符号(+-/)为分割点,将两个数值分割开,进行算法运算.* 2.难点 如何判断是否为符号?+ - ×/ 记录符号的位置? 3.步骤: 1.得到键盘输入的值 2.将值存放在一个字符数组中 3.遍历数组中的每个数,如果找到算法符号,记录下算法符号的位置.(要点,从0开始)

  • Android随机给出加减乘除的四则运算算术题

    本文实例为大家分享了Android随机给出加减乘除的四则运算算术题,供大家参考,具体内容如下 点击显示题目即可在指定范围内随机出算数题目,适合初学者上手,易懂,另外,我没有把每一种运算的可能性都写出来,只写了部分的,不过两个数,三个数和四个数运算的可能性我都写了1-2中,你们可以比划模仿去写出其他的运算可能性,也很容易的,下面上代码! xml布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayou

  • Android 带有弹出收缩动画的扇形菜单实例

    最近试着做了个Android 带有弹出收缩动画的扇形菜单,留个笔记记录一下. 效果如下 public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView imgPublish; private TextView textView1; private TextView textView2; private boolean isMenuOpen = false

  • Android PopupMenu弹出菜单的实现

    Android PopupMenu弹出菜单的实现 (1)布局文件:用于弹出菜单的处罚button: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout

  • Android Popupwindow弹出窗口的简单使用方法

    本文实例为大家分享了Android Popupwindow弹出窗口的具体代码,供大家参考,具体内容如下 代码很简单,没有和别的控件连用.布局自己随意定义,我的这个是最基础的,就直接上代码啦! 在MainActivity里 import android.content.Context; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflat

  • Android随机生成验证码

    Android随机生成验证码,Android利用随机数绘制不规则的验证码,加强用户登录或者注册的安全性. 具体思路如下: 在一块固定宽高的画布上,画上固定个数的随机数字和字母,再画上固定条数的干扰线 随机数和干扰线的颜色随机生成,随机数的样式随机生成. 界面效果如下: 1.生成随机数代码,Code.java: public class Code { //随机数数组 private static final char[] CHARS = { '2', '3', '4', '5', '6', '7'

  • android避免弹出软键盘遮盖listview的简单方法

    做开发的时候,我们常常把listview放中间,然后底部放置一个edittext控件,这样导致editext控件获得焦点的时候,输入法弹出,Edittext控件上移,挡住了listview的部分数据,这样不太美观.所以,我们需要让listview也跟着上移,所以需要: 方法一:在xml文件中,设置listview属性时候加上这句就ok了android:transcriptMode="normal": 方法二:在程序中加入语句: listView.setTranscriptMode(Li

  • Android 自定义弹出菜单和对话框功能实例代码

    Android 开发当中,可能会存在许多自定义布局的需求,比如自定义弹出菜单(popupWindow),以及自定义对话框(Dialog). 话不多说,直接上图片. 先讲第一种,自定义PopUpWindow 1.popupWindow protected void showPopWindow(View view, final int pos){ WindowManager wm= (WindowManager) myContext.getSystemService(Context.WINDOW_S

  • android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源之IOS_Dialog_Library

    先给大家展示下效果图,喜欢的朋友可以下载源码哦. 完成这个效果的是使用了 IOS_Dialog_Library 下载地址:http://xiazai.jb51.net/201509/yuanma/IOS_Dialog_Library(jb51.net) 下载后导入到Eclipse中,然后作为Library引入到自己的工程中,直接作为第三方控件使用. 测试代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

  • Android实现弹出键盘的方法

    本文实例讲述了Android实现弹出键盘代码,是一个非常实用的功能.代码非常简洁.分享给大家供大家参考. 具体功能代码如下: Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { InputMethodManager m = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_

  • Android Popwindow弹出框的模板使用示例

    Pop弹出框 public class ProductSortPop { private Context mContext; private View.OnClickListener mOnClickListener; //创建一个点击事件接口回调数据 private TextView mAllSort; private TextView mNewSort; private TextView mCommentSort; private View mLeftV; private PopupWind

随机推荐