grading ein Studenten-test basierend auf Benutzereingaben zu Antworten

Ich

  • Deklarieren/Initialisieren ein array zu halten, die richtigen Antworten zu einer Frage 12 multiple-choice-quiz, dessen
    Antworten sind: 'B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'A'
  • Lesen Sie die Antworten für einen einzelnen Schüler in ein anderes array mit einer for-Schleife
  • 'Grade' das quiz und Anzeige des folgenden:
    • Student Name
    • Quiz-Punktzahl in Prozent 1 dezimal (ex: 7 von 12 anzeigen würde 58,3%) der

dann

  • Erste, an der Spitze des Programms, bitten Sie den Benutzer, wie viele Studenten gibt es in der Klasse
  • Loop-through-Eingang und jeden Schüler die Antworten, "Grad" - quiz und zeigt das Ergebnis für jeden Schüler
  • Nach allen Studierenden bearbeitet wurden, zeigen die Werte von hohen und niedrigen scores und der durchschnittlichen Punktestand in Prozent (1 dezimale)

Programm sollte am Ende Aussehen wie:

How many students are in the class? 2
Enter name for Student 1: Bob
Enter quiz score answers: <allow user to input 12 answers>
Bob
66.7%
Enter name for Student 2: Fred
Enter quiz score answers: <allow user to input 12 answers>
Fred
91.7%
The high score is 11 and the low score is 8
Average is: 79.2%

Habe ich dieses array einrichten, aber ich weiß wirklich nicht, wie es zu implementieren, verwenden Sie die for-Schleifen.

import java.util.*;

public class Lab4 {
public static void main(String[] args){
    Scanner s= new Scanner(System.in);
    String name;

    char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
    char [] userAnswers = new char[answerKey.length];



}
}

Danke für die Hilfe so far Jungs,
Der ich gearbeitet habe, es ein bisschen mehr, aber sein gibt mir eine Fehlermeldung nach der Eingabe der Antworten
dies ist, was ich haben

import java.util.*;
import java.text.*;

public class Lab4 {
    public static void main(String[] args){
    Scanner s= new Scanner(System.in);
    String input;
    int students;
    int correctAnswers=0;

    char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
    char [] userAnswers = new char[answerKey.length];

        DecimalFormat df = new DecimalFormat("#0.0");

    System.out.print("how many students are in your class?");
    input = s.nextLine();
    students=Integer.parseInt(input);

    String [] name = new String[students];

    int j=1;
    while(students>=j)
    {
        System.out.print("Enter name of student" + j + ": ");
        name[j] = s.nextLine();

        System.out.print("Enter quiz score answers");
            userAnswers[answerKey.length] = s.next().charAt(0);

        for (int i = 0; i < userAnswers.length; ++i)
        {
            if(userAnswers[i]==answerKey[i]);
            correctAnswers++;
        }

        System.out.print((df.format(correctAnswers/answerKey.length)) + "%");
    j++;

    }
    }
}

Die Fehlermeldung Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12
zu Lab4.main(Lab4.java:29)

Ich bin mir nicht sicher, was es bedeutet oder wie es zu beheben.

  • Über das hinaus, was gegeben wurde, um Sie in Ihrer Zuordnung, was haben Sie getan?
  • der code unten ist, was ich getan habe, ich weiß, ich brauchen, um in for-Schleifen und den Bezug des arrays, aber ich kann nicht herausfinden, wie das zu tun. Ich war nicht in der Lage, um es für die Klasse Zeit, wo er Sprach über die Masse der array-Nutzung so bin ich ziemlich verloren
  • Stack-Überlauf ist nicht ein Weg, um Menschen, die schreiben Sie den code für Sie. Es ist eine Art zu Fragen, spezifische Fragen über die Sprache, kann nur erklärt werden durch erfahrene Programmierer. Dies ist die grundlegende java-von dem wir hier sprechen, nichts kompliziert.
  • ich verlange nicht, für jemanden zu schreiben, den code für mich, sondern nur um mir eine basis auf, was muss ich tun nächsten, um den richtigen Ausgang. ich habe gerade enthalten alles, was erforderlich war von mir nur so dass ich genügend Informationen, wie möglich. ich habe die letzten Stunden versucht zu schauen, die Dinge und ich habe erfolglos gewesen.
  • Sie können Schleife über jede Antwort, und bitte daher um eine zugehörige Antwort per Schleife über jedes element im array: for (int i = 0; i < userAnswers.length; ++i) { /* current right answer is answerKey[i]; you need to fill in userAnswers appropriately */ }
  • Ich danke Ihnen sehr dies tatsächlich klärt sich vieles auf.
  • Ich denke, diese Frage ist zulässig. Er verlangt für die Fehlersuche auf ein bestimmtes Thema und Hinweise, wie dieses problem anzugehen. Es ist nicht die beste Frage, aber ich bin mir nicht sicher, dass Sie es verdient, diese downvotes.
  • Vielleicht zeigen sich die FAQ einen neuen Benutzer und nicht als bash Ihnen auf den Kopf mit einem großen Stock

Schreibe einen Kommentar