根据用户输入的答案对学生进行评分

时间:2013-02-26 22:43:36

标签: java arrays for-loop user-input

我必须

  • 声明/初始化一个数组以保存12个问题多项选择测验的正确答案 答案是:'B','D','A','A','C','A','B','A','C','D','B','A'
  • 使用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++;

    }
    }
}
  

错误消息是线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:12       在Lab4.main(Lab4.java:29)

我不确定这意味着什么或如何解决它。

1 个答案:

答案 0 :(得分:0)

这是一个关于数组的快速教程的跳转 - &gt; 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

希望这有帮助!