4则运算运用继承
第一个类:
package FourMath;
import java.util.*;
public class FourMathTwo {
public int range=0;
public int quantity=0;
FourMathTwo(int i1,int j1) { //构造方法输入出题数目以及范围;
quantity=i1;
range=j1;
}
public void Play(){
Scanner sc=new Scanner(System.in);
int z=2;
boolean g=true;
int q;
double y;
int x1;
int x2;
int xun=1;
double zheng=0;
int k1=0;
double sum[]=new double[quantity];
String fu[][]=new String[quantity][z-1];
String cun1[][]=new String[quantity][2*z];
String cun2[][]=new String[quantity][2*z];
int jishu[][]=new int[quantity][z-1];
double cao[][]=new double[quantity][z];
int n;
for(int k=0;k<quantity;k++) {
sum[k]=0;
Random random=new Random();
for(x1=0;x1<z;x1++) {
int a=random.nextInt(range);
cao[k][x1]=a+1;
}
int fu1[]=new int[z-1];
for(x2=0;x2<z-1;x2++) {
int b=random.nextInt(4);
fu1[x2]=b;
if(fu1[x2]==0) {
fu[k][x2]="+";
}
else if(fu1[x2]==1) {
fu[k][x2]="-";
}
else if(fu1[x2]==2) {
fu[k][x2]="*";
}
else if(fu1[x2]==3) {
fu[k][x2]="/";
}
jishu[x1][x2]=0;
}
for(int j=0;j<z-1;j++) {
cun1[k][2*j]=String.valueOf(cao[k][j]);
cun1[k][2*j+1]=fu[k][j];
}
cun1[k][2*z-1]=String.valueOf(2);
for(int j=0;j<k;j++) {
if(cun1[j].equals(cun1[k])) n=1;
}
n=2;
if(n==1) {
k--;
continue;}
else cun2[k]=cun1[k];
}
for(k1=0;k1<quantity;k1++) {
for(int i=0;i<z-1;i++) {
switch(fu[k1][i]) {
case "*":{
cao[k1][i]=cao[k1][i]*cao[k1][i+1];
cao[k1][i+1]=cao[k1][i];
jishu[k1][i]=1;
break;
}
case "/":{
cao[k1][i]=cao[k1][i]/cao[k1][i+1];
cao[k1][i+1]=cao[k1][i];
jishu[k1][i]=1;
break;
}
}
}
for(int i=0;i<z-1;i++) {
switch(fu[k1][i]) {
case "+":{
if(xun<2) {
sum[k1]=cao[k1][i]+cao[k1][i+1];
xun++;
break;
}
else {sum[k1]+=cao[k1][i+1];
xun++;
break;}
}
case "-":{
if(xun<2) {
sum[k1]=cao[k1][i]-cao[k1][i+1];
xun++;
break;
}
else {sum[k1]-=cao[k1][i+1];
xun++;
break;}
}
}
}
}
k1=0;
do {
for(int k2=0;k2<2*z-2;k2++) {
System.out.print(cun2[k1][k2]);
}
System.out.print(cun2[k1][2*z-1]+"=");
String b="+";
y=sc.nextDouble();
if(y==sum[k1]) zheng++;
k1++;
System.out.println("是否继续答题(1代表继续答题,0代表结束答题)");
q=sc.nextInt();
if(q==1) g=true;
if(q==0) g=false;
}while(g&&k1<quantity);
System.out.println("答题结束!");
System.out.println("正确率为:"+zheng/quantity*100+"%");
}
}
第2个类:
package FourMath;
import java.util.*;
public class MainInterface {
public static void main(String []args) {
int i=0;
boolean k=true;
int range=0;
int quantity=0;
int z=0;
System.out.println("1.参数设置");
System.out.println("2.小学二年级口算题");
System.out.println("3.小学三年级口算题");
System.out.println("4.小学四年级口算题");
System.out.println("5.错题集");
System.out.println("6.退出操作:");
do {
System.out.println("请输入选择的操作:");
Scanner sc=new Scanner(System.in);
i=sc.nextInt();
switch(i) {
case 1:{
System.out.println("请输入题目数目:");
quantity=sc.nextInt();
System.out.println("请输入操作数范围:");
range=sc.nextInt();
System.out.println("请输入操作数个数(小学2年级操作数个数为2):");
z=sc.nextInt();
break;
}
case 2:{
FourMathTwo TwoStudent=new FourMathTwo(quantity,range);
if(range>100) {
System.out.println("超出小学二年级能力范围!");
break;
}
else {TwoStudent.Play();
break;
}
}
case 3:{
}
case 4:{
}
case 5:{
}
case 6:{
k=false;
System.out.println("退出系统成功!");
break;
}
}}while(k);
}
}
目前运行:
现在还有计算它的正确率不太会。