感觉完全没有头绪,,新人求指点,,;题目是随机生成五十道100以内算术题;
所谓面向对象方式重新实现是要如何做呢?
package calculate;
public class Calculate {
public static void main(String[] args) {
// TODO code application logic here
Calculate caculate = new Calculate();
int count=0;
int[] result = new int[50];
for(int i=0;i<50;i++){
int x=(int)(Math.random()*2);//设置随机0,1变量
int first=(int)(Math.random()*100);//设置随机0-100变量
int second=(int)(Math.random()*100);
if(first+second>100||first-second<0){//如果结果大于一百或小于零则跳过
i--;
continue;
}
else{
if(x==0)
caculate.addition(i,first,second,result);//调用加法
else
caculate.subtraction(i,first,second,result);//调用减法
count++;
if(count%5==0) System.out.println("\n");//每五题换行
}
}
System.out.println("习题答案");
for(int i=0;i<50;i++){
System.out.print("("+(i+1)+")"+": " + result[i]+" ");
if((i+1)%10==0) System.out.println("\n");
}
}
//加法
public void addition(int j,int a,int b,int[] result){
System.out.print("("+(j+1)+")"+": "+a+" + "+b+" = ");
result[j] = a + b;
}
//减法
public void subtraction(int k,int m,int n,int[] result){
System.out.print("("+(k+1)+")"+": "+m+" - "+n+" = ");
result[k] = m - n;
}
}
import java.util.Random;
public class Equation {
private int firstNum;
private String operator;
private int lastNum;
private int answer;
public Equation(){
Random random = new Random();
this.firstNum = random.nextInt(100);
this.lastNum = random.nextInt(100);
operator = random.nextInt(2)==0?"+":"-";//可以扩展乘除改成4个然后用switch判断
if(operator.equals("+")){
answer = firstNum + lastNum;
}else{
answer = firstNum - lastNum;
}
}
public int getAnswer() {
return answer;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return String.format("%-3s%-2s%-3s%-7s", this.firstNum,this.operator,this.lastNum,"=");
}
}
public class Calculate {
/**
* @param args
*/
public static void main(String[] args) {
// TODO code application logic here
List<Integer> answerList = new ArrayList<Integer>();
answerList.add(0);
for (int i = 1; i <= 50; i++) {
Equation equation = new Equation();
String index = ((i<10)?"0"+i:i+"");
System.out.print("(" + index + "): " + equation.toString());
answerList.add(equation.getAnswer());
if (i % 5 == 0) {
System.out.println();
}
}
System.out.println("习题答案:");
for (int i = 1; i <= 50; i++) {
String index = ((i<10)?"0"+i:i+"");
System.out.print(String.format("%-7s%-5s", "(" + index + "): ",answerList.get(i)));
if (i % 5 == 0) {
System.out.println();
}
}
}
}