PSP流程下的四则运算

 

 

sizeyunsuan.java:

package com.one;

import java.util.Random;
import java.util.Scanner;

public 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+")";
}
}
}

 

jisuan.java:

package com.one;

import static java.lang.Math.*;
import java.util.Scanner;

public 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 = (double) result[0];
}
else {
sum1 = (double)result[0]/result[1];
}
double sum2 = 0;
sum2 = ((Math.round(sum1 * 100)) / 100.0);
if(sum==sum1)
System.out.println("答案正确");
else {
System.out.println("答案错误,正确答案为:"+sum);
}
}
}

 

student.java:

package com.one;

import java.util.Scanner;

public class student{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("计算结果保留2位有效数字\n");
System.out.println("最大数字为:");
int num = scanner.nextInt();
System.out.println("题目数:");
int t = scanner.nextInt();
sizeyunsuan subject = new sizeyunsuan();
subject.set(num, t);

}
}

 

posted on 2021-09-27 19:43  1171672114  阅读(80)  评论(0)    收藏  举报

导航