口算系统

这是一个使用Java实现的口算系统,包括加法和减法运算。系统包含抽象类Equation用于生成运算表达式,子类AddOperation和SubOperation分别处理加法和减法。Exercise类用于生成习题,Login和PracticeGui类提供了用户界面,允许用户输入答案并进行统计。用户可以重新生成加法、减法或混合算式,系统会根据用户输入判断正误并显示统计信息。
摘要由CSDN通过智能技术生成



代码:

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) {

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值