0

我必须

  • 声明/初始化一个数组以保存 12 个问题的多项选择测验的正确答案,其答案是:'B'、'D'、'A'、'A'、'C'、'A'、'B'、' A'、'C'、'D'、'B'、'A'</li>
  • 使用 for 循环将单个学生的答案读入另一个数组
  • “评分”测验并显示以下内容:
    • 学生姓名
    • 测验分数作为百分比到小数点后 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++;

    }
    }
}

错误消息是 Exception in thread "main" 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 回答