代码:
1.package mv;
import java.util.Random;
public abstract class Equation {
static final int UPPER=100;
static final int LOWWER=0;
private int intAnswer;
private int LeftOpNum;
private int RightOpNum;
private char oper;
public int getIntAnswer() {
return intAnswer;
}
public int getLeftOpNum() {
return LeftOpNum;
}
public int getRightOpNum() {
return RightOpNum;
}
public char getOper() {
return oper;
}
public void generateBinaryOperation(char anOperator){
int left,right,result;
Random random=new Random();
left=random.nextInt(UPPER);
do{
right=random.nextInt(UPPER);
result=calculate(left,right);
}while(!(checkingCalculation(result)));
LeftOpNum=left;
RightOpNum=right;
oper=anOperator;
intAnswer=result;
}
public abstract boolean checkingCalculation(int anInteger);
public abstract int calculate(int left,int right);
// 直接打印算式字符串
public String toString() {
String s = "" + getLeftOpNum() + getOper() + getRightOpNum() + "=";
return s;
}
}
class AddOperation extends Equation{
AddOperation(){
generateBinaryOperation('+');
}
public boolean checkingCalculation(int anInteger){
return anInteger<=UPPER;
}
@Override
public int calculate(int left, int right) {
// TODO Auto-generated method stub
return left+right;
}
}
class SubOperation extends Equation{
SubOperation(){
generateBinaryOperation('-');
}
@Override
public boolean checkingCalculation(int anInteger) {
// TODO Auto-generated method stub
return anInteger>=LOWWER;
}
@Override
public int calculate(int left, int right) {
// TODO Auto-generated method stub
return left-right;
}
}
2.package mv;
import java.util.Random;
class Exercise {
Equation List[]=new Equation[200];
// 选择生成习题类型及数量
public void generateBinaryExercise(int operationCount, int opValue) {
Equation anOperation;
do {
anOperation = gerOperation(opValue);
} while (contains(anOperation));
List[operationCount] = anOperation;
}
//选择加法或减法
public Equation gerOperation(int opValue) {
if (opValue == 1) {
return new AddOperation();
}else
return new SubOperation();
}
//生成加法习题
public void generateAdditionOperation(int operationCount) {