Initial commit of the source files.
This commit is contained in:
parent
9f3b8225f9
commit
3a0503be12
|
@ -0,0 +1,23 @@
|
|||
/**
|
||||
* Diese Klasse modelliert eine Brieftasche.
|
||||
*
|
||||
* @author tebe
|
||||
*
|
||||
*/
|
||||
public class Brieftasche {
|
||||
private int geld = 0;
|
||||
|
||||
/**
|
||||
* @return Der Geldbetrag in der Brieftasche
|
||||
*/
|
||||
public int getGeld() {
|
||||
return geld;
|
||||
}
|
||||
/**
|
||||
* Legt den Geldbetrag in der Brieftasche fest
|
||||
* @param geld Der Geldbetrag
|
||||
*/
|
||||
public void setGeld(int geld) {
|
||||
this.geld = geld;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* Diese Klasse modelliert eine Person mit einer
|
||||
* Brieftasche.
|
||||
*
|
||||
* @author tebe
|
||||
*
|
||||
*/
|
||||
public class Person {
|
||||
private final Brieftasche brieftasche = new Brieftasche();
|
||||
|
||||
/**
|
||||
* @return Die Brieftasche
|
||||
*/
|
||||
public Brieftasche getBrieftasche() {
|
||||
return brieftasche;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
/**
|
||||
* Diese Klasse modelliert eine Zahlstation, wo Personen
|
||||
* eine Gebuehr zahlen muessen, um passieren zu koennen.
|
||||
* Die Bezahlstation schaltet eine Ampel passend zum
|
||||
* geschehen. Anfaenglich steht die Ampel auf Rot.
|
||||
*
|
||||
* @author tebe
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class Zahlstation {
|
||||
private int preis = 150;
|
||||
//Moeglichen Zustaende: 0 => Gruen, 1 => Orange, 2 => Rot
|
||||
private int ampelzustand = 2;
|
||||
|
||||
/**
|
||||
* Laesst die spezifizierte Person passieren, falls Sie die
|
||||
* geforderte Gebuehr bezahlen kann.
|
||||
* @param person Die Person, die passieren will
|
||||
* @return true, falls die Person passieren konnte
|
||||
*/
|
||||
public boolean passieren(Person person) {
|
||||
boolean passieren = kannPassieren(person);
|
||||
if (passieren) {
|
||||
person.getBrieftasche().setGeld(
|
||||
person.getBrieftasche().getGeld() - preis);
|
||||
System.out.println("Person hat bezahlt.");
|
||||
zustandWechseln(0);
|
||||
System.out.println("Person laeuft durch.");
|
||||
zustandWechseln(2);
|
||||
}
|
||||
return passieren;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft, ob die Person passieren kann
|
||||
* @param person Die Person, die passieren will
|
||||
* @return true, wenn die Person passieren kann
|
||||
*/
|
||||
private boolean kannPassieren(Person person) {
|
||||
return person.getBrieftasche().getGeld() > preis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuehrt Zustandswechsel der Ampel durch.
|
||||
* Moeglichen Zustaende: 0 => Gruen, 1 => Orange, 2 => Rot
|
||||
*
|
||||
* @param neuerZustand
|
||||
*/
|
||||
private void zustandWechseln(int neuerZustand) {
|
||||
if (ampelzustand == 0) {
|
||||
switch (neuerZustand) {
|
||||
case 1:
|
||||
System.out.println("Schalte auf Orange.");
|
||||
ampelzustand = 1;
|
||||
break;
|
||||
case 2:
|
||||
System.out.println("Schalte auf Orange.");
|
||||
System.out.println("Schalte auf Rot.");
|
||||
ampelzustand = 2;
|
||||
break;
|
||||
}
|
||||
} else if (ampelzustand == 1) {
|
||||
switch (neuerZustand) {
|
||||
case 0:
|
||||
System.out.println("Schalte auf Gruen.");
|
||||
ampelzustand = 0;
|
||||
break;
|
||||
case 2:
|
||||
System.out.println("Schalte auf Rot.");
|
||||
ampelzustand = 2;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (neuerZustand) {
|
||||
case 0:
|
||||
System.out.println("Schalte auf Orange.");
|
||||
System.out.println("Schalte auf Gruen.");
|
||||
ampelzustand = 0;
|
||||
break;
|
||||
case 1:
|
||||
System.out.println("Schalte auf Orange.");
|
||||
ampelzustand = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/**
|
||||
* Ein ziemlich primitiver Zahlstationssimulator.
|
||||
* Er erzeugt ein paar mit einem zufaelligen Geldbetrag
|
||||
* ausgestattete Personen und schickt diese anschliessend
|
||||
* durch eine Zahlstation.
|
||||
*
|
||||
* @author tebe
|
||||
*
|
||||
*/
|
||||
public class Zahlstationssimulator {
|
||||
private static final int MAX_GELD = 1000;
|
||||
private static final int ANZAHL_PERSONEN = 10;
|
||||
|
||||
public static void main(String[] args) {
|
||||
Zahlstation zahlstation = new Zahlstation();
|
||||
for(int i=0; i<ANZAHL_PERSONEN; i++) {
|
||||
System.out.println("--- Person " + i + " ---");
|
||||
if(zahlstation.passieren(erzeugePerson())){
|
||||
System.out.println("PASSIERT");
|
||||
} else {
|
||||
System.out.println("NICHT PASSIERT");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Eine mit einem zufaelligen Geldbetrag ausgestattete Person
|
||||
*/
|
||||
public static Person erzeugePerson() {
|
||||
Person person = new Person();
|
||||
person.getBrieftasche().setGeld(
|
||||
(int) (Math.random()*(MAX_GELD+1)));
|
||||
return person;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue