我有一个驾驶执照测试程序,其中用户在主方法中输入答案,然后在一个单独的类中需要有一个方法来查看用户是否通过了一个方法来判断有多少是错的和正确的,并且一个方法会输入数字将错误的答案放入数组中,然后主要方法需要打印出每个方法的结果。我的问题是错误的问题编号数组。我相信我正确地创建了它,但我无法获得将其打印出来的主要方法。谢谢
public class DriverExam
{
static String[] correctAnswers={"b","d","a","a","c","a","b","a","c","d","b","c","d","a","d","c","c","b","d","a"};
static String[] userAnswers=new String[20];
//constructer
public DriverExam(String[] user)
{
userAnswers=user;
}
//method to see if you passed
public static boolean passed()
{
boolean pass=false;
int correctCount=0;
int incorrectCount=0;
for(int i=0;i<userAnswers.length;i++)
{
if(userAnswers[i].equals(correctAnswers[i]))
{
correctCount++;
}
else
{
incorrectCount++;
}
}
if(correctCount>14)
{pass=true;}
return pass;
}
//method to find number correct
public static int totalCorrect()
{
boolean pass=false;
int correctCount=0;
int incorrectCount=0;
for(int i=0;i<userAnswers.length;i++)
{
if(userAnswers[i].equals(correctAnswers[i]))
{
correctCount++;
}
else
{
incorrectCount++;
}
}
return correctCount;
}
//method to tell how many were not correct
public static int totalIncorrect()
{
boolean pass=false;
int correctCount=0;
int incorrectCount=0;
for(int i=0;i<userAnswers.length;i++)
{
if(userAnswers[i].equals(correctAnswers[i]))
{
correctCount++;
}
else
{
incorrectCount++;
}
}
return incorrectCount;
}
public static int[] questionsMissed()
{
boolean pass=false;
int correctCount=0;
int incorrectCount=0;
for(int i=0;i<userAnswers.length;i++)
{
if(userAnswers[i].equals(correctAnswers[i]))
{
correctCount++;
}
else
{
incorrectCount++;
}
}
int[] questionWrong=new int[incorrectCount];
for(int i=0;i<questionWrong.length;i++)
{
if(!userAnswers[i].equals(correctAnswers[i]))
{i=questionWrong[i];
}
}
return questionWrong;
}
}
import java.util.Scanner;
public class DriverExamDemo
{
public static void main(String[] args)
{
String[] userAnswers=new String[20];
String answer;
System.out.println("please enter the testee's answers as the correspond with the question number");
for(int i=0;i<userAnswers.length;i++)
{
Scanner input=new Scanner(System.in);
System.out.println("Q."+(i+1));
answer=input.next();
userAnswers[i]=answer;
}
// constructor to send the users answers
DriverExam exam1 = new DriverExam(userAnswers);
//Check passed boolean to see if the user passed or failed
if(DriverExam.passed())
System.out.println("you passed your driving exam");
else
System.out.println("you failed your driving exam");
//check how many answers were correct and incorrect
System.out.println("you answered "+DriverExam.totalCorrect()+" questions correctly");
System.out.println("you answered "+DriverExam.totalIncorrect()+" questions incorrectly");
int[] questionsWrong=DriverExam.questionsMissed();
for (int i=0;i<questionsWrong.length;i++)
{
System.out.println("you got question " +questionsWrong[i]+"incorrect");
}
}
}