四则运算手机开发版

一、题目

每个同学选一个方向,把程序扩展一下:
1、让程序能接受用户输入答案,并判定对错。并输出正确的错题数
2、把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目。
3、把程序变成一个Windows 图形界面的程序。
4、把程序变成一个智能手机程序 (你正在用什么手机, 就写那个手机的程序)。(可以延期3周后)
5、选一个你从来没有学过的编程语言,试一试实现基本功能。

二、思路

  四则运算出题应用
  1.输入出题数 ,点击Confirm  ( 1<=n<=MAXNUMBER)
  2.提交成功后,显示第一道题目
  3.点击Last和Next可切换题目
  4.点击Submit后,核对题目正确与否,并输出答对题数

  注意:
  1.答案保留一位小数
  2.除法总是用较大的数除以较小的数


  1 package com.example.example07;
  2
  3 /*
  4  * 四则运算出题应用
  5  * 1.输入出题数 ,点击Confirm  ( 1<=n<=MAXNUMBER)
  6  * 2.提交成功后,显示第一道题目
  7  * 3.点击Last和Next可切换题目
  8  * 4.点击Submit后,核对题目正确与否,并输出答对题数
  9  *
 10  * 注意:
 11  * 1.答案保留一位小数
 12  * 2.除法总是用较大的数除以较小的数
 13  */
 14
 15 import java.text.DecimalFormat;
 16
 17 import android.os.Bundle;
 18 import android.app.Activity;
 19 import android.view.Menu;
 20 import android.view.View;
 21 import android.view.View.OnClickListener;
 22 import android.widget.Button;
 23 import android.widget.EditText;
 24 import android.widget.TextView;
 25 import android.widget.Toast;
 26
 27 public class MainActivity extends Activity {
 28
 29     private int index = 0; // 当前题数
 30     private int NUMBER = 0;; // 题目总数
 31     private static final int MAXNUMBER = 100; // 最大出题数
 32     private static final int MAXVALUE = 100; // 每道题目的最大值
 33     private boolean isSubmit = false; // 是否提交
 34     private String[] QUESTION = new String[MAXNUMBER]; // 题目集合
 35     private double[] ANSWER = new double[MAXNUMBER]; // 答案集合
 36     private double[] USER_ANSWER = new double[MAXNUMBER]; // 用户答案集合
 37     private boolean[] ANSWER_CHECK = new boolean[MAXNUMBER]; // 用户答案判定
 38
 39     //声明控件
 40     private EditText et_number,et_answer,et_question; //题目数输入框 答案输入框 题目显示框
 41     private Button btn_confirm,btn_last,btn_next,btn_submit; //确定题数 上一题 下一题 提交题目
 42     private TextView tv_count,tv_check,tv_judge;
 43
 44     @Override
 45     protected void onCreate(Bundle savedInstanceState) {
 46         super.onCreate(savedInstanceState);
 47         setContentView(R.layout.activity_main);
 48
 49         // 获取控件
 50         et_question = (EditText)findViewById(R.id.et_question); // 题目显示
 51         et_number = (EditText)findViewById(R.id.et_number); // 题数
 52         et_answer = (EditText)findViewById(R.id.et_answer); // 答案
 53         btn_confirm = (Button)findViewById(R.id.btn_confirm); // 确定题数
 54         btn_last = (Button)findViewById(R.id.btn_last); // 上一题
 55         btn_next = (Button)findViewById(R.id.btn_next); // 下一题
 56         btn_submit = (Button)findViewById(R.id.btn_submit); // 提交题目
 57         tv_count = (TextView)findViewById(R.id.tv_count); // 显示当前题目数
 58         tv_check = (TextView)findViewById(R.id.tv_check); // 输出答对题数
 59         tv_judge = (TextView)findViewById(R.id.tv_judge); // 判定正确与否
 60
 61         // 确定输入题数按钮
 62         btn_confirm.setOnClickListener(new OnClickListener() {
 63
 64             @Override
 65             public void onClick(View arg0) {
 66                 // 如果输入题数范围正确
 67                 if(inputNumber()){
 68                     et_number.setEnabled(false); // 题数不可再输入
 69                     btn_confirm.setEnabled(false); // Confirm按钮不可用
 70                     NUMBER = Integer.parseInt(et_number.getText().toString()); // 获取题目数
 71                     getQuestion(); // 获取题目
 72                     showItem(index); // 显示题目
 73
 74                     // 激活选题按钮
 75                     btn_next.setOnClickListener(new NextClick());
 76                     btn_last.setOnClickListener(new LastClick());
 77                 }
 78             }
 79         });
 80
 81         // 提交按钮
 82         btn_submit.setOnClickListener(new OnClickListener() {
 83
 84             @Override
 85             public void onClick(View arg0) {
 86                 if (inputNumber()) {
 87                     if (!isSubmit) {
 88                         if (check()) {
 89                             btn_submit.setText("重置");
 90                             isSubmit = true;
 91                             et_answer.setEnabled(false);
 92                         }
 93                     } else {
 94                         // 重置函数
 95                         reset();
 96                         btn_submit.setText("提交");
 97                         isSubmit = false;
 98                         et_answer.setEnabled(true);
 99                     }
100                 }
101             }
102         });
103     }
104
105     /*
106      * 输入题数判断
107      */
108     private boolean inputNumber(){
109         int temp = 0;
110         try{
111             temp = Integer.parseInt(et_number.getText().toString());
112         }catch(Exception e){
113             e.printStackTrace();
114             return false;
115         }
116
117         if(temp >= 1 && temp <= MAXNUMBER){
118             return true;
119         }
120         else{
121             return false;
122         }
123     }
124
125     // 输出所有100以内加减乘除的式子
126     private void getQuestion(){
127         String equ = "";
128         int symbol = 0,leftValue = 0,rightValue = 0;
129         DecimalFormat df = new DecimalFormat(".00"); // 保留两位小数
130         for(int i = 0;i < NUMBER;i++){
131             equ = "";
132             symbol = (int)(1+Math.random()*4); // 符号 1 + 2 - 3 * 4 /
133             leftValue = (int)(1+Math.random()*MAXVALUE); // 左边的数
134             rightValue = (int)(1+Math.random()*MAXVALUE);// 右边的数
135             switch(symbol){
136             case 1:{
137                 equ = equ + leftValue + "\t\t\t+\t\t\t" + rightValue;
138                 ANSWER[i] = leftValue + rightValue;
139                 break;
140             }
141             case 2:{
142                 equ = equ + leftValue + "\t\t\t-\t\t\t" + rightValue;
143                 ANSWER[i] = leftValue - rightValue;
144                 break;
145             }
146             case 3:{
147                 equ = equ + leftValue + "\t\t\t*\t\t\t" + rightValue;
148                 ANSWER[i] = leftValue * rightValue;
149                 break;
150             }
151             case 4:{
152                 double tempLeft = Math.max(leftValue, rightValue);
153                 double tempRight = Math.min(leftValue,rightValue);
154                 equ = equ + tempLeft + "\t\t\t/\t\t\t" + tempRight;
155                 ANSWER[i] = tempLeft / tempRight;
156                 break;
157             }
158             }
159
160             QUESTION[i] = equ + "\t\t\t=";
161             ANSWER[i] = Double.parseDouble(df.format(ANSWER[i]));
162         }
163     }
164
165     // 显示第i题的题目
166     private void showItem(int i){
167         et_question.setText(QUESTION[i]);
168         index = i;
169         tv_count.setText(""+(index+1)+"/"+NUMBER);
170         if(USER_ANSWER[i]!=0.0){
171             et_answer.setText(""+USER_ANSWER[i]);
172         }
173
174         // 如果提交
175         if(isSubmit){
176             if(ANSWER_CHECK[index] == true){
177                 tv_judge.setText("√");
178                 Toast.makeText(getApplicationContext(), "回答正确" ,Toast.LENGTH_SHORT).show();
179             }
180             else{
181                 tv_judge.setText("×");
182                 Toast.makeText(getApplicationContext(), "正确答案为"+ANSWER[index],Toast.LENGTH_SHORT).show();
183             }
184         }
185
186         // 获取焦点
187         et_answer.requestFocus();
188     }
189
190     // 上一题按钮
191     class LastClick implements OnClickListener{
192
193         @Override
194         public void onClick(View arg0) {
195             // TODO Auto-generated method stub
196             if(index == 0){
197                 Toast.makeText(getApplicationContext(), "这已经是第一题",Toast.LENGTH_SHORT).show();
198             }
199             else{
200                 if(!et_answer.getText().toString().equals("")){  // 输入非空
201                     try{
202                         USER_ANSWER[index] = Double.parseDouble(et_answer.getText().toString());
203                     }catch(Exception e){
204                         e.printStackTrace();
205                         return;
206                     }
207                 }
208                 // 显示上一题
209                 index--;
210                 et_answer.setText("");
211                 showItem(index);
212             }
213         }
214
215     }
216
217     // 下一题按钮
218     class NextClick implements OnClickListener{
219
220         @Override
221         public void onClick(View arg0) {
222             // TODO Auto-generated method stub
223             if(index == NUMBER-1){
224                 Toast.makeText(getApplicationContext(), "这已经是最后一题",Toast.LENGTH_SHORT).show();
225             }
226             else{
227                 // 如果输入非空
228                 if(!et_answer.getText().toString().equals("")){
229                     try{
230                         USER_ANSWER[index] = Double.parseDouble(et_answer.getText().toString());
231                     }catch(Exception e){
232                         e.printStackTrace();
233                         return;
234                     }
235                 }
236
237                 // 显示下一题
238                 index++;
239                 et_answer.setText("");
240                 showItem(index);
241             }
242         }
243
244     }
245
246     // 核对答案
247     private boolean check(){
248
249         // 判定最后一道题目
250         if(!et_answer.getText().toString().equals("")){
251             try{
252                 USER_ANSWER[index] = Double.parseDouble(et_answer.getText().toString());
253             }catch(Exception e){
254                 e.printStackTrace();
255                 return false;
256             }
257         }
258
259         // 核对所有题目
260         int right = 0; // 答对题数
261         for(int i = 0;i < NUMBER;i++){
262             if(ANSWER[i] == USER_ANSWER[i]){
263                 right++;
264                 ANSWER_CHECK[i] = true;
265             }
266         }
267
268         // 判定提交时正在显示的题目
269         if(ANSWER_CHECK[index] == true){
270             tv_judge.setText("√");
271             Toast.makeText(getApplicationContext(), "回答正确" ,Toast.LENGTH_SHORT).show();
272         }
273         else{
274             tv_judge.setText("×");
275             Toast.makeText(getApplicationContext(), "正确答案为"+ANSWER[index],Toast.LENGTH_SHORT).show();
276         }
277
278         String str = "此次答题共" + NUMBER + "道题,答对" + right + "题。";
279         tv_check.setText(str);
280
281         return true;
282     }
283
284     // 重置函数
285     private void reset(){
286         // 重置变量
287         index = 0;
288         NUMBER = 0;
289         ANSWER = new double[MAXNUMBER];
290         QUESTION = new String[MAXNUMBER];
291         USER_ANSWER = new double[MAXNUMBER];
292         ANSWER_CHECK = new boolean[MAXNUMBER];
293
294         // 重置控件
295         btn_confirm.setEnabled(true);
296         et_number.setEnabled(true);
297         tv_count.setText("0/0");
298         et_answer.setText("");
299         tv_check.setText("");
300         tv_judge.setText("");
301         et_number.setText("");
302         et_question.setText("");
303
304     }
305
306
307 }
 

