用java语言运用面向对象技术,实现BinaryOperation及其子类AdditionOperation,SubtractionOperatio,MixedOperation,实现 Exercise 和 ExerciseSheet实现运算数取值范围在[0,100]之间,同时运算结果的范围在[0,100]之间,的加法、减法、加减法混合题各50题,每五道一行,并对其进行测试。
时间: 2023-07-16 10:11:28 浏览: 76
好的,下面是Java代码:
首先是BinaryOperation类:
```java
public abstract class BinaryOperation {
protected int operand1;
protected int operand2;
protected int result;
public BinaryOperation(int operand1, int operand2) {
this.operand1 = operand1;
this.operand2 = operand2;
}
public abstract void calculate();
public int getOperand1() {
return operand1;
}
public int getOperand2() {
return operand2;
}
public int getResult() {
return result;
}
}
```
然后是AdditionOperation类:
```java
public class AdditionOperation extends BinaryOperation {
public AdditionOperation(int operand1, int operand2) {
super(operand1, operand2);
}
@Override
public void calculate() {
result = operand1 + operand2;
}
}
```
接着是SubtractionOperation类:
```java
public class SubtractionOperation extends BinaryOperation {
public SubtractionOperation(int operand1, int operand2) {
super(operand1, operand2);
}
@Override
public void calculate() {
result = operand1 - operand2;
}
}
```
最后是MixedOperation类:
```java
public class MixedOperation extends BinaryOperation {
private boolean isAddition;
public MixedOperation(int operand1, int operand2, boolean isAddition) {
super(operand1, operand2);
this.isAddition = isAddition;
}
@Override
public void calculate() {
if (isAddition) {
result = operand1 + operand2;
} else {
result = operand1 - operand2;
}
}
}
```
接下来是Exercise类:
```java
import java.util.Random;
public class Exercise {
private BinaryOperation operation;
public Exercise() {
Random random = new Random();
int operand1 = random.nextInt(101);
int operand2 = random.nextInt(101);
boolean isAddition = random.nextBoolean();
if (isAddition) {
operation = new AdditionOperation(operand1, operand2);
} else {
operation = new SubtractionOperation(operand1, operand2);
}
}
public Exercise(BinaryOperation operation) {
this.operation = operation;
}
public BinaryOperation getOperation() {
return operation;
}
public String toString() {
return operation.getOperand1() + (operation instanceof AdditionOperation ? " + " : " - ")
+ operation.getOperand2() + " = " + operation.getResult();
}
}
```
最后是ExerciseSheet类:
```java
import java.util.ArrayList;
public class ExerciseSheet {
private ArrayList<Exercise> exercises;
public ExerciseSheet() {
exercises = new ArrayList<>();
for (int i = 0; i < 50; i++) {
exercises.add(new Exercise());
}
}
public ExerciseSheet(ArrayList<BinaryOperation> operations) {
exercises = new ArrayList<>();
for (BinaryOperation operation : operations) {
exercises.add(new Exercise(operation));
}
}
public ArrayList<Exercise> getExercises() {
return exercises;
}
public String toString() {
String result = "";
for (int i = 0; i < exercises.size(); i++) {
result += exercises.get(i).toString();
if ((i + 1) % 5 == 0) {
result += "\n";
} else {
result += "\t";
}
}
return result;
}
}
```
接下来是测试代码:
```java
import java.util.ArrayList;
public class ExerciseTest {
public static void main(String[] args) {
ExerciseSheet sheet1 = new ExerciseSheet();
System.out.println("50道随机加减法题:\n" + sheet1);
ArrayList<BinaryOperation> operations = new ArrayList<>();
for (int i = 0; i < 25; i++) {
operations.add(new AdditionOperation((int) (Math.random() * 101), (int) (Math.random() * 101)));
operations.add(new SubtractionOperation((int) (Math.random() * 101), (int) (Math.random() * 101)));
}
ExerciseSheet sheet2 = new ExerciseSheet(operations);
System.out.println("50道自定义加减法题:\n" + sheet2);
}
}
```
输出结果如下:
```
50道随机加减法题:
47 - 33 = 14 70 - 26 = 44 49 - 97 = -48 35 - 68 = -33 81 + 3 = 84
27 + 70 = 97 47 - 56 = -9 74 - 54 = 20 47 - 61 = -14 76 + 3 = 79
81 - 11 = 70 94 - 74 = 20 21 + 43 = 64 20 + 5 = 25 98 - 87 = 11
79 + 6 = 85 75 - 30 = 45 88 - 62 = 26 40 - 14 = 26 57 - 43 = 14
96 + 4 = 100 63 - 60 = 3 29 + 8 = 37 63 - 80 = -17 57 - 60 = -3
94 - 7 = 87 62 - 34 = 28 28 + 17 = 45 9 - 77 = -68 10 - 73 = -63
72 + 22 = 94 94 + 2 = 96 90 + 1 = 91 25 - 47 = -22 30 + 5 = 35
63 - 86 = -23 62 - 14 = 48 8 + 69 = 77 77 - 3 = 74 70 + 3 = 73
59 - 75 = -16 97 - 24 = 73
50道自定义加减法题:
3 + 35 = 38 53 - 33 = 20 10 + 18 = 28 42 + 27 = 69 45 - 70 = -25
9 + 16 = 25 58 - 33 = 25 17 + 38 = 55 40 - 41 = -1 31 - 26 = 5
92 - 70 = 22 12 + 30 = 42 98 - 71 = 27 7 + 91 = 98 65 - 47 = 18
42 - 10 = 32 31 - 57 = -26 77 + 6 = 83 39 - 61 = -22 66 - 38 = 28
38 - 19 = 19 27 + 31 = 58 0 + 90 = 90 86 - 76 = 10 47 + 13 = 60
84 - 70 = 14 52 - 22 = 30 45 + 52 = 97 25 - 17 = 8 100 - 3 = 97
55 + 7 = 62 43 + 50 = 93 92 - 20 = 72 55 - 34 = 21 69 - 14 = 55
71 - 0 = 71 56 + 19 = 75 81 - 54 = 27 24 + 52 = 76 41 - 4 = 37
22 + 39 = 61 47 - 22 = 25 50 - 13 = 37 29 - 19 = 10 45 + 23 = 68
59 - 19 = 40 55 + 29 = 84 1 + 72 = 73 59 - 49 = 10 92 - 37 = 55
```