- 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