當(dāng)前位置:
首頁 >
小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
發(fā)布時(shí)間:2025/4/16
32
豆豆
生活随笔
收集整理的這篇文章主要介紹了
小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這是本學(xué)期java課中實(shí)驗(yàn)大綱里的第一個(gè)實(shí)驗(yàn),這里簡單做了一個(gè)無用戶界面版本。
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)+"道題,請(qǐng)?jiān)谙路捷斎氪鸢?#xff1a;");//生成兩個(gè)隨機(jī)數(shù)Random r1 = new Random();int x = r1.nextInt(10)+1;Random r2 = new Random();int y = r2.nextInt(10)+1;//生成隨機(jī)運(yùn)算符 + - * /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("您一共做對(duì)了"+right+"道題.");System.out.println("您一共做錯(cuò)了"+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;}}}能看到判斷對(duì)錯(cuò)的方法運(yùn)用了直接運(yùn)算符計(jì)算結(jié)果與函數(shù)定義后的運(yùn)算結(jié)果相比較,相等得分,不相等則不得分。
編程中出現(xiàn)的問題:在計(jì)算結(jié)果為小數(shù)的除法時(shí),一開始會(huì)出現(xiàn)結(jié)果怎么算都不對(duì)的情況,他的正確答案也是一個(gè)向偶舍入的數(shù)值,那肯定是不可取的
解決方法:原因是x和y默認(rèn)int型,在float除法中要將兩者都強(qiáng)制類型轉(zhuǎn)換?!具@樣他的精度為小數(shù)點(diǎn)后7位】
附上最后的一部分結(jié)果展示。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zyn95186/p/5675058.html
總結(jié)
以上是生活随笔為你收集整理的小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apply通过实例理解
- 下一篇: 17.2?Replication Imp