Browse Source

Merge commit '59932844fe7d26c3e762a6914a074ff1ae997f48' into HEAD

pullrequest
Christian Baltzer 5 years ago
parent
commit
4f74f6248b
  1. 192
      src/main/java/com/ugsbo/entscheider/Entscheider.java
  2. 8
      src/main/java/com/ugsbo/entscheider/package-info.java
  3. 80
      src/test/java/com/ugsbo/entscheider/JUnitEntscheiderErgebnisTest.java
  4. 1
      src/test/java/com/ugsbo/entscheider/package-info.java

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

8
src/main/java/com/ugsbo/entscheider/package-info.java

@ -0,0 +1,8 @@
/**
*
*/
/**
* @author bruec
*
*/
package com.ugsbo.entscheider;

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

1
src/test/java/com/ugsbo/entscheider/package-info.java

@ -0,0 +1 @@
package com.ugsbo.entscheider;
Loading…
Cancel
Save