Aufgabe:
/**
* k,l oder h für den nächsten Zustand
* f für Übersicht über die Kommandos
* Schluss um das programm zu beenden
*/
import java.util.Scanner;
public class Handyautomat {
enum Zustand {
ShutdownModus,GesperrtDisplayAn,GesperrtDisplayAus,Entsperrt,Aus,Pin
}
public static void main(String[] args) {
String I;
Scanner eingabewert = new Scanner(System.in);
Zustand aktuellerZustand = Zustand.GesperrtDisplayAus;
int i = 1;
System.out.println("Drücke k,l oder h um in den nächsten Zustand zu kommen.");
do {
I = eingabewert.next();
if (I.equals("k")) {
switch(aktuellerZustand){
case GesperrtDisplayAn:
aktuellerZustand = Zustand.GesperrtDisplayAus;
System.out.println("Das Gerätedisplay ist angeschaltet.");
break;
case GesperrtDisplayAus:
aktuellerZustand = Zustand.GesperrtDisplayAn;
System.out.println("Das Gerätedisplay ist ausgeschaltet.");
break;
case ShutdownModus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
case Entsperrt:
aktuellerZustand = Zustand.GesperrtDisplayAus;
System.out.println("Das Gerätedisplay ist ausgeschaltet.");
break;
case Aus:
aktuellerZustand = Zustand.Aus;
System.out.println("Das Gerät ist ausgeschaltet.");
break;
case Pin:
aktuellerZustand = Zustand.GesperrtDisplayAus;
System.out.println("Das Gerätedisplay ist ausgeschaltet.");
break;
}
if (I.equals("l")) {
switch(aktuellerZustand){
case GesperrtDisplayAn:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
case GesperrtDisplayAus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
case ShutdownModus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("ShutdownModus ist geöffnet.");
break;
case Entsperrt:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("ShutdownModus ist geöffnet.");
break;
case Aus:
aktuellerZustand = Zustand.GesperrtDisplayAn;
System.out.println("Das Gerätedisplay ist angeschaltet.");
break;
case Pin:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
}
if (I.equals("h")) {
switch(aktuellerZustand){
case GesperrtDisplayAn:
aktuellerZustand = Zustand.Pin;
System.out.println("Pineingabe ist geöffnet.");
break;
case GesperrtDisplayAus:
aktuellerZustand = Zustand.GesperrtDisplayAn;
System.out.println("Das Gerätedisplay ist angeschaltet.");
break;
case ShutdownModus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("ShutdownModus ist geöffnet.");
break;
case Entsperrt:
aktuellerZustand = Zustand.Entsperrt;
System.out.println("Das Gerät wurde erfolgreich entsperrt.");
break;
case Aus:
aktuellerZustand = Zustand.Aus;
System.out.println("Das Geräte ist ausgeschaltet.");
break;
case Pin:
aktuellerZustand = Zustand.Entsperrt;
System.out.println("Das Gerät wurde erfolgreich entsperrt.");
break;
}
} // end of if
} // end of switch
} // end of if
if (I.equals("f")) {
System.out.println("k: Kurzer Druck auf An-Aus Knopf,l: Langer Druck auf An-Aus Knopf,h:Kurzer Duck auf Home-Button");
} // end of if
else {
System.out.println("Drücke k,l oder h um in den nächsten Zustand zu kommen.");
}
if (I.equals("Schluss")){
i = 3;
}
} while (i<2);
} // end of main
} // end of class Handyautomat
- Implementieren Sie ein Programm zu Ihrem Handy-Automaten (falls Sie keinen Automaten haben, wählen Sie eine der Lösungen, die wir am 12.10. durchgesprochen haben). Das Programm soll in einer Endlosschleife Kommandos von der Tastatur einlesen und entsprechend der Eingabe in einen neuen Zustand wechseln. Der neue Zustand soll jeweils als Text ausgegeben werden.
- Zusatzaufgabe: Implementieren Sie eine Hilfsfunktion, die bei entsprechender Eingabe (z.B. h) eine Übersicht aller Kommandos ausgibt.
/**
* k,l oder h für den nächsten Zustand
* f für Übersicht über die Kommandos
* Schluss um das programm zu beenden
*/
import java.util.Scanner;
public class Handyautomat {
enum Zustand {
ShutdownModus,GesperrtDisplayAn,GesperrtDisplayAus,Entsperrt,Aus,Pin
}
public static void main(String[] args) {
String I;
Scanner eingabewert = new Scanner(System.in);
Zustand aktuellerZustand = Zustand.GesperrtDisplayAus;
int i = 1;
System.out.println("Drücke k,l oder h um in den nächsten Zustand zu kommen.");
do {
I = eingabewert.next();
if (I.equals("k")) {
switch(aktuellerZustand){
case GesperrtDisplayAn:
aktuellerZustand = Zustand.GesperrtDisplayAus;
System.out.println("Das Gerätedisplay ist angeschaltet.");
break;
case GesperrtDisplayAus:
aktuellerZustand = Zustand.GesperrtDisplayAn;
System.out.println("Das Gerätedisplay ist ausgeschaltet.");
break;
case ShutdownModus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
case Entsperrt:
aktuellerZustand = Zustand.GesperrtDisplayAus;
System.out.println("Das Gerätedisplay ist ausgeschaltet.");
break;
case Aus:
aktuellerZustand = Zustand.Aus;
System.out.println("Das Gerät ist ausgeschaltet.");
break;
case Pin:
aktuellerZustand = Zustand.GesperrtDisplayAus;
System.out.println("Das Gerätedisplay ist ausgeschaltet.");
break;
}
if (I.equals("l")) {
switch(aktuellerZustand){
case GesperrtDisplayAn:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
case GesperrtDisplayAus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
case ShutdownModus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("ShutdownModus ist geöffnet.");
break;
case Entsperrt:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("ShutdownModus ist geöffnet.");
break;
case Aus:
aktuellerZustand = Zustand.GesperrtDisplayAn;
System.out.println("Das Gerätedisplay ist angeschaltet.");
break;
case Pin:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("Shutdown Modus ist geöffnet.");
break;
}
if (I.equals("h")) {
switch(aktuellerZustand){
case GesperrtDisplayAn:
aktuellerZustand = Zustand.Pin;
System.out.println("Pineingabe ist geöffnet.");
break;
case GesperrtDisplayAus:
aktuellerZustand = Zustand.GesperrtDisplayAn;
System.out.println("Das Gerätedisplay ist angeschaltet.");
break;
case ShutdownModus:
aktuellerZustand = Zustand.ShutdownModus;
System.out.println("ShutdownModus ist geöffnet.");
break;
case Entsperrt:
aktuellerZustand = Zustand.Entsperrt;
System.out.println("Das Gerät wurde erfolgreich entsperrt.");
break;
case Aus:
aktuellerZustand = Zustand.Aus;
System.out.println("Das Geräte ist ausgeschaltet.");
break;
case Pin:
aktuellerZustand = Zustand.Entsperrt;
System.out.println("Das Gerät wurde erfolgreich entsperrt.");
break;
}
} // end of if
} // end of switch
} // end of if
if (I.equals("f")) {
System.out.println("k: Kurzer Druck auf An-Aus Knopf,l: Langer Druck auf An-Aus Knopf,h:Kurzer Duck auf Home-Button");
} // end of if
else {
System.out.println("Drücke k,l oder h um in den nächsten Zustand zu kommen.");
}
if (I.equals("Schluss")){
i = 3;
}
} while (i<2);
} // end of main
} // end of class Handyautomat