四、实验截图

时间: 2024-10-15 01:08:47

四则运算手机开发版的相关文章

小米手机6X简单刷成开发版启用Root权限的流程

小米的机器不同手机型号通常情况下官方网站都提供两个不同的系统,大概可分为稳定版和开发版,稳定版没有提供root超级权限管理,开发版中就支持了root超级权限,很多情况我们需要使用的一些功能强大的APP,都需要在root超级权限下工作,好比我们工作室在使用的营销引流APP引号精灵,就是需要有root超级权限才能进行正常工作,但正常情况下,我们新买到的手机通常情况下默认安装的是小米系统的稳定版,这时,我们需要将小米手机6X刷成开发版系统,以获得相应的root超级权限. 这里我们讲解一下将小米手机6X

小米手机8 SE怎么样刷入开发版启用root权限

小米的机器不同手机型号一般官方都提供两个不同的系统,分别为稳定版和开发版,稳定版没有提供root超级权限管理,开发版中就提供了root超级权限,较多时候我们需要使用的一些功能强大的App,都需要在root超级权限下工作,好比我们工作室在使用的营销引流App引号精灵,就是需要有root超级权限才能进行正常跑起来,但是一般情况,我们新买到的手机一般默认安装的是小米系统的稳定版,这时,我们需要将小米手机8 SE卡刷入开发版系统,以获得相应的root超级权限.下面我们讲解一下将小米手机8 SE的稳定版系

