程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 小學生四則運算出題程序 無操作界面java版 簡單的運用java中一些基本操作,四則運算java

小學生四則運算出題程序 無操作界面java版 簡單的運用java中一些基本操作,四則運算java

編輯: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 stub
        
        double 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 stub
        Scanner 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 stub
        Scanner 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 stub
        Scanner 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 stub
        Scanner 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位】

附上最後的一部分結果展示。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved