- FLow Text, Hauptprogramm sowie die Einfahren Methode

main
obai 2024-10-03 20:41:53 +02:00
parent 254a13cf5c
commit 9b8e4d2c35
11 changed files with 294 additions and 10 deletions

View File

@ -1 +0,0 @@
TODO File......

0
src/ChatGPT.txt 100644
View File

0
src/Flow.txt 100644
View File

View File

@ -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;
}
}

View File

@ -0,0 +1,7 @@
package Parkhaus;
public class Gebuehrenberechnen {
// Hier werde ich die Parkgebühren behandlen
}

View File

@ -0,0 +1,11 @@
package Parkhaus;
import java.text.ParseException;
public class Main {
public static void main(String[] args) throws ParseException {
new TextUI();
}
}

View File

@ -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;
}
}

View File

@ -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");
}
}
}
}

View File

@ -0,0 +1,12 @@
package Parkhaus;
public class Zahlung {
// Hier werde ich die Zalhungsprozess behandlen
public boolean checkVisaKarte(String visaNummer) {
// TODO
return false;
}
}

View File

@ -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;
}
}

View File

@ -1,9 +0,0 @@
package Test;
public class Test {
public static void main(String[] args) {
System.out.println("Hallo");
}
}