【乐意黎原创】MIUI6 MIUI 5.4.17 开发版 无法读写到外置存储卡上(SD)

本人前几天用红米1 刷 了MIUI6  MIUI 5.4.17 开发版 [[乐意黎原创]红米1刷MIUI 6 系统  http://blog.csdn.net/aerchi/article/details/45102013], 近期出现了一个问题,无法读写到外置存储卡上(SD). 下面介绍下该问题的解决方法: 首先, 确保你的手机已经ROOT了.[可使用ROOT大师] 其次,修改权限. 1) 将你的手机下载安装好RE管理器: 2)使用文本编辑器打开/system/etc/permissions目

ios开发版证书与企业证书相关文件申请安装及其使用方法

本文主要讲述以下内容: ios开发版证书的申请, 企业证书的申请, appid的创建, provision profile的生成, 开发设备devices的绑定, 以及每个证书文件之间的关系, 最后使用这些证书发布企业内部使用的app的方法过程. 企业版证书如下 开发者证书如下: 安装之后,ios_development.cer会自动启用Keychains程序,将其加入到login证书中. provision Profile文件则是会被iphone Configuration Utility程序

小米Max 3如何刷成开发版开启root权限

小米的手机或平板不同手机型号一般情况MIUI官方论坛都提供两个不同的安卓系统版本,分别为稳定版和开发版,稳定版没有提供ROOT超级权限管理,开发版中就开启了ROOT超级权限,在很多工作的时候我们需要使用的一些功能强大的APP,都需要在ROOT超级权限下工作,举个栗子我们企业在使用的营销引流APP引号精灵,就是需要有ROOT超级权限才能进行正常跑起来,但是,我们新买到的手机一般情况默认安装的是小米系统的稳定版,此时,我们需要将小米Max 3刷成开发版系统,以获得相应的ROOT超级权限.这个文章我们

红米6 Pro怎么样刷入开发版启用Root超级权限

小米的手机不同手机型号正常情况下官方网站都提供两个不同的版本,大概分为稳定版和开发版,稳定版没有提供root超级权限管理,开发版中就支持了root超级权限,在很多工作的时候我们需要使用的一些功能强大的应用,都需要在root超级权限下工作,就比如我们团队在使用的营销引流应用引号精灵,就是需要有root超级权限才能进行正常运行,但一般情况下,我们新买到的手机正常情况下默认安装的是小米系统的稳定版,在此种情况下,我们需要将红米6 Pro刷成开发版系统,以获得相应的root超级权限. 这篇文章我们就描述

小米8 探索版 屏幕指纹版超简单卡刷开发版获取Root权限的教程

小米的手机不同手机型号通常情况下miui官网都提供两个不同的系统,分别是稳定版和开发版,稳定版没有提供ROOT超级权限管理,开发版中就开启了ROOT超级权限,在很多工作的时候我们需要使用的一些功能强大的app,都需要在ROOT超级权限下工作,就比如我们企业在使用的营销引流app引号精灵,就是需要有ROOT超级权限才能进行正常运行,但是一般情况,我们新买到的手机通常情况下默认安装的是小米系统的稳定版,因此我们需要将小米8 探索版 屏幕指纹版刷入开发版系统,以获得相应的ROOT超级权限. 接下来我们

小米Max怎么刷入开发版获得root超级权限

小米的机器不同手机型号一般情况官方论坛都提供两个不同的版本,分别为稳定版和开发版,稳定版没有提供ROOT权限管理,开发版中就支持了ROOT权限,较多时候我们需要使用的一些功能强大的App,都需要在ROOT权限下工作,就比如我们公司在使用的营销引流App引号精灵,就是需要有ROOT权限才能进行正常跑起来,但一般情况下,我们新买到的手机一般情况默认安装的是小米系统的稳定版,这时,我们需要将小米Max刷入开发版系统,以获得相应的ROOT权限. 这个文章我们就描述怎么将小米Max系统稳定版通过刷入的方式

MIUI11系统怎么样刷入开发版获得Root超级权限

小米的手机或平板不同手机型号一般情况下官网都提供两个不同的安卓系统版本,可分为稳定版和开发版,稳定版没有提供root权限管理,开发版中就开启了root权限,很多时候我们需要使用的一些功能强大的App,都需要在root权限下工作,举个例子我们公司在使用的营销引流App引号精灵,就是需要有root权限才能进行正常运行,但是一般情况,我们新买到的手机一般情况下默认安装的是小米系统的稳定版,此时,我们需要将MIUI11系统刷入开发版系统,以获得相应的root权限. 这里我们给大家介绍一下将MIUI11系