如果您需要任何解釋,請隨時詢問。 EquationsAndAnswers類的目標是生成8個數組,4個字符串類型和4個雙精度類型,並使用加法方程填充它們,然後爲每個基本數學運算符回答等等。然後,從這8個陣列中,應該從四個字符串類型方程陣列的任何一箇中隨機選擇一個方程。選擇隨機方程和相應的答案寫入後,它將它們寫入文件(方程式.txt)。 我的問題是,我稱之爲從Menu類的writeBoth方法後,equations.txt文件看起來像這樣:寫入文件時,它會寫入相同的整數而不是不同的整數
6 + 10
6 + 10
8 - 9
8 - 9
6 + 10
8 - 9
6 + 10
,而不是像這樣:
1+2
3-2
4*5
10÷2
我的類菜單:
public class Menu {
public static boolean additionBool = true;
public static boolean subtractionBool = true;
public static boolean multiplicationBool = true;
public static boolean divisionBool = true;
public static boolean doubleDigitBool = false;
new EquationsAndAnswers().writeBoth();
}
我班EquationsAndAnswers:
import java.util.Random;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class EquationsAndAnswers {
/*Random Generators*/
Random singleDigitNaturalGen = new Random();
Random randomEquationPicker = new Random();
Random doubleDigitNaturalGen = new Random();
public void writeBoth(){
/*Declaration of Four Basic Mathematic Operation Equation Arrays and Corresponding Answers*/
String additionArrayEquation[] = new String[100];
int additionArrayAnswers[] = new int[100];
String subtractionArrayEquation[] = new String[100];
int subtractionArrayAnswers[] = new int[100];
String multiplicationArrayEquation[] = new String[100];
int multiplicationArrayAnswers[] = new int[100];
String divisionArrayEquation[] = new String[100];
double divisionArrayAnswers[] = new double[100];
String assortedEquations[] = new String[100];
double assortedAnswers[] = new double[100];
/*Population of Basic Operation Equation Arrays*/
/*Population of Addition Equation and Answer Arrays*/
for(int additionArrayGenerationX = 0; additionArrayGenerationX < additionArrayEquation.length; additionArrayGenerationX++){
int tempAdditionY = singleDigitNaturalGen.nextInt(11), tempAdditionX = singleDigitNaturalGen.nextInt(11);
int answer = tempAdditionY + tempAdditionX;
String equation = (tempAdditionY + " + " + tempAdditionX);
additionArrayEquation[additionArrayGenerationX] = equation;
additionArrayAnswers[additionArrayGenerationX] = answer;
}
/*Population of Subtraction Equation and Answer Arrays*/
for(int subtractionArrayGenerationX = 0; subtractionArrayGenerationX < subtractionArrayEquation.length; subtractionArrayGenerationX++){
int tempSubtractionY = singleDigitNaturalGen.nextInt(11), tempSubtractionX = singleDigitNaturalGen.nextInt(11);
int answer = tempSubtractionY - tempSubtractionX;
String equation = (tempSubtractionY + " - " + tempSubtractionX);
subtractionArrayEquation[subtractionArrayGenerationX] = equation;
subtractionArrayAnswers[subtractionArrayGenerationX] = answer;
}
/*Population of Multiplication Equation and Answer Arrays*/
for(int multiplicationArrayGenerationX = 0; multiplicationArrayGenerationX < multiplicationArrayEquation.length; multiplicationArrayGenerationX++){
int tempMultiplicationY = singleDigitNaturalGen.nextInt(11), tempMultiplicationX = singleDigitNaturalGen.nextInt(11);
int answer = tempMultiplicationY*tempMultiplicationX;
String equation = "";
multiplicationArrayEquation[multiplicationArrayGenerationX] = equation;
multiplicationArrayAnswers[multiplicationArrayGenerationX] = answer;
}
/*Population of Division Equation and Answer Arrays*/
for(int divisionArrayGenerationX = 0; divisionArrayGenerationX < divisionArrayEquation.length; divisionArrayGenerationX++){
int tempDivisionY = singleDigitNaturalGen.nextInt(11), tempDivisionX = singleDigitNaturalGen.nextInt(11);
double answer = ((double)tempDivisionY/(double)tempDivisionX);
String equation = "";
divisionArrayEquation[divisionArrayGenerationX] = equation;
divisionArrayAnswers[divisionArrayGenerationX] = answer;
}
/*Deciding on Equations to be displayed.*/
int i = 0;
System.out.println(additionArrayEquation[0]);//dev
/*This puts the equations in a random order in the assortedEquations array, in preparation to be written to the Equations.txt file*/
for(int epsilon = 0; epsilon < assortedEquations.length; epsilon++){
int equationType = randomEquationPicker.nextInt(4);
if(equationType == 0){
if(Menu.additionBool = true){
assortedEquations[epsilon] = additionArrayEquation[i];
assortedAnswers[epsilon] = additionArrayAnswers[i];
}
else{
assortedEquations[epsilon] = "Bonus: Enter 0";
}
}
else if(equationType == 1){
if(Menu.subtractionBool = true){
assortedEquations[epsilon] = subtractionArrayEquation[i];
assortedAnswers[epsilon] = subtractionArrayAnswers[i];
}
else{
assortedEquations[epsilon] = "Bonus: Enter 0";
}
}
else if(equationType == 2){
if(Menu.multiplicationBool = true){
assortedEquations[epsilon] = multiplicationArrayEquation[i];
assortedAnswers[epsilon] = multiplicationArrayAnswers[i];
}
else{
assortedEquations[epsilon] = "Bonus: Enter 0";
}
}
else{
if(Menu.divisionBool = true){
assortedEquations[epsilon] = divisionArrayEquation[i];
assortedAnswers[epsilon] = divisionArrayAnswers[i];
}
else{
assortedEquations[epsilon] = "Bonus: Enter 0";
}
}
}
/*Writing each equation to the file.*/
try {
BufferedWriter writeEquation = new BufferedWriter(new FileWriter("Equations.txt"));
BufferedWriter writeAnswer = new BufferedWriter(new FileWriter("Answers.txt"));
for(int theta = 0; theta < assortedEquations.length; theta++){
writeEquation.write(assortedEquations[theta]+ "\n");
writeAnswer.write(assortedAnswers[theta] + "\n");
}
writeEquation.close();
writeAnswer.close();
} catch (IOException e) {JOptionPane.showMessageDialog(null, "Whoops, there seems to have been an error. Sorry about that.");}
}
}
'「如果你需要任何解釋,請隨時問...」「 - 是的,請您解釋一下代碼和你的問題。細節確實很重要。 –
我加了一些關於我的代碼的更多細節,我無法更好地解釋這個問題,因爲我不知道爲什麼我遇到它。抱歉。 –
我將刪除我的反對附加信息,希望你很快會得到一個體面的答案,但就我而言,我會等待更多的信息,包括更詳細的解釋你當前的代碼,包括什麼方法應該這樣做。還有什麼您嘗試調試代碼,包括使用調試器,顯示你? –