我正在编写一个程序来实施"测验"在Java 8中
import java.util.Scanner;
import java.util.*;
class Question {
String question;
int no;
HashMap<Integer, String> options;
String correctanswer;
public static void q_no() {
System.out.println("enter a question no");
int num;
Scanner no = new Scanner(System.in);
num = no.nextInt();
}
public static void set_question(){
System.out.println("enter aquestion");
Scanner f = new Scanner(System.in);
String question = f.nextLine();
}
在设置选项时,我在实施程序时遇到while
循环错误。"runtime errors thrown as NullPointerException
s"
public void set_options() {
System.out.println("enter options");
int count = 1;
String q;
Scanner str = new Scanner(System.in);
while (count < 5) {
System.out.print("set option" + count);
q = str.nextLine();
options.put(count, q);
count++;
}
}
public void set_correctanswer() {
System.out.println("enter correct answer");
Scanner d = new Scanner(System.in);
String ans = d.nextLine();
}
public static void marks() {
}
}
在这里,您可以将问题写入ArrayList
并在第二个问题中显示。
class Quiz {
ArrayList<Question> list = new ArrayList<>();
public ArrayList<Question> adding(Question q){
list.add(q);
return list;
}
public void show() {
int g = list.size();
int count = 0;
while (count < g) {
list.get(count);
}
}
}
在菜单中,如果您选择1,则可以添加问题或输入2,您可以获得问题列表。我还在努力打印问题。
class Menu {
public static void main(String[] args) {
System.out.println("enter 1 for adding questions");
Scanner input = new Scanner(System.in);
int g;
g = input.nextInt();
if (g == 1) {
System.out.println("how many questions do you add");
int number;
Scanner b = new Scanner(System.in);
Quiz programming = new Quiz();
number = b.nextInt();
int count = 0;
while (count < number) {
Question q1 = new Question();
q1.q_no();
q1.set_question();
q1.set_options();
q1.set_correctanswer();
programming.adding(q1);
}
} else if(g == 2){
Quiz programming = new Quiz();
programming.show();
}
}
}
答案 0 :(得分:0)
这是一个糟糕的实现。
您需要System.out
次来与Question
课程内的用户进行互动。
更好的想法是将用户操作移到驱动程序类中。
您不遵循Java编码标准或JavaBean标准。你肯定会对两者感到悲痛。应该是setCorrectanswer()
,而不是set_correctanswer()
。