Aufgabe 3 ausgeführt.

This commit is contained in:
schrom01 2021-11-16 17:31:01 +01:00
parent e7f050813a
commit cfbdaa25de
2 changed files with 52 additions and 45 deletions

View File

@ -7,46 +7,49 @@ import java.util.HashSet;
* @author tebe
* @version 1.0
*/
public class Befehlswort {
public enum Befehlswort {
// Ein HashSet mit den gueltigen Befehlswoertern als Klassenvariable
private static final HashSet<String> gueltigeBefehle = new HashSet<String>();
static {
gueltigeBefehle.add("gehe");
gueltigeBefehle.add("beenden");
gueltigeBefehle.add("hilfe");
UNBEKANNT("unbekannt"), GEHE("gehe"), HILFE("hilfe"), BEENDEN("beenden");
/*
Das Befehlswort als String
*/
private String befehl;
public static Befehlswort gibBefehlswort(String wort) {
for(Befehlswort befehlswort : Befehlswort.values()){
if(befehlswort.getBefehl().equals(wort)) {
return befehlswort;
}
}
return null;
}
/**
* Konstruktor - initialisiere die Befehlswörter.
*/
public Befehlswort()
{
// tut momentan nichts
}
/**
* Pruefe, ob eine gegebene Zeichenkette ein gueltiger
* Befehl ist.
*
* @return 'true', wenn die gegebene Zeichenkette ein gueltiger
* Befehl ist, 'false' sonst.
*/
public static boolean istBefehl(String eingabe)
{
return gueltigeBefehle.contains(eingabe);
}
/**
* Gibt die akzeptierten Befehlsworte als Text zurueck.
*
* @return Die akzeptierten Befehlsworte als Text
*/
public static String gibBefehlsworteAlsText() {
String text = "";
for (String befehl : gueltigeBefehle) {
text = text + befehl + " ";
String string = "";
for(Befehlswort befehlswort : Befehlswort.values()){
string += befehlswort.getBefehl() + " ";
}
return text;
return string;
}
/**
* Konstruktor - Speichere das Befehlswort als String
* @param befehlswort
*/
Befehlswort(String befehlswort)
{
this.befehl = befehlswort;
}
/**
* Gibt das Datenfeld befehl zurueck.
*
* @return Das Befehlswort als String
*/
public String getBefehl() {
return befehl;
}
}

View File

@ -1,3 +1,6 @@
import java.util.Arrays;
import java.util.List;
/**
* Diese Klasse verarbeitet Befehle vom Typ
* {@link Befehl Befehl} und löst die dazu
@ -16,15 +19,16 @@ public class Kontroller {
*/
public boolean verarbeiteBefehl(Befehl befehl) {
boolean macheWeiter = true;
String befehlswort = befehl.gibBefehlswort();
if (Befehlswort.istBefehl(befehlswort)) {
if (befehlswort.equals("gehe")) {
System.out.println("Befehl GEHE " + befehl.gibZweitesWort() + " wird ausgefuehrt");
} else if (befehlswort.equals("hilfe")) {
System.out.println("Gueltige Befehle: "
+ Befehlswort.gibBefehlsworteAlsText());
} else if (befehlswort.equals("beenden")) {
String befehlswortString = befehl.gibBefehlswort();
if (Arrays.asList(Befehlswort.gibBefehlsworteAlsText().split(" ")).contains(befehlswortString)) {
if (befehlswortString.equals(Befehlswort.GEHE.getBefehl())) {
System.out.println("Befehl LAUFE " + befehl.gibZweitesWort() + " wird ausgefuehrt");
} else if (befehlswortString.equals(Befehlswort.HILFE.getBefehl())) {
System.out.println("Gueltige Befehle: ");
for(Befehlswort befehlswort : Befehlswort.values()) {
System.out.println(befehlswort.getBefehl());
}
} else if (befehlswortString.equals(Befehlswort.BEENDEN.getBefehl())) {
System.out.println("Befehl BEENDEN wird ausgefuehrt.");
macheWeiter = false;
} else {