0

しなければならない

  • 配列を宣言/初期化して、答えが「B」、「D」、「A」、「A」、「C」、「A」、「B」、「」である12の質問の多肢選択式クイズに対する正解を保持します。 A'、' C'、' D'、' B'、' A'</ li>
  • forループを使用して、1人の生徒の回答を別の配列に読み込みます
  • クイズを「採点」し、以下を表示します。
    • 学生の名前
    • 小数第1位までのパーセンテージとしてのクイズスコア(例:12のうち7は58.3%を表示します)

その後

  • まず、プログラムの上部で、クラスに何人の生徒がいるかをユーザーに尋ねます
  • 各生徒の回答、「成績」クイズをループして入力し、各生徒の結果を表示します
  • すべての生徒が処理されたら、高得点と低得点の値、および平均クイズスコアをパーセンテージ(小数点以下第1位)で表示します。

プログラムは次のようになります。

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%

この配列を設定しましたが、forループを使用して実装する方法が本当にわかりません。

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];



}
}

これまでのところ助けてくれてありがとう、私はもう少しそれに取り組んできました、しかしそれは答えを入力した後に私にエラーを与えますこれは私が持っているものです

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++;

    }
    }
}

エラーメッセージは、スレッド「メイン」の例外です。java.lang.ArrayIndexOutOfBoundsException:12 at Lab4.main(Lab4.java:29)

それが何を意味するのか、それを修正する方法がわかりません。

4

1 に答える 1

0

アレイに関する簡単なチュートリアルへのジャンプです-> http://www.learn-java-tutorial.com/Arrays.cfm#.US09R-sjqy0

コメントで述べられているように、私たちはあなたのためにコードを書くつもりはありませんが、私はいくつかの有用なポインタを提供しようとします:

クラスに何人の生徒がいるかをユーザーに知らせたい場合は、これをクラスで教える必要があります。その入力を受け入れて、変数に格納します。

while各生徒のデータを受け入れるループを作成します。ループは、ユーザーが学生がいると述べた回数だけ実行する必要があります。

ループでは、すべての生徒のデータ、回答、名前などを受け入れます。

すべてのデータを収集したら、生徒の回答とキーを比較する必要があります。forこれは、ループまたはループを使用して行うことができwhileます。forループをお勧めします。正解または不正解の数に対応するために、ある種のカウンターを作成します。次に、ループの後で計算を行ってパーセンテージを取得します。

結果を印刷して、ループを再開します。

アレイに関するJavaドキュメント:http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Array.html

いくつかのクイック配列固有のポインタ:

配列にアクセスします。

String[] array = {"a", "b", "c", "d"}; //creates array
System.out.println( array[0] ); //prints out "a"
System.out.println( array.length ); //prints out "4", the number of elements in the array

お役に立てれば!

于 2013-02-26T22:59:07.147 に答える