四则运算
我把普通形式的运算,分数的运算和带括号的运算分成3种不同的情况,并写了关于分数计算约分的以及整除情况两个方法,通通写在main里面。
具体的main代码如下
import java.util.*;
public class Main {
public static void main(String[] args) {
int n,i,level; int d1=0,l=0,d2=0; String d=null; ArrayList<String> result1=new ArrayList<String>(); String question1=new String(); System.out.println("输入1选择整数计算式,输入2选择分数计算式,输入3选择带括号计算式"); Scanner scan1=new Scanner(System.in); level=scan1.nextInt(); if(level==1){ System.out.println("请输入数量"); Scanner scan2=new Scanner(System.in); n=scan2.nextInt(); int answer[]=new int [n]; System.out.println("2017013466"); for(i=0;i<n;i++){ int a=(int)(Math.random()*100);//随机生成一个1-10的整数 int b=(int)(Math.random()*100);//随机生成一个1-10的整数 a>b int e=(int)(Math.random()*100);//随机生成一个1-10的整数 if(b>a){ int temp=a; a=b; b=temp; } int c=(int)(Math.random()*4);//随机生成一个1-4的整数,0表示加法,1表示减法,2表示乘法,3表示除法, if(c==0) { d1=a+b+e; question1=a+"+"+b+"+"+e; } if(c==1) { d1=a-b+e; question1=a+"-"+b+"+"+e; } if(c==2) { d1=a*b*e; question1=a+"*"+b+"*"+e; } if(c==3) { b=zhengchu(a, b); d1=a/b+e; question1=a+"/"+b+"+"+e; } answer[i]=d1; result1.add(question1+"="+d1); } //测试输出list的值 for ( int k = 0; k < result1.size(); k++){ System.out.println(result1.get(k)); } WriteToFile write=new WriteToFile("src/result.txt",result1); System.out.println("写入成功!"); } if(level==2){ System.out.println("请输入题目的数量"); Scanner scan2=new Scanner(System.in); n=scan2.nextInt(); String answer[]=new String [n]; ArrayList<String> result2=new ArrayList<String>(); String question2=new String(); int M,N; int b1,b2,a1,a2; System.out.println("2017013466"); for(i=0;i<n;i++){ a1=1+(int)(Math.random()*10);//随机生成一个小于B的分母 b1=1+(int)(Math.random()*a1);//生成一个比分母小的分子,实现真分数 a2=1+(int)(Math.random()*10);//随机生成一个小于B的分母 b2=1+(int)(Math.random()*a2);//生成一个比分母小的分子,实现真分数 int c=(int)(Math.random()*3);//生成运算符 if(c==0){ N=b1*a2+b2*a1; M=a1*a2; d=fenshu(N,M); question2=b1+"/"+a1+"+"+b2+"/"+a2; } if(c==1){ N=b1*a2-b2*a1; M=a1*a2; d=fenshu(N,M); question2=b1+"/"+a1+"-"+b2+"/"+a2; } if(c==2){ N=b1*b2; M=a1*a2; d=fenshu(N,M); question2=b1+"/"+a1+"*"+b2+"/"+a2; } if(c==3){ N=a1*b2; M=a2*b1; d=fenshu(N,M); question2=b1+"/"+a1+"/"+b2+"/"+a2; } answer[i]=d; result2.add(question2+"="+d); } //测试输出list的值 for ( int k = 0; k < result2.size(); k++){ System.out.println(result2.get(k)); } WriteToFile write=new WriteToFile("src/result.txt",result2); System.out.println("写入成功!"); } if(level==3){ System.out.println("请输入数量"); Scanner scan3=new Scanner(System.in); n=scan3.nextInt(); int answer[]=new int [n]; ArrayList<String> result3=new ArrayList<String>(); String question3=new String(); System.out.println("2017013466"); for(i=0;i<n;i++){ int a=(int)(Math.random()*100);//随机生成一个1-10的整数 int b=(int)(Math.random()*100);//随机生成一个1-10的整数 a>b int e=(int)(Math.random()*100);//随机生成一个1-10的整数 if(b>a){ int temp=a; a=b; b=temp; } int c=(int)(Math.random()*4);//随机生成一个1-4的整数,0表示加法,1表示减法,2表示乘法,3表示除法, if(c==0) if(c==0) { d2=(a+b)+e; question3="("+a+"+"+b+")"+"+"+e; } if(c==1) { d2=(a-b)+e; question3="("+a+"-"+b+")"+"+"+e; } if(c==2) { d2=a*(b*e); question3=a+"*"+"("+b+"*"+e+")"; } if(c==3) { b=zhengchu(a, b); l=(a/b); d2=l+e; question3="("+a+"/"+b+")"+"+"+e; } answer[i]=d2; result3.add(question3+"="+d2); } //测试输出list的值 for ( int k = 0; k < result3.size(); k++){ System.out.println(result3.get(k)); } WriteToFile write=new WriteToFile("src/result.txt",result3); System.out.println("写入成功!"); } } private static int zhengchu(int x,int y){//通过递归实现整除 Random random=new Random(); if(x%y!=0){ y=random.nextInt(100)+1; return zhengchu(x,y); } else{ return y; } } public static String fenshu(int a,int b){ int y = 1; for(int i=a;i>=1;i--){ if(a%i==0&&b%i==0){ y = i; break; } } int z = a/y; int m = b/y; if(z==0) { return "0"; } return ""+z+"/"+m; }
}
然后就是写入文件了,这里我写了WriteToFile
public class WriteToFile {
public WriteToFile(String path,ArrayList<String> Main) { try { BufferedWriter bw = new BufferedWriter(new FileWriter(path)); bw.write("2017013466"); bw.newLine(); for(String data:Main){ bw.write(data); bw.newLine(); } bw.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }
}
转载请标明出处:四则运算
文章来源: https://blog.csdn.net/qq_42835165/article/details/88852252