我必须
- 声明/初始化一个数组以保存 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)
我不确定这意味着什么或如何解决它。