Kommentare hinzugefügt
parent
f8aea0ce36
commit
dfc1981aee
|
@ -10,6 +10,11 @@ public class Packstation {
|
|||
*/
|
||||
public Paket[][] station;
|
||||
|
||||
//Standard-Konstruktor
|
||||
public Packstation() {
|
||||
station = new Paket[5][4];
|
||||
}
|
||||
|
||||
/**
|
||||
* Dieser Konstruktor legt eine Packstation mit benutzerdefinierter Größe an.
|
||||
* @param breite: Die Anzahl an Fächern in der Breite der Packstation.
|
||||
|
@ -22,9 +27,6 @@ public class Packstation {
|
|||
station = new Paket[breite][hoehe];
|
||||
}
|
||||
|
||||
public Packstation() {
|
||||
station = new Paket[5][4];
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt ein Paket an einer freien Stelle in der Packstation ab und gibt die
|
||||
|
|
|
@ -5,19 +5,23 @@ public class Paket {
|
|||
public String name;
|
||||
public String adress;
|
||||
|
||||
//Konstruktor
|
||||
public Paket (String empfaenger, String adresse) {
|
||||
name = empfaenger;
|
||||
adress = adresse;
|
||||
}
|
||||
|
||||
//Getter-Methode für Adresse
|
||||
public String getAnschrift() {
|
||||
return adress;
|
||||
}
|
||||
|
||||
//Getter-Methode für Empfänger
|
||||
public String getEmpfaenger() {
|
||||
return name;
|
||||
}
|
||||
|
||||
//Ausgabe der Paketinformationen
|
||||
public String toString() {
|
||||
return name + "\n" + adress;
|
||||
}
|
||||
|
|
|
@ -18,17 +18,25 @@ public class Rechner {
|
|||
System.out.println("[ m | d | e | f ]");
|
||||
System.out.print("Geben Sie das zugehörige Zeichen an: ");
|
||||
|
||||
|
||||
//Eingabe
|
||||
input = sc.nextLine();
|
||||
|
||||
//Fehler bei Zeicheneingabe abfangen
|
||||
if (input.length() > 1) {
|
||||
System.out.println("Nur ein Zeichen eingeben. Versuche es erneut.");
|
||||
} else if (input.length() < 1) {
|
||||
System.out.println("Bitte ein Zeichen eingeben. Versuche es erneut.");
|
||||
} else {
|
||||
//Zeichen herausfinden
|
||||
char c = input.charAt(0);
|
||||
|
||||
//Zeichen an berechnung() übergeben
|
||||
int ergebnis = berechnung(c);
|
||||
|
||||
//Ergebnis nur ausgeben, wenn Ergebnis nicht -1 ist
|
||||
if (ergebnis != -1) {
|
||||
System.out.println("Ergebnis: " + ergebnis);
|
||||
//Zeilenumruch aus dem Buffer herausfiltern
|
||||
sc.nextLine();
|
||||
}
|
||||
}
|
||||
|
@ -48,75 +56,96 @@ public class Rechner {
|
|||
int ergebnis;
|
||||
|
||||
switch(c) {
|
||||
|
||||
//Bedingung: Multiplizieren
|
||||
case 'm':
|
||||
System.out.println("\n* Multiplikation *");
|
||||
System.out.print("Ersten Faktor eingeben: ");
|
||||
int faktor1 = sc.nextInt();
|
||||
System.out.print("Zweiten Faktor eingeben: ");
|
||||
int faktor2 = sc.nextInt();
|
||||
|
||||
//Versuche multiplizieren() durchzuführen
|
||||
try {
|
||||
ergebnis = multiplizieren(faktor1, faktor2);
|
||||
return ergebnis;
|
||||
//Fange Fehler ab und gebe Nachricht aus
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
//Zeilenumruch aus dem Buffer herausfiltern
|
||||
sc.nextLine();
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
|
||||
//Bedingung: Dividieren
|
||||
case 'd':
|
||||
System.out.println("\n* Division *");
|
||||
System.out.print("Dividend eingeben: ");
|
||||
int dividend = sc.nextInt();
|
||||
System.out.print("Divisor eingeben: ");
|
||||
int divisor = sc.nextInt();
|
||||
//Versuche dividieren() durchzuführen
|
||||
try {
|
||||
ergebnis = dividieren(dividend, divisor);
|
||||
return ergebnis;
|
||||
//Fange Fehler ab und gebe Nachricht aus
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
//Zeilenumruch aus dem Buffer herausfiltern
|
||||
sc.nextLine();
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
//Fange Fehler (mit 0 dividieren) ab und gebe Nachricht aus
|
||||
} catch (ArithmeticException e) {
|
||||
System.out.println(e.getMessage());
|
||||
//Zeilenumruch aus dem Buffer herausfiltern
|
||||
sc.nextLine();
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
//Bedingung: Exponent
|
||||
case 'e':
|
||||
System.out.println("\n* Exponent *");
|
||||
System.out.print("Grundwert eingeben: ");
|
||||
int grundwert = sc.nextInt();
|
||||
System.out.print("Exponent eingeben: ");
|
||||
int exponent = sc.nextInt();
|
||||
//Versuche exponent() durchzuführen
|
||||
try {
|
||||
ergebnis = exponent(grundwert, exponent);
|
||||
return ergebnis;
|
||||
//Fange Fehler ab und gebe Nachricht aus
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
//Zeilenumruch aus dem Buffer herausfiltern
|
||||
sc.nextLine();
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
//Bedingung: Fakultät
|
||||
case 'f':
|
||||
System.out.println("\n* Fakultät *");
|
||||
System.out.print("Zahl eingeben: ");
|
||||
int n = sc.nextInt();
|
||||
//Versuche fakultaet() durchzuführen
|
||||
try {
|
||||
ergebnis = fakultaet(n);
|
||||
return ergebnis;
|
||||
//Fange Fehler ab und gebe Nachricht aus
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
//Zeilenumruch aus dem Buffer herausfiltern
|
||||
sc.nextLine();
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
}
|
||||
|
||||
// Zeichen stimmt nicht überein
|
||||
default:
|
||||
//Gebe Fehlermeldung aus
|
||||
System.out.println("Kein gültiges Zeichen eingegeben! Bitte Versuche es erneut.");
|
||||
ergebnis = -1;
|
||||
return ergebnis;
|
||||
|
@ -133,15 +162,15 @@ public class Rechner {
|
|||
public static int multiplizieren(int faktor1, int faktor2) {
|
||||
if (faktor1 == 0 || faktor2 == 0)
|
||||
return 0;
|
||||
if (faktor1 == 1)
|
||||
else if (faktor1 == 1)
|
||||
return faktor2;
|
||||
if (faktor2 == 1)
|
||||
else if (faktor2 == 1)
|
||||
return faktor1;
|
||||
if (faktor1 < 0 || faktor2 < 0) {
|
||||
//Wenn eine der Zahlen negativ ist, gebe Fehler mit Meldung zurück
|
||||
else if (faktor1 < 0 || faktor2 < 0) {
|
||||
throw new IllegalArgumentException("Faktoren dürfen nicht negativ sein!");
|
||||
}
|
||||
|
||||
return faktor1 + multiplizieren(faktor1, faktor2-1);
|
||||
} else
|
||||
return faktor1 + multiplizieren(faktor1, faktor2-1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -153,16 +182,18 @@ public class Rechner {
|
|||
* @throws ArithmeticException Wenn der Divisor 0 ist
|
||||
* */
|
||||
public static int dividieren(int dividend, int divisor) {
|
||||
//Wenn Divisor 0 ist, gebe Fehler mit Meldung zurück
|
||||
if (divisor == 0)
|
||||
throw new ArithmeticException("Durch Null teilen nicht möglich!");
|
||||
if (dividend < 0 || divisor < 0)
|
||||
//Wenn eine der Zahlen negativ ist, gebe Fehler mit Meldung zurück
|
||||
else if (dividend < 0 || divisor < 0)
|
||||
throw new IllegalArgumentException("Dividend und Divisor dürfen nicht negativ sein!");
|
||||
if (divisor == 1)
|
||||
else if (divisor == 1)
|
||||
return dividend;
|
||||
if (dividend >= divisor)
|
||||
else if (dividend >= divisor)
|
||||
return 1 + dividieren(dividend-divisor, divisor);
|
||||
|
||||
return 0;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -174,11 +205,12 @@ public class Rechner {
|
|||
* @throws IllegalArgumentException Wenn einer der Werte negativ ist
|
||||
*/
|
||||
public static int exponent(int grundwert, int exponent) {
|
||||
//Wenn eine der Zahlen negativ ist, gebe Fehler mit Meldung zurück
|
||||
if(grundwert < 0 || exponent < 0)
|
||||
throw new IllegalArgumentException("Die Basis und der Exponent dürfen nicht negativ sein!");
|
||||
if (exponent == 0)
|
||||
else if (exponent == 0)
|
||||
return 1;
|
||||
if(grundwert == 1)
|
||||
else if(grundwert == 1)
|
||||
return grundwert;
|
||||
else if(exponent == 1)
|
||||
return grundwert;
|
||||
|
@ -193,7 +225,8 @@ public class Rechner {
|
|||
* @return Die Fakultät der Zahl
|
||||
* @throws IllegalArgumentException Wenn die Zahl negativ ist
|
||||
*/
|
||||
public static int fakultaet(int n) throws IllegalArgumentException {
|
||||
public static int fakultaet(int n) throws IllegalArgumentException {
|
||||
//Wenn Zahl negativ ist, gebe Fehler mit Meldung zurück
|
||||
if (n < 0) {
|
||||
throw new IllegalArgumentException("Zahl darf nicht negativ sein.");
|
||||
} else if (n == 0)
|
||||
|
|
|
@ -9,129 +9,127 @@ public class TestPacket {
|
|||
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
boolean right = false;
|
||||
boolean gestoppt = false;
|
||||
//Packstation instanziieren
|
||||
Packstation ps = new Packstation();
|
||||
|
||||
|
||||
//HashMap um Pakete später benennen zu können
|
||||
Map<String, Paket> pakete = new HashMap<>();
|
||||
|
||||
try {
|
||||
|
||||
|
||||
while(!right) {
|
||||
//Auswahl der Packstation-Konstruktoren
|
||||
System.out.println("* Packstation wählen *");
|
||||
System.out.println("Standardgröße[1] | Benutzerdefinierte Größe[2]");
|
||||
|
||||
|
||||
//Nutzereingabe
|
||||
System.out.print("Auswahl: ");
|
||||
int auswahl = sc.nextInt();
|
||||
|
||||
//Auswahl des Standardkonstruktors
|
||||
if (auswahl == 1) {
|
||||
switch(auswahl) {
|
||||
|
||||
case 1: //Auswahl des Standardkonstruktors
|
||||
System.out.println("\n* Standardgröße gewählt *");
|
||||
System.out.println("Breite: 5, Höhe: 4");
|
||||
right = true;
|
||||
break;
|
||||
|
||||
//Auswahl des benutzerdefinierten Konstruktors
|
||||
} else if (auswahl == 2) {
|
||||
|
||||
case 2: //Auswahl des benutzerdefinierten Konstruktors
|
||||
//Eingabe der Werte für den Konstruktor
|
||||
System.out.println("\n* Bitte Werte eingeben *");
|
||||
System.out.print("Breite: ");
|
||||
int breite = sc.nextInt();
|
||||
System.out.print("Hoehe: ");
|
||||
int hoehe = sc.nextInt();
|
||||
|
||||
|
||||
//Instanziieren der Klasse
|
||||
ps = new Packstation(breite, hoehe);
|
||||
System.out.println("\n* Benutzerdefinierte Größe gewählt *");
|
||||
System.out.printf("Breite: %d, Höhe: %d\n", breite, hoehe);
|
||||
right = true;
|
||||
break;
|
||||
|
||||
} else {
|
||||
sc.close();
|
||||
//Fehlermeldung, wenn nicht Option 1 oder 2 gewählt wird
|
||||
throw new IllegalArgumentException("Fehlerhafte Eingabe.");
|
||||
|
||||
}
|
||||
|
||||
while(!gestoppt) {
|
||||
//Auswahl der auszuführenden Methode
|
||||
System.out.println("\n* Operation wählen *");
|
||||
System.out.println("Paket ablegen[1] | Freie Boxen zählen[2] | Information zum Boxenplatz[3] | Programm beenden[4]");
|
||||
|
||||
//Nutzereingabe
|
||||
System.out.print("Auswahl: ");
|
||||
auswahl = sc.nextInt();
|
||||
sc.nextLine();
|
||||
|
||||
switch(auswahl) {
|
||||
|
||||
case 1:
|
||||
System.out.println("\n* Paket ablegen gewählt *");
|
||||
|
||||
//Nutzereingabe für Konstruktor: Empfaenger
|
||||
System.out.print("Name: ");
|
||||
String name = sc.nextLine();
|
||||
|
||||
//Nutzereingabe für Konstruktor: Adresse
|
||||
System.out.print("Adresse: ");
|
||||
String adresse = sc.nextLine();
|
||||
|
||||
//Nutzereingabe zur Benennung des Objekts
|
||||
System.out.print("Paketbezeichnung: ");
|
||||
String paketname = sc.nextLine();
|
||||
pakete.put(paketname, new Paket(name, adresse));
|
||||
|
||||
try {
|
||||
//Ablegen des Pakets
|
||||
ps.legePaketAb(pakete.get(paketname));
|
||||
|
||||
}
|
||||
//Fehlermeldung falls Box voll
|
||||
catch (IllegalStateException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
System.out.println("* Freie Boxen zählen gewählt *");
|
||||
|
||||
//Freie Boxen zählen
|
||||
int freieBoxen = ps.zaehleFreieBoxen();
|
||||
if (freieBoxen == 1)
|
||||
System.out.println("Es ist " + ps.zaehleFreieBoxen() + " Box verfügbar.");
|
||||
else
|
||||
System.out.println("Es sind " + ps.zaehleFreieBoxen() + " Boxen verfügbar.");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
System.out.println("\n* Information zum Boxenplatz *");
|
||||
|
||||
//Formatierte Ausgabe der Packstation-Boxen
|
||||
ps.printStation();
|
||||
|
||||
//Nutzereingabe für Spalte
|
||||
System.out.print("\nSpalte wählen: ");
|
||||
int spalte = sc.nextInt();
|
||||
|
||||
//Nutzereingabe für Reihe
|
||||
System.out.print("Reihe spalten: ");
|
||||
int reihe = sc.nextInt();
|
||||
|
||||
//Ausgabe der Information
|
||||
System.out.println(ps.informationZumBoxenplatz(spalte, reihe));
|
||||
break;
|
||||
|
||||
case 4:
|
||||
//Schließen des Programmes
|
||||
System.out.println(" * Programm wird beendet * ");
|
||||
gestoppt = true;
|
||||
break;
|
||||
}
|
||||
|
||||
default: //Fehlerhafte Eingabe
|
||||
System.out.println("\nFehlerhafte Eingabe! Bitte versuchen Sie es erneut.\n");
|
||||
}
|
||||
} catch(IllegalArgumentException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
while(!gestoppt) {
|
||||
//Auswahl der auszuführenden Methode
|
||||
System.out.println("\n* Operation wählen *");
|
||||
System.out.println("Paket ablegen[1] | Freie Boxen zählen[2] | Information zum Boxenplatz[3] | Programm beenden[4]");
|
||||
|
||||
//Nutzereingabe
|
||||
System.out.print("Auswahl: ");
|
||||
int auswahl = sc.nextInt();
|
||||
sc.nextLine();
|
||||
|
||||
switch(auswahl) {
|
||||
|
||||
case 1:
|
||||
System.out.println("\n* Paket ablegen gewählt *");
|
||||
|
||||
//Nutzereingabe für Konstruktor: Empfaenger
|
||||
System.out.print("Name: ");
|
||||
String name = sc.nextLine();
|
||||
|
||||
//Nutzereingabe für Konstruktor: Adresse
|
||||
System.out.print("Adresse: ");
|
||||
String adresse = sc.nextLine();
|
||||
|
||||
//Nutzereingabe zur Benennung des Objekts
|
||||
System.out.print("Paketbezeichnung: ");
|
||||
String paketname = sc.nextLine();
|
||||
pakete.put(paketname, new Paket(name, adresse));
|
||||
|
||||
try {
|
||||
//Ablegen des Pakets
|
||||
ps.legePaketAb(pakete.get(paketname));
|
||||
|
||||
}
|
||||
//Fehlermeldung falls Box voll
|
||||
catch (IllegalStateException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
System.out.println("\n* Freie Boxen zählen gewählt *");
|
||||
|
||||
//Freie Boxen zählen
|
||||
int freieBoxen = ps.zaehleFreieBoxen();
|
||||
if (freieBoxen == 1)
|
||||
System.out.println("Es ist " + ps.zaehleFreieBoxen() + " Box verfügbar.");
|
||||
else
|
||||
System.out.println("Es sind " + ps.zaehleFreieBoxen() + " Boxen verfügbar.");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
System.out.println("\n* Information zum Boxenplatz *");
|
||||
|
||||
//Formatierte Ausgabe der Packstation-Boxen
|
||||
ps.printStation();
|
||||
|
||||
//Nutzereingabe für Spalte
|
||||
System.out.print("\nSpalte wählen: ");
|
||||
int spalte = sc.nextInt();
|
||||
|
||||
//Nutzereingabe für Reihe
|
||||
System.out.print("Reihe spalten: ");
|
||||
int reihe = sc.nextInt();
|
||||
|
||||
//Ausgabe der Information
|
||||
System.out.println(ps.informationZumBoxenplatz(spalte, reihe));
|
||||
break;
|
||||
|
||||
case 4:
|
||||
//Schließen des Programmes
|
||||
System.out.println("\n* Programm wird beendet * ");
|
||||
gestoppt = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue