小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
生活随笔
收集整理的這篇文章主要介紹了
小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是本學期java課中實驗大綱里的第一個實驗,這里簡單做了一個無用戶界面版本。
import java.util.Random; import java.util.Scanner;public class MathTest {public static void main(String[] args) {// TODO Auto-generated method stubdouble right = 0;double wrong = 0;/*Scanner sc2 = new Scanner(System.in);int num2 = sc2.nextInt();*/for (int i = 0; i < 10; i++) {System.out.println("第"+(i+1)+"道題,請在下方輸入答案:");//生成兩個隨機數Random r1 = new Random();int x = r1.nextInt(10)+1;Random r2 = new Random();int y = r2.nextInt(10)+1;//生成隨機運算符 + - * /Random r3 = new Random();int z = r3.nextInt(4);char[] chs = {'+','-','*','/'};String Operator = String.valueOf(chs[z]);//生成題目if(Operator.equals("+")){System.out.println(x+"+"+y+"=");boolean b = add(x,y);if(b == true){right++;System.out.println("bingo! ");}else{wrong++;System.out.println("oh~no ");}System.out.println("the right answer: "+(x+y));}else if(Operator.equals("-")){System.out.println(x+"-"+y+"=");boolean b =minus(x,y);if(b == true){right++;System.out.println("bingo! ");}else{wrong++;System.out.println("oh~no ");}System.out.println("the right answer: "+(x-y));}else if(Operator.equals("*")){System.out.println(x+"×"+y+"=");boolean b =times(x,y);if(b == true){right++;System.out.println("bingo! ");}else{wrong++;System.out.println("oh~no ");}System.out.println("the right answer: "+(x*y));}else{System.out.println(x+"÷"+y+"=");boolean b =divide(x,y);if(b == true){right++;System.out.println("bingo! ");}else{wrong++;System.out.println("oh~no ");} System.out.println("the right answer: "+((float)x /(float) y));}System.out.println("-------------------------------");}System.out.println("您一共做對了"+right+"道題.");System.out.println("您一共做錯了"+wrong+"道題.");if(wrong > 0){System.out.println("正確率為"+(right/(wrong+right))*100+"%");}else{System.out.println("沒法除了啊 。。。。");}}private static boolean add(int x,int y) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int num1 = sc.nextInt();int result = x + y;if(num1 == result){return true;}else{return false;}}private static boolean minus(int x,int y) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int num1 = sc.nextInt();int result = x - y;if(num1 == result){return true;}else{return false;}}private static boolean times (int x,int y) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int num1 = sc.nextInt();int result = x * y;if(num1 == result){return true;}else{return false;}}private static boolean divide(int x,int y) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);float num1 = sc.nextFloat();float result =(float)x /(float) y;if(num1 == result){return true;}else{return false;}}}能看到判斷對錯的方法運用了直接運算符計算結果與函數定義后的運算結果相比較,相等得分,不相等則不得分。
編程中出現的問題:在計算結果為小數的除法時,一開始會出現結果怎么算都不對的情況,他的正確答案也是一個向偶舍入的數值,那肯定是不可取的
解決方法:原因是x和y默認int型,在float除法中要將兩者都強制類型轉換。【這樣他的精度為小數點后7位】
附上最后的一部分結果展示。
?
轉載于:https://www.cnblogs.com/zyn95186/p/5675058.html
總結
以上是生活随笔為你收集整理的小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apply通过实例理解
- 下一篇: 17.2?Replication Imp