首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用java实现的测验程序

用java实现的测验程序
EN

Stack Overflow用户
提问于 2016-08-24 23:12:52
回答 1查看 1K关注 0票数 0

我正在编写一个用Java8实现"quiz“的程序

代码语言:javascript
运行
复制
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"

代码语言:javascript
运行
复制
    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并在第二个问题中显示它们。

代码语言:javascript
运行
复制
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,你会得到一个问题列表。我还在研究打印问题。

代码语言:javascript
运行
复制
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();
        }

    }
} 
EN

回答 1

Stack Overflow用户

发布于 2016-08-24 23:17:53

这是一个糟糕的实现。

您可以在Question类中使用System.out调用与用户进行交互。

一个更好的想法是将用户操作移出到driver类中。

您没有遵循Java编码标准或JavaBean标准。你肯定会为这两件事感到悲哀的。应该是setCorrectanswer(),而不是set_correctanswer()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39127130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档