diff --git a/src/main/java/com/ugsbo/entscheider/Entscheider.java b/src/main/java/com/ugsbo/entscheider/Entscheider.java new file mode 100644 index 0000000..8f2aebd --- /dev/null +++ b/src/main/java/com/ugsbo/entscheider/Entscheider.java @@ -0,0 +1,192 @@ + +/** + * + */ +package com.ugsbo.entscheider; + +import java.util.Scanner; +import java.util.*; + +/** + * @author bruec + * + */ +public class Entscheider { + + /** + * @param args + */ + public static void main(String[] args) { + System.out.println("Herzlich Willkommen!"); + String a = fragen(); + System.out.println(a); + if(a != "Na dann halt nicht. Tschüssi.") { + System.out.println("Auf Wiedersehen. Frag mich gerne nochmal wenn du mal wieder nicht weisst, ob du in die Vorlesung gehen solltest oder nicht."); + } + + } +//testbar + //Eingaben -> alter, lernen, gelb, apfel, mot, harry, fruehstueck, anzahl + public static String ergebnis(int alter, int lernen, int gelb, int apfel, int mot, int harry, int fruehstueck, int anzahl) { + int erg = (((alter + lernen + gelb) * apfel) / (mot + harry + fruehstueck)) - anzahl; + String hilfe = ""; + if (erg < 5) + hilfe = "Ich kann doch nicht fuer dich entscheiden, dass musst du schon selber wissen."; + if (erg >= 5 && erg < 15) + hilfe = "Naja, dann geh halt nach Hause und ruh dich aus."; + if (erg >= 15) + hilfe = "Jetzt wieder gehen? Dann bist du doch voellig umsonst aufgestanden. Geh einfach hin."; + + return hilfe; + } +//nicht testbar + public static String fragen() { + // Eingangsfrage + System.out.println( + "Du willst also wissen ob du in die Veranstaltung gehen sollst oder nicht? Gib 1 für Ja ein 0 für Nein."); + int a = getAnInteger(); + if (a == 1 || a == 0) { + if (a == 1) { + System.out.println("Dann werde ich dir jetzt ein paar Fragen stellen"); + } else { + return("Na dann halt nicht. Tschüssi."); + } + + } else { + a = pruefen(a); + if (a == 1) { + System.out.println("Dann werde ich dir jetzt ein paar Fragen stellen"); + } else { + return ("Na dann halt nicht. Tschüssi.") ; + } + + } + // zweite Frage + System.out.println("Wie alt bist du?"); + int alter = getAnInteger(); + if (alter > 0) { + System.out.println(alter); + } else { + while (alter <= 0) { + System.out.println("Versuches es nochmal. Du musst mindestens 1 sein."); + alter = getAnInteger(); + } + } + + // dritte Frage + System.out.println("Auf einer Skala von 1 bis 10 wie motiviert bist du?"); + int mot = getAnInteger(); + if (mot >= 1 && mot <= 10) { + System.out.println(mot); + } else { + mot = skalaTest(mot); + System.out.println(mot); + } + + // vierte Frage + System.out.println("Hast du gefrühstückt? Bei Ja bitte 1 und bei Nein bitte 0"); + int fruehstueck = getAnInteger(); + if (fruehstueck == 1 || fruehstueck == 0) { + System.out.println(fruehstueck); + } else { + fruehstueck = pruefen(fruehstueck); + System.out.println(fruehstueck); + } + + // fuenfte Frage + System.out.println("Hast du jemals ein Harry Potterbuch gelesen? Bei Ja bitte 1 und bei Nein bitte 0"); + int harry = getAnInteger(); + if (harry == 1 || harry == 0) { + System.out.println(harry); + } else { + harry = pruefen(harry); + System.out.println(harry); + } + + // sechste Frage + System.out.println("Wie viele Äpfel hast du heute schon gegessen?"); + int apfel = getAnInteger(); + if (apfel > 0) { + System.out.println(apfel); + } else { + while (apfel <= 0) { + System.out.println("Versuches es nochmal. Die Zahl muss positiv sein."); + apfel = getAnInteger(); + } + } + + // siebte Frage + System.out.println("Wie viele Veranstaltungen hattest du heute schon?"); + int anzahl = getAnInteger(); + if (anzahl > 0) { + System.out.println(anzahl); + } else { + while (anzahl <= 0) { + System.out.println("Versuches es nochmal. Die Zahl muss positiv sein."); + anzahl = getAnInteger(); + } + } + + // achte Frage + System.out.println("Was würdest du statt der Vorlesung machen? Lernen? Bei Ja bitte 1 und bei Nein bitte 0"); + int lernen = getAnInteger(); + if (lernen == 1 || lernen == 0) { + System.out.println(lernen); + } else { + lernen = pruefen(lernen); + System.out.println(lernen); + } + if (lernen == 1) + System.out.println("Wenn du das sagst, aber lueg dich doch bitte nicht selbst an."); + + // neunte Frage + System.out.println("Wuerdest du dir ein gelbes Auto kaufen? Bei Ja bitte 1 und bei Nein bitte 0"); + int gelb = getAnInteger(); + if (gelb == 1 || gelb == 0) { + System.out.println(gelb); + } else { + gelb = pruefen(gelb); + System.out.println(gelb); + } + + // Auswertung + + String antwort = ergebnis(alter, lernen, gelb, apfel, mot, harry, fruehstueck, anzahl); + return antwort; + + } +//nicht testbar + public static int skalaTest(int answer) { + System.out.println("Try again. Nur Werte zwischen 1 und 10 sind erlaubt."); + int b = getAnInteger(); + if (b >= 1 && b <= 10) { + return b; + } + skalaTest(b); + return -1; + } +//nicht testbar + public static int getAnInteger() { + Scanner in = new Scanner(System.in); + while (true) { + try { + return in.nextInt(); + } catch (InputMismatchException e) { + in.next(); + System.out.println("Das ist kein Integer. Try again."); + } + } + } + + //Nicht testbar + public static int pruefen(int answer) { + System.out.println("Try again. Nur 1 und 0 sind erlaubt."); + int b = getAnInteger(); + if (b == 1 || b == 0) { + return b; + } + pruefen(b); + return 1; + } + +} diff --git a/src/main/java/com/ugsbo/entscheider/package-info.java b/src/main/java/com/ugsbo/entscheider/package-info.java new file mode 100644 index 0000000..1d5b0b5 --- /dev/null +++ b/src/main/java/com/ugsbo/entscheider/package-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * @author bruec + * + */ +package com.ugsbo.entscheider; \ No newline at end of file diff --git a/src/test/java/com/ugsbo/entscheider/JUnitEntscheiderErgebnisTest.java b/src/test/java/com/ugsbo/entscheider/JUnitEntscheiderErgebnisTest.java new file mode 100644 index 0000000..0bb01ef --- /dev/null +++ b/src/test/java/com/ugsbo/entscheider/JUnitEntscheiderErgebnisTest.java @@ -0,0 +1,80 @@ +package com.ugsbo.entscheider; + +import static org.junit.Assert.*; + + +import org.junit.Assert; +import org.junit.Test; + +public class JUnitEntscheiderErgebnisTest { + + + //Testet den Fall Ergebnis ist zwischen 5 und 15 + + @Test + public void ergebnisZwischenFuenfUndFuenfzehn() { + //Eingabe der Werte zu den Fragen. Das erwartete Ergebnis zwischen 5 und 15 (jeweils inklusiv) + //deshalb muss Rückgabewert: "Naja, dann geh halt nach Hause und ruh dich aus." sein + int alter = 21; + int lernen = 1; + int gelb = 1; + int apfel = 3; + int mot = 2; + int harry = 1; + int fruehstueck = 1; + int anzahl = 4; + //erwarteter String + String erwartet = "Naja, dann geh halt nach Hause und ruh dich aus."; + //ausführen der Methode + String b = Entscheider.ergebnis(alter, lernen, gelb, apfel, mot, harry, fruehstueck, anzahl); + //stimmt es mit dem erwartetem überein? + assertEquals("Anwortstring",erwartet,b); + } + //Testet den Fall ergebnis ist größer 15 + @Test + public void ergebnisTest() { + //Eingabe der Werte zu den Fragen. Das erwartete Ergebnis ist größer 5 + //deshalb muss Rückgabewert: "Jetzt wieder gehen? Dann bist du doch voellig umsonst aufgestanden. Geh einfach hin." sein + int alter = 29; + int lernen = 0; + int gelb = 1; + int apfel = 3; + int mot = 2; + int harry = 0; + int fruehstueck = 1; + int anzahl = 2; + //erwarteter String + String erwartet = "Jetzt wieder gehen? Dann bist du doch voellig umsonst aufgestanden. Geh einfach hin."; + //ausführen der Methode + String c = Entscheider.ergebnis(alter, lernen, gelb, apfel, mot, harry, fruehstueck, anzahl); + //Stimmt Ergebnis + assertEquals("Anwortstring für größer 5",erwartet,c); + + } + //Testet den Fall ergebnis ist kleiner 5 + + @Test + public void ergebnisKleinerFuenf() { + //Eingabe der Werte zu den Fragen. Das erwartete Ergebnis ist kleiner 5 + //deshalb muss Rückgabewert: "Ich kann doch nicht fuer dich entscheiden, dass musst du schon selber wissen." sein + int alter = 1; + int lernen = 1; + int gelb = 1; + int apfel = 1; + int mot = 1; + int harry = 1; + int fruehstueck = 1; + int anzahl = 1; + //erwarteter String + String erwartet ="Ich kann doch nicht fuer dich entscheiden, dass musst du schon selber wissen."; + //ausführen der Methode + String a = Entscheider.ergebnis(alter, lernen, gelb, apfel, mot, harry, fruehstueck, anzahl); + //stimmt Ergebnis? + assertEquals("Anwortstring für kleiner 5",erwartet,a); + + } + + + + +} diff --git a/src/test/java/com/ugsbo/entscheider/package-info.java b/src/test/java/com/ugsbo/entscheider/package-info.java new file mode 100644 index 0000000..ba86aff --- /dev/null +++ b/src/test/java/com/ugsbo/entscheider/package-info.java @@ -0,0 +1 @@ +package com.ugsbo.entscheider; \ No newline at end of file