Quiz - Gestaltung

Status
Nicht offen für weitere Antworten.

kulturfenster

Bekanntes Mitglied
Guten Abend,
Ich würde gerne ein kleines Quiz programmieren? Ist eigentlich alles schon getan, nur frage ich mich, wie man es am besten gestalten sollte. Reichen 2 Klassen, eine für die Fragen und eine mit der Main-Methode?

Hier mein Quiz:

Code:
import java.util.Scanner;

public class quiztester {

	public static void main(String[] args) {
		
		int fehler = 0;
		Scanner in = new Scanner(System.in);
		Quiz quiz = new Quiz();

		//Frage 1
		System.out.println("Welche Hautfarbe trägt Micheal Jackson?");
		System.out.println("1) schwarz");
		System.out.println("2) weiss");
		System.out.println("3) rot");
		
		int eingabe1 = in.nextInt();
		
		System.out.println(quiz.quizFrage1(eingabe1));
		// Fehlermessung
		if (quiz.quizFrage1(eingabe1).equals("falsch"))
			fehler++;
		
		//Frage 2
		System.out.println("Was frisst die Kuh?");
		System.out.println("1) Milch");
		System.out.println("2) Dreck");
		System.out.println("3) Gras");
		
		int eingabe2 = in.nextInt();
		
		System.out.println(quiz.quizFrage2(eingabe2));
		
		// Fehlermessung
		if (quiz.quizFrage2(eingabe2).equals("falsch"))
			fehler++;
		System.out.println("Du hast " + fehler + " Fehler gemacht.");
	}
}
Code:
public class Quiz {
	
	public Quiz()
	{

	}
	
	public String quizFrage1(int eingabe1)
	{
		String antwort1;
		
		if (eingabe1 == 1){
			antwort1 = "falsch";
		}
		else if (eingabe1 == 2){
			antwort1 = "richtig";
		}
		else if (eingabe1 == 3){
			antwort1 = "falsch";
		}
		else
			antwort1 = "nur 1,2 oder 3 erlaubt";
		
		return(antwort1);
	}
	
	public String quizFrage2(int eingabe2)
	{
		String antwort2;
		
		if (eingabe2 == 1){
			antwort2 = "falsch";
		}
		else if (eingabe2 == 2){
			antwort2 = "falsch";
		}
		else if (eingabe2 == 3){
			antwort2 = "richtig";
		}
		else
			antwort2 = "nur 1,2 oder 3 erlaubt";
		
		return(antwort2);
	}
	}
 

Redfrettchen

Bekanntes Mitglied
Hi,
also meines Erachtens nach reicht das nicht aus. Du hast das Quiz ja praktisch hardgecoded (<- Anglizismenalarm! ^^). Versuch stärker objektorientiert zu denken: Fragen als Objekte zu modellieren wär zum Beispiel ein guter Anfang.
 
G

Gast

Gast
switch würde das ganze if elseifelse if else bestimmt etwas leserlicher machen.

Wie Redfrettchen schon schrieb.
Es wäre evtl. sinnvoll ein Objekt Frage zu erstellen mit
+FrageNR:int //2
+DerFrage:String //Was trinkt die Kuh
+Antwort1:String //Milch
+Antwort2:String //Wasser
+Antwort3:String //Wein
+Richtig:int //2

Zudem If - Anweisungen sollten immer, auch einzeilige, geklammert werden.

Dein Quiz zeigt bei 2 vermeintlichen Falschantworten(2 * etwas anderes als 1, 2 oder 3) auch eine Fehlerzahl von null Fehlern an. Das ist bestimmt nicht erwünscht.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben