網站首頁 編程語言 正文
本文實例為大家分享了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;
? ? ? ? ?}
?
? ? ? ?}
? ? ? }
? ? ?}
? ? }
? }
}
原文鏈接:https://blog.csdn.net/Abtxr/article/details/123779190
相關推薦
- 2022-08-17 C++詳解如何通過模板實現元素的反序_C 語言
- 2022-09-07 Golang?中?omitempty的作用_Golang
- 2022-11-17 Go語言學習教程之反射的示例詳解_Golang
- 2024-01-07 Plugin ‘org.springframework.boot:spring-boot-maven
- 2022-12-01 解決k8s?namespace?一直處于?Terminating?狀態的問題_云其它
- 2022-07-10 oracle中的session
- 2023-03-25 React錯誤邊界Error?Boundaries_React
- 2022-04-12 Python中BeautifulSoup模塊詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支