Aufgabe 3d ausgeführt.

This commit is contained in:
schrom01 2021-11-25 15:44:45 +01:00
parent 8a618b52cf
commit f8e32967de
5 changed files with 116 additions and 236 deletions

View File

@ -5,15 +5,10 @@ import java.util.List;
* Diese Klasse speichert Informationen eines Autos. * Diese Klasse speichert Informationen eines Autos.
* @author Marc Rennhard * @author Marc Rennhard
*/ */
public class Auto public class Auto extends Motorfahrzeug
{ {
private String modell;
private int preis;
private int stueckzahl;
private int leistung;
private int plaetze; private int plaetze;
private boolean vierradantrieb; private boolean vierradantrieb;
private List<Verkauf> verkaeufe;
/** /**
* Konstruktor, um ein Auto zu erzeugen. * Konstruktor, um ein Auto zu erzeugen.
@ -22,77 +17,19 @@ public class Auto
* @param stueckzahl Die verfuegbare Stueckzahl * @param stueckzahl Die verfuegbare Stueckzahl
* @param leistung Die Leistung in PS * @param leistung Die Leistung in PS
* @param plaetze Die Sitzplaetze * @param plaetze Die Sitzplaetze
* @param abs Ob das Auto Vierradantrieb hat * @param Ob das Auto Vierradantrieb hat
*/ */
public Auto(String modell, int preis, int stueckzahl, int leistung, int plaetze, boolean vierradantrieb) public Auto(String modell, int preis, int stueckzahl, int leistung, int plaetze, boolean vierradantrieb)
{ {
this.modell = modell; super(modell, preis, stueckzahl, leistung);
this.preis = preis;
this.stueckzahl = stueckzahl;
this.leistung = leistung;
this.plaetze = plaetze; this.plaetze = plaetze;
this.vierradantrieb = vierradantrieb; this.vierradantrieb = vierradantrieb;
verkaeufe = new ArrayList<Verkauf>();
} }
/**
* Kaufe das Auto in der gewuenschten Stueckzahl.
* @param anzahl Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public String kaufen(int anzahl, Kunde kunde)
{
if (anzahl <= stueckzahl) {
stueckzahl -= anzahl;
Verkauf verkauf = new Verkauf(kunde, anzahl, anzahl * preis);
verkaeufe.add(verkauf);
return String.format("%s hat %d Stueck des Modells %s zu insgesamt CHF %d gekauft", kunde.gibInfo(), anzahl, modell, (anzahl * preis));
} else {
return String.format("Es hat leider nur noch %d Stueck des Modells %s an Lager", stueckzahl, modell);
}
}
/**
* Liefert das Modell des Autos.
* @return Das Modell
*/
public String gibModell()
{
return modell;
}
/**
* Setzt den Preis des Autos.
* @param preis Der Preis
*/
public void setzePreis(int preis)
{
if (preis > 0) {
this.preis = preis;
}
}
/**
* Setze die verfuegbare Stueckzahl des Autos.
* @param stueckzahl Die Stueckzahl
*/
public void setzeStueckzahl(int stueckzahl)
{
if (stueckzahl >= 0) {
this.stueckzahl = stueckzahl;
}
}
/**
* Liefert die Leistung des Autos.
* @return Die Leistung
*/
public int gibLeistung()
{
return leistung;
}
/** /**
* Liefert die Anzahl Sitzplaetze des Autos. * Liefert die Anzahl Sitzplaetze des Autos.
@ -112,16 +49,5 @@ public class Auto
return vierradantrieb; return vierradantrieb;
} }
/**
* Gibt Informationen des Autos zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
String resultat = String.format("Modell %s, %d Fahrzeuge zu je CHF %d an Lager\n", modell, stueckzahl, preis);
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
} }

View File

@ -5,13 +5,9 @@ import java.util.List;
* Diese Klasse speichert Informationen eines Fahrrads. * Diese Klasse speichert Informationen eines Fahrrads.
* @author Marc Rennhard * @author Marc Rennhard
*/ */
public class Fahrrad public class Fahrrad extends Fahrzeug
{ {
private String modell;
private int preis;
private int stueckzahl;
private int gaenge; private int gaenge;
private List<Verkauf> verkaeufe;
/** /**
* Konstruktor, um ein Fahrrad zu erzeugen. * Konstruktor, um ein Fahrrad zu erzeugen.
@ -22,61 +18,8 @@ public class Fahrrad
*/ */
public Fahrrad(String modell, int preis, int stueckzahl, int gaenge) public Fahrrad(String modell, int preis, int stueckzahl, int gaenge)
{ {
this.modell = modell; super(modell, preis, stueckzahl);
this.preis = preis;
this.stueckzahl = stueckzahl;
this.gaenge = gaenge; this.gaenge = gaenge;
verkaeufe = new ArrayList<Verkauf>();
}
/**
* Kaufe das Fahrrad in der gewuenschten Stueckzahl.
* @param stueckzahlKaufen Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public String kaufen(int anzahl, Kunde kunde)
{
if (anzahl <= stueckzahl) {
stueckzahl -= anzahl;
Verkauf verkauf = new Verkauf(kunde, anzahl, anzahl * preis);
verkaeufe.add(verkauf);
return String.format("%s hat %d Stueck des Modells %s zu insgesamt CHF %d gekauft", kunde.gibInfo(), anzahl, modell, (anzahl * preis));
} else {
return String.format("Es hat leider nur noch %d Stueck des Modells %s an Lager", stueckzahl, modell);
}
}
/**
* Liefert das Modell des Fahrrads.
* @return Das Modell
*/
public String gibModell()
{
return modell;
}
/**
* Setzt den Preis des Fahrrads.
* @param preis Der Preis
*/
public void setzePreis(int preis)
{
if (preis > 0) {
this.preis = preis;
}
}
/**
* Setze die verfuegbare Stueckzahl des Fahrrads.
* @param stueckzahl Die Stueckzahl
*/
public void setzeStueckzahl(int stueckzahl)
{
if (stueckzahl >= 0) {
this.stueckzahl = stueckzahl;
}
} }
/** /**
@ -87,17 +30,5 @@ public class Fahrrad
{ {
return gaenge; return gaenge;
} }
/**
* Gibt Informationen des Fahrrads zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
String resultat = String.format("Modell %s, %d Fahrzeuge zu je CHF %d an Lager\n", modell, stueckzahl, preis);
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
} }

83
src/Fahrzeug.java Normal file
View File

@ -0,0 +1,83 @@
import java.util.ArrayList;
import java.util.List;
public class Fahrzeug {
private String modell;
private int preis;
private int stueckzahl;
private List<Verkauf> verkaeufe;
public Fahrzeug(String modell, int preis, int stueckzahl) {
this.modell = modell;
this.preis = preis;
this.stueckzahl = stueckzahl;
verkaeufe = new ArrayList<Verkauf>();
}
/**
* Kaufe das Fahrzeug in der gewuenschten Stueckzahl.
* @param anzahl Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public String kaufen(int anzahl, Kunde kunde)
{
if (anzahl <= stueckzahl) {
stueckzahl -= anzahl;
Verkauf verkauf = new Verkauf(kunde, anzahl, anzahl * preis);
verkaeufe.add(verkauf);
return String.format("%s hat %d Stueck des Modells %s zu insgesamt CHF %d gekauft", kunde.gibInfo(), anzahl, modell, (anzahl * preis));
} else {
return String.format("Es hat leider nur noch %d Stueck des Modells %s an Lager", stueckzahl, modell);
}
}
/**
* Liefert das Modell des Fahrzeugs.
* @return Das Modell
*/
public String gibModell()
{
return modell;
}
/**
* Setzt den Preis des Fahrzeugs.
* @param preis Der Preis
*/
public void setzePreis(int preis)
{
if (preis > 0) {
this.preis = preis;
}
}
/**
* Setze die verfuegbare Stueckzahl des Fahrzeugs.
* @param stueckzahl Die Stueckzahl
*/
public void setzeStueckzahl(int stueckzahl)
{
if (stueckzahl >= 0) {
this.stueckzahl = stueckzahl;
}
}
/**
* Gibt Informationen des Fahrzeugs zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
String resultat = String.format("Modell %s, %d Fahrzeuge zu je CHF %d an Lager\n", modell, stueckzahl, preis);
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
}

19
src/Motorfahrzeug.java Normal file
View File

@ -0,0 +1,19 @@
public class Motorfahrzeug extends Fahrzeug{
private int leistung;
public Motorfahrzeug(String modell, int preis, int stueckzahl, int leistung) {
super(modell, preis, stueckzahl);
this.leistung = leistung;
}
/**
* Liefert die Leistung des Motorfahrzeugs.
* @return Die Leistung
*/
public int gibLeistung()
{
return leistung;
}
}

View File

@ -5,14 +5,9 @@ import java.util.List;
* Diese Klasse speichert Informationen eines Motorrads. * Diese Klasse speichert Informationen eines Motorrads.
* @author Marc Rennhard * @author Marc Rennhard
*/ */
public class Motorrad public class Motorrad extends Motorfahrzeug
{ {
private String modell;
private int preis;
private int stueckzahl;
private int leistung;
private boolean abs; private boolean abs;
private List<Verkauf> verkaeufe;
/** /**
* Konstruktor, um ein Motorrad zu erzeugen. * Konstruktor, um ein Motorrad zu erzeugen.
@ -24,72 +19,10 @@ public class Motorrad
*/ */
public Motorrad(String modell, int preis, int stueckzahl, int leistung, boolean abs) public Motorrad(String modell, int preis, int stueckzahl, int leistung, boolean abs)
{ {
this.modell = modell; super(modell, preis, stueckzahl, leistung);
this.preis = preis;
this.stueckzahl = stueckzahl;
this.leistung = leistung;
this.abs = abs; this.abs = abs;
verkaeufe = new ArrayList<Verkauf>();
}
/**
* Kaufe das Motorrad in der gewuenschten Stueckzahl.
* @param stueckzahlKaufen Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public String kaufen(int anzahl, Kunde kunde)
{
if (anzahl <= stueckzahl) {
stueckzahl -= anzahl;
Verkauf verkauf = new Verkauf(kunde, anzahl, anzahl * preis);
verkaeufe.add(verkauf);
return String.format("%s hat %d Stueck des Modells %s zu insgesamt CHF %d gekauft", kunde.gibInfo(), anzahl, modell, (anzahl * preis));
} else {
return String.format("Es hat leider nur noch %d Stueck des Modells %s an Lager", stueckzahl, modell);
}
}
/**
* Liefert das Modell des Motorrads.
* @return Das Modell
*/
public String gibModell()
{
return modell;
}
/**
* Setzt den Preis des Motorrads.
* @param preis Der Preis
*/
public void setzePreis(int preis)
{
if (preis > 0) {
this.preis = preis;
}
}
/**
* Setze die verfuegbare Stueckzahl des Motorrads.
* @param stueckzahl Die Stueckzahl
*/
public void setzeStueckzahl(int stueckzahl)
{
if (stueckzahl >= 0) {
this.stueckzahl = stueckzahl;
}
}
/**
* Liefert die Leistung des Motorrads.
* @return Die Leistung
*/
public int gibLeistung()
{
return leistung;
} }
/** /**
* Liefert ob das Motorrad ABS hat. * Liefert ob das Motorrad ABS hat.
@ -99,17 +32,5 @@ public class Motorrad
{ {
return abs; return abs;
} }
/**
* Gibt Informationen des Motorrads zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
String resultat = String.format("Modell %s, %d Fahrzeuge zu je CHF %d an Lager\n", modell, stueckzahl, preis);
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
} }