programme quiz implémenté en java [dupliquer]


Cette question a déjà une réponse ici:

J'écris un programme pour implémenter "quiz" en 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();

    }

Ici, dans les options de réglage, je reçois des erreurs dans la boucle while lors de la mise en œuvre du programme."erreurs d'exécution lancées comme 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() {

    }          

}

Ici, vous écririez vos questions à un ArrayList et les afficheriez dans une deuxième question.

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);
        }
    }
}

Dans le menu, si vous choisissez 1, vous obtenez ajouter des questions ou tapez 2, vous pouvez obtenir une liste de questions. Je travaille toujours sur des questions d'impression.

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();
        }

    }
} 
Author: egor.zhdan, 2016-08-24

1 answers

C'est une mauvaise mise en œuvre.

Vous avez des appels System.out pour interagir avec un utilisateur dans votre classe Question.

Une meilleure idée serait de déplacer les actions de l'utilisateur dans une classe pilote.

Vous ne suivez pas les normes de codage Java ou les normes JavaBean. Vous allez sûrement venir à la douleur sur les deux. Devrait être setCorrectanswer(), pas set_correctanswer().

 0
Author: duffymo, 2016-08-24 15:17:52