1.实验目的:是否有乘除法,括号,多项式运算。
2.思路:利用简单的循环switch语句进行循环输出随机数
3.程序源代码:
package jiajianchengchu;
import java.util.*;
public class jisuan {
//定义一个用来约分的函数
public static String yuefen(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;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x,y,i,a1,C;//a代表计算类型,x代表题目数量,y代表数值的范围,i为循环变量,d代表是否有乘除法
int d1=0;
String d = null;//d用来储存答案
System.out.println("1、整数计算式,2、真分数计算式");
Scanner scan1=new Scanner(System.in);
a1=scan1.nextInt();
if(a1==1){
System.out.println("请输入题目的数量");
Scanner scan2=new Scanner(System.in);
x=scan2.nextInt();
int daan[]=new int [x];
System.out.println("请输入数值的范围");
y=scan2.nextInt();
System.out.println("是否有乘除法?(是输入1,否则输入0)");
C=scan2.nextInt();
if(C==1){
for(i=0;i<x;i++){
int a=(int)(Math.random()*y);//随机生成一个1-10的整数
int b=(int)(Math.random()*y);//随机生成一个1-10的整数
int c=(int)(Math.random()*3);//随机生成一个1-4的整数,0表示加法,1表示减法,2表示乘法,3表示除法
if(c==0)
{
d1=a+b;
System.out.print(a+"+"+b+"= ");
}
if(c==1)
{
d1=a-b;
System.out.print(a+"-"+b+"= ");
}
if(c==2)
{
d1=a*b;
System.out.print(a+"*"+b+"= ");
}
if(c==3)
{
d1=a/b;
System.out.print(a+"/"+b+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d1;
}
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
if(C==0){
for(i=0;i<x;i++){
int a=(int)(Math.random()*y);//随机生成一个1-的整数
int b=(int)(Math.random()*y);//随机生成一个1-10的整数
int c=(int)(Math.random()*2);//随机生成一个1-4的整数,0表示加法,1表示减法
if(c==0)
{
d1=a+b;
System.out.print(a+"+"+b+"= ");
}
if(c==1)
{
d1=a-b;
System.out.print(a+"-"+b+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d1;
}
System.out.println(" ");
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
}
if(a1==2){
int M,Z;
System.out.println("请输入题目的数量");
Scanner scan2=new Scanner(System.in);
x=scan2.nextInt();
String daan[]=new String [x];
int x1,x2,B,m1,m2;
System.out.println("请输入分母数值的范围");
B=scan2.nextInt();
System.out.println("是否有乘除法?(是输入1,否则输入0)");
C=scan2.nextInt();
if(C==1){
for(i=0;i<x;i++){
m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
int c=(int)(Math.random()*3);//生成运算符
if(c==0){
Z=x1*m2+x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"= ");
}
if(c==1){
Z=x1*m2-x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"= ");
}
if(c==2){
Z=x1*x2;
M=m1*m2;
d=d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"*"+x2+"/"+m2+"= ");
}
if(c==3){
Z=m1*x2;
M=m2*x1;
d=d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"/"+x2+"/"+m2+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d;
}
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
if(C==0){
for(i=0;i<x;i++){
m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
int c=(int)(Math.random()*2);//生成运算符
if(c==0){
Z=x1*m2+x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"= ");
}
if(c==1){
Z=x1*m2-x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d;
}
System.out.println(" ");
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
}
}
}
4.实验结果截图:
5.实验总结:
对于真分数的计算方式不熟悉,需要请教其他同学;
对于存在多项式的运算不熟悉。