PSP表格

package Size;
import java.util.Scanner;
import java.util.Random;
import static java.lang.Math.*;
public class CalculateText{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数字上限:");
        int num = scanner.nextInt();
        System.out.println("请输入产题目数量:");
        int t = scanner.nextInt();
        SizeYunsuan subject = new SizeYunsuan();
        subject.set(num, t);

    }
}
class SizeYunsuan {
    void set (int num , int t){
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        JiSuan j = new JiSuan();

        String arithmetic[] = new String[t];
        for(int i = 0 ; i < t ; i++) {
            int a = (int)random.nextInt(num);//分子
            int b = (int)random.nextInt(num);//分母
            int c = (int)random.nextInt(num);//另一个分子
            int d = (int)random.nextInt(num);//另一个分母
            int fuhao = random.nextInt(4);//0代表+,1代表-,2代表乘,3代表除
            if(b!=0 && d!=0) {
                if(fuhao==0) {
                    int fenzi = a*d + b*c;
                    int fenmu = b*d;
                    arithmetic[i] = biaodashi(a,b) + '+' + biaodashi(c,d) + '=';
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);

                }
                if(fuhao==1 && a*d - b*c >= 0) {
                    int fenzi = a*d - b*c;
                    int fenmu = b*d;
                    arithmetic[i] = biaodashi(a,b) + '-' + biaodashi(c,d) + '=';
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==1 && a*d - b*c < 0) {
                    int fenzi = b*c - a*d;
                    int fenmu = b*d;
                    arithmetic[i] = biaodashi(c, d) + '-' + biaodashi(a, b) + '=';
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==2) {
                    int fenzi = a*c;
                    int fenmu = b*d;
                    arithmetic[i] = biaodashi(a, b) + '×' + biaodashi(c, d) + '=';
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==3 && c!=0) {
                    int fenzi = a*d;
                    int fenmu = b*c;
                    arithmetic[i] = biaodashi(a, b) + '÷' + biaodashi(c, d) + '=';
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==3 && c==0) {
                    i--;
                }
            }
            else {
                b=1;
                d=1;
                if(fuhao==0) {
                    int fenzi = a*d + b*c;
                    int fenmu = b*d;
                    arithmetic[i] = a + "+" +c + "=";
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==1 && a*d - b*c >= 0) {
                    int fenzi = a*d - b*c;
                    int fenmu = b*d;
                    arithmetic[i] = a + "-" +c + "=";
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==1 && a*d - b*c < 0) {
                    int fenzi = b*c - a*d;
                    int fenmu = b*d;
                    arithmetic[i] = c + "-" +a + "=";
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==2) {
                    int fenzi = a*c ;
                    int fenmu = b*d;
                    arithmetic[i] = a + "×" +c + "=";
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==3 && c!=0) {
                    int fenzi = a*d ;
                    int fenmu = b*c;
                    arithmetic[i] = a + "÷" +c + "=";
                    System.out.println((i+1)+"、"+arithmetic[i]);
                    j.anw(fenzi, fenmu);
                }
                if(fuhao==3 && c==0) {
                    i--;
                }

            }
        }
    }
    public static String biaodashi(int a,int b) {//判断假分数,并化假分数为带分数
        if(a>=b) {
            int c;
            c = a/b;
            int d;
            d = a%b ;
            if(d==0)
                return c+"";
            else
                return a+"/"+b;
        }
        else {
            return a+"/"+b;
        }
    }
}


class JiSuan {
    void anw(int fenzi,int fenmu){
        Scanner scanner = new Scanner(System.in);
        double d = (double)fenzi/fenmu;
        double sum = ((Math.round(d * 100)) / 100.0);
        String anw = scanner.nextLine();
        String string[] =anw.split("/");
        double [] result =new double[string.length];
        for(int i=0;i<string.length ;i++) {
            result[i]=Double.parseDouble(string[i]);
        }
        double sum1 =0;
        if(string.length == 1 ) {
            sum1 = (int) result[0];
        }
        else {
            sum1 = result[0]/result[1];
        }

        if(sum==sum1)
            System.out.println("正确");
        else {
            System.out.println("错误");
            System.out.println("正确答案为:"+sum);
        }

    }
}

 

posted @ 2021-09-27 17:55  睡务局局长  阅读(111)  评论(0)    收藏  举报