我正在编写一个用Java8实现"quiz“的程序
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 NullPointerExceptions"
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();
}
}
} 发布于 2016-08-24 23:17:53
这是一个糟糕的实现。
您可以在Question类中使用System.out调用与用户进行交互。
一个更好的想法是将用户操作移出到driver类中。
您没有遵循Java编码标准或JavaBean标准。你肯定会为这两件事感到悲哀的。应该是setCorrectanswer(),而不是set_correctanswer()。
https://stackoverflow.com/questions/39127130
复制相似问题