08_Praktikum_Fahrzeugverwal.../src/Fahrrad.java

104 lines
2.5 KiB
Java
Raw Normal View History

2017-09-17 17:07:35 +02:00
import java.util.ArrayList;
2019-10-07 11:59:38 +02:00
import java.util.List;
2017-09-17 17:07:35 +02:00
/**
* Diese Klasse speichert Informationen eines Fahrrads.
* @author Marc Rennhard
*/
public class Fahrrad
{
private String modell;
private int preis;
private int stueckzahl;
private int gaenge;
2019-10-07 11:59:38 +02:00
private List<Verkauf> verkaeufe;
2017-09-17 17:07:35 +02:00
/**
* Konstruktor, um ein Fahrrad zu erzeugen.
* @param modell Das Modell
* @param preis Der Preis
* @param stueckzahl Die verfuegbare Stueckzahl
* @param gaenge Die Anzah der Gaenge
*/
public Fahrrad(String modell, int preis, int stueckzahl, int gaenge)
{
this.modell = modell;
this.preis = preis;
this.stueckzahl = stueckzahl;
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
*/
2019-10-07 11:59:38 +02:00
public String kaufen(int anzahl, Kunde kunde)
2017-09-17 17:07:35 +02:00
{
2019-10-07 11:59:38 +02:00
if (anzahl <= stueckzahl) {
stueckzahl -= anzahl;
Verkauf verkauf = new Verkauf(kunde, anzahl, anzahl * preis);
2017-09-17 17:07:35 +02:00
verkaeufe.add(verkauf);
2019-10-07 11:59:38 +02:00
return String.format("%s hat %d Stueck des Modells %s zu insgesamt CHF %d gekauft", kunde.gibInfo(), anzahl, modell, (anzahl * preis));
2017-09-17 17:07:35 +02:00
} else {
2019-10-07 11:59:38 +02:00
return String.format("Es hat leider nur noch %d Stueck des Modells %s an Lager", stueckzahl, modell);
2017-09-17 17:07:35 +02:00
}
}
/**
* 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;
}
}
/**
* Liefert die Anzahl Gaenge des Fahrrads.
* @return Die Anzahl Gaenge
*/
public int gibGaenge()
{
return gaenge;
}
/**
* Gibt Informationen des Fahrrads zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
2019-10-07 11:59:38 +02:00
String resultat = String.format("Modell %s, %d Fahrzeuge zu je CHF %d an Lager\n", modell, stueckzahl, preis);
2017-09-17 17:07:35 +02:00
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
2019-10-07 11:59:38 +02:00
resultat += verkauf.gibInfo() + "\n";
2017-09-17 17:07:35 +02:00
}
return resultat;
}
}