- FLow Text, Hauptprogramm sowie die Einfahren Methode
parent
254a13cf5c
commit
9b8e4d2c35
|
@ -0,0 +1,53 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Fahrzeug {
|
||||||
|
|
||||||
|
|
||||||
|
private String kennzeichen;
|
||||||
|
private Date einfahrt;
|
||||||
|
private Date ausfahrt;
|
||||||
|
private boolean bezahlt;
|
||||||
|
|
||||||
|
|
||||||
|
Fahrzeug() {
|
||||||
|
this.kennzeichen = kennzeichenzufaelliggenerieren.kennzeichenzufaelliggenerieren();
|
||||||
|
this.einfahrt = new Date();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Fahrzeug(String kennzeichen, Date einfahrt) {
|
||||||
|
|
||||||
|
this.kennzeichen = kennzeichen;
|
||||||
|
this.einfahrt = einfahrt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKennzeichen() {
|
||||||
|
return kennzeichen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEinfahrtFormatted() {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
return sdf.format(einfahrt);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getAusfahrt() {
|
||||||
|
return ausfahrt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAusfahrt(Date ausfahrt) {
|
||||||
|
this.ausfahrt = ausfahrt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBezahlt() {
|
||||||
|
return bezahlt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBezahlt(boolean bezahlt) {
|
||||||
|
this.bezahlt = bezahlt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
public class Gebuehrenberechnen {
|
||||||
|
|
||||||
|
// Hier werde ich die Parkgebühren behandlen
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws ParseException {
|
||||||
|
new TextUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/* Parkhaus klasse
|
||||||
|
* - Extern klasse dient als System
|
||||||
|
* - mit diseser Kalsse integriert der User (Autofahrer)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class Parkhaus {
|
||||||
|
|
||||||
|
private ArrayList<Fahrzeug> fahrzeuge;
|
||||||
|
private ArrayList<Fahrzeug> fahrzeugeMitSchuldern;
|
||||||
|
private static int maxPlaetze;
|
||||||
|
private SimpleDateFormat sdf;
|
||||||
|
|
||||||
|
|
||||||
|
Parkhaus(){
|
||||||
|
fahrzeuge = new ArrayList<>();
|
||||||
|
fahrzeugeMitSchuldern = new ArrayList<>();
|
||||||
|
maxPlaetze = 180;
|
||||||
|
sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
}
|
||||||
|
|
||||||
|
private String einfahrenIntern(String kennzeichen, String einfahrtzeit) throws ParseException {
|
||||||
|
Date einfahrt;
|
||||||
|
Fahrzeug fahrzeug;
|
||||||
|
if (kennzeichen.isEmpty() && einfahrtzeit.isEmpty())
|
||||||
|
fahrzeug = new Fahrzeug();
|
||||||
|
else {
|
||||||
|
einfahrt = sdf.parse(einfahrtzeit);
|
||||||
|
fahrzeug = new Fahrzeug(kennzeichen, einfahrt);
|
||||||
|
}
|
||||||
|
|
||||||
|
fahrzeuge.add(fahrzeug);
|
||||||
|
maxPlaetze--;
|
||||||
|
return "Das Fahrzeug mit dem Kennzeichen: " + fahrzeug.getKennzeichen() + "\n" + "wurde um: "
|
||||||
|
+ fahrzeug.getEinfahrtFormatted() + " im Parkhaus eingefahren.";
|
||||||
|
}
|
||||||
|
public String einfahrenextern(String kennzeichen, String einfahrtzeit) throws ParseException {
|
||||||
|
if(!checkParkplatze())
|
||||||
|
return "Das Parkhaus ist voll";
|
||||||
|
|
||||||
|
return einfahrenIntern(kennzeichen,einfahrtzeit);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean checkParkplatze() {
|
||||||
|
if (maxPlaetze <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean checkSchulden(String kennzeichen) {
|
||||||
|
for (Fahrzeug sc: fahrzeugeMitSchuldern)
|
||||||
|
if (sc.getKennzeichen().equals(kennzeichen))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkSchuldenExtern(String kennzeichen) {
|
||||||
|
return checkSchulden(kennzeichen);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ArrayList<Fahrzeug> getFahrzeuge() {
|
||||||
|
return fahrzeuge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Fahrzeug> getFahrzeugeMitSchuldern() {
|
||||||
|
return fahrzeugeMitSchuldern;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getMaxPlaetze() {
|
||||||
|
return maxPlaetze;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleDateFormat getSdf() {
|
||||||
|
return sdf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class TextUI {
|
||||||
|
private Parkhaus system;
|
||||||
|
private Scanner eingabe;
|
||||||
|
|
||||||
|
|
||||||
|
TextUI() throws ParseException{
|
||||||
|
system = new Parkhaus();
|
||||||
|
startprogramm();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startprogramm() throws ParseException {
|
||||||
|
eingabe = new Scanner(System.in);
|
||||||
|
boolean aktiv = true;
|
||||||
|
|
||||||
|
System.out.println("<<Willkommen im parkhaus 'kiss and ride'>> ");
|
||||||
|
while (aktiv) {
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Bitte Wählen Sie ein Option ein: ");
|
||||||
|
System.out.println("1.Einfahren");
|
||||||
|
System.out.println("2.Ausfahren");
|
||||||
|
System.out.println("3. Parkgebühren berechnen und (bezahlen Oder Schulden lassen)");
|
||||||
|
System.out.println("4. Beenden");
|
||||||
|
|
||||||
|
System.out.print("> ");
|
||||||
|
String auswhal = eingabe.nextLine();
|
||||||
|
String kennzeichen;
|
||||||
|
String einfahrtzeit;
|
||||||
|
|
||||||
|
switch (auswhal) {
|
||||||
|
case "1": // Einfahren
|
||||||
|
if (!system.checkParkplatze())
|
||||||
|
System.out.println("Es gibt im Parkhaus keine genug Parkplätze");
|
||||||
|
else {
|
||||||
|
System.out.println("geben Sie bitte das Kennzeichen Ihres Autos ein (optional): ");
|
||||||
|
kennzeichen = eingabe.nextLine();
|
||||||
|
if (system.checkSchuldenExtern(kennzeichen))
|
||||||
|
System.out.println("Das Auto mit dem Kennzeichen: " + kennzeichen + " ist im Parkhaus mit Schulden eingefahren!" );
|
||||||
|
System.out.println("geben Sie nun bitte die Einfahrtszeit ein (Optional):");
|
||||||
|
einfahrtzeit = eingabe.nextLine();
|
||||||
|
System.out.println(system.einfahrenextern(kennzeichen, einfahrtzeit));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "2":
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
case "3":
|
||||||
|
// TODO
|
||||||
|
case "4":
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
default:
|
||||||
|
System.out.println("Das war leider keine gültige Eingabe");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
public class Zahlung {
|
||||||
|
// Hier werde ich die Zalhungsprozess behandlen
|
||||||
|
|
||||||
|
public boolean checkVisaKarte(String visaNummer) {
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
/*kennzeichenzufaelliggenerieren:
|
||||||
|
*
|
||||||
|
* - Diese Klasse hat nur die Aufgabe, zufällige Kennzeichen zu generieren
|
||||||
|
* - immer wenn diese Klasse ein zufälliges Kennzeichen generiert,
|
||||||
|
* - speichere ich das,damit es nicht für mehrere Autos dasselbe Kennzeichen generiert.
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
public class kennzeichenzufaelliggenerieren {
|
||||||
|
|
||||||
|
private static ArrayList<String> speichereEindutigeNummern = new ArrayList<>();
|
||||||
|
private static String[] ersteZweiZeichen = { "MA", "HD", "KA", "FF", "ROK", "BW", "HH", "B", "D" };
|
||||||
|
private static String[] zweiteZweizeichen = { "ME", "SH", "DF", "KC", "FT", "GH", "OM", "KL", "CV" };
|
||||||
|
private static String eindutigeZahlen = "";
|
||||||
|
private static Random random = new Random();
|
||||||
|
|
||||||
|
public static String kennzeichenzufaelliggenerieren() {
|
||||||
|
String zufaelligeKennzeichen = "";
|
||||||
|
|
||||||
|
zufaelligeKennzeichen = ersteZweiZeichen[random.nextInt(ersteZweiZeichen.length)];
|
||||||
|
zufaelligeKennzeichen += "-" + zweiteZweizeichen[random.nextInt(zweiteZweizeichen.length)] + " ";
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
eindutigeZahlen = "";
|
||||||
|
for (int i = 1; i <= 4; i++)
|
||||||
|
eindutigeZahlen += random.nextInt(10);
|
||||||
|
|
||||||
|
if (!checkEindutigeZeichen())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
speichereEindutigeNummern.add(eindutigeZahlen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
zufaelligeKennzeichen += eindutigeZahlen;
|
||||||
|
|
||||||
|
if (random.nextBoolean())
|
||||||
|
zufaelligeKennzeichen += "E";
|
||||||
|
|
||||||
|
return zufaelligeKennzeichen;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean checkEindutigeZeichen() {
|
||||||
|
for (String s : speichereEindutigeNummern)
|
||||||
|
if (s.equals(eindutigeZahlen))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
package Test;
|
|
||||||
|
|
||||||
public class Test {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
System.out.println("Hallo");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue