Initial commit of the source files.

This commit is contained in:
Bernhard Tellenbach 2017-09-17 17:07:35 +02:00
parent 1a9fa99e93
commit c51fa6e46f
7 changed files with 640 additions and 0 deletions

127
src/Auto.java Normal file
View File

@ -0,0 +1,127 @@
import java.util.ArrayList;
/**
* Diese Klasse speichert Informationen eines Autos.
* @author Marc Rennhard
*/
public class Auto
{
private String modell;
private int preis;
private int stueckzahl;
private int leistung;
private int plaetze;
private boolean vierradantrieb;
ArrayList<Verkauf> verkaeufe;
/**
* Konstruktor, um ein Auto zu erzeugen.
* @param modell Das Modell
* @param preis Der Preis
* @param stueckzahl Die verfuegbare Stueckzahl
* @param leistung Die Leistung in PS
* @param plaetze Die Sitzplaetze
* @param abs Ob das Auto Vierradantrieb hat
*/
public Auto(String modell, int preis, int stueckzahl, int leistung, int plaetze, boolean vierradantrieb)
{
this.modell = modell;
this.preis = preis;
this.stueckzahl = stueckzahl;
this.leistung = leistung;
this.plaetze = plaetze;
this.vierradantrieb = vierradantrieb;
verkaeufe = new ArrayList<Verkauf>();
}
/**
* Kaufe das Auto in der gewuenschten Stueckzahl.
* @param stueckzahlKaufen Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public String kaufen(int stueckzahlKaufen, Kunde kunde)
{
if (stueckzahlKaufen <= stueckzahl) {
stueckzahl -= stueckzahlKaufen;
Verkauf verkauf = new Verkauf(kunde, stueckzahlKaufen, stueckzahlKaufen * preis);
verkaeufe.add(verkauf);
return kunde.gibInfo() + " hat " + stueckzahlKaufen + " Stueck des Modells " + modell +
" zu insgesamt CHF " + (stueckzahlKaufen * preis) + " gekauft";
} else {
return "Es hat leider nur noch " + stueckzahl + " Stueck des Modells " + modell + " an Lager";
}
}
/**
* 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.
* @return Die Anzahl Plaetze
*/
public int gibPlaetze()
{
return plaetze;
}
/**
* Liefert ob das Auto Vierradantrieb hat.
* @return Ob das Auto Vierradantrieb hat (true) oder nicht
*/
public boolean gibVierradantrieb()
{
return vierradantrieb;
}
/**
* Gibt Informationen des Autos zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
String resultat = "Modell " + modell + ", " + stueckzahl + " Fahrzeuge zu je CHF " + preis + " an Lager.\n";
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
}

103
src/Fahrrad.java Normal file
View File

@ -0,0 +1,103 @@
import java.util.ArrayList;
/**
* Diese Klasse speichert Informationen eines Fahrrads.
* @author Marc Rennhard
*/
public class Fahrrad
{
private String modell;
private int preis;
private int stueckzahl;
private int gaenge;
ArrayList<Verkauf> verkaeufe;
/**
* 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
*/
public String kaufen(int stueckzahlKaufen, Kunde kunde)
{
if (stueckzahlKaufen <= stueckzahl) {
stueckzahl -= stueckzahlKaufen;
Verkauf verkauf = new Verkauf(kunde, stueckzahlKaufen, stueckzahlKaufen * preis);
verkaeufe.add(verkauf);
return kunde.gibInfo() + " hat " + stueckzahlKaufen + " Stueck des Modells " + modell +
" zu insgesamt CHF " + (stueckzahlKaufen * preis) + " gekauft";
} else {
return "Es hat leider nur noch " + stueckzahl + " Stueck des Modells " + modell + " an Lager";
}
}
/**
* 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() {
String resultat = "Modell " + modell + ", " + stueckzahl + " Fahrzeuge zu je CHF " + preis + " an Lager.\n";
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
}

131
src/Fahrzeugverwaltung.java Normal file
View File

@ -0,0 +1,131 @@
import java.util.ArrayList;
/**
* Diese Klasse verwaltet die Fahrzeuge.
* @author Marc Rennhard
*/
public class Fahrzeugverwaltung
{
private ArrayList<Fahrrad> fahrraeder;
private ArrayList<Motorrad> motorraeder;
private ArrayList<Auto> autos;
/**
* Konstruktor. Erzeugt eine Fahrzeugverwaltung.
*/
public Fahrzeugverwaltung()
{
motorraeder = new ArrayList<Motorrad>();
autos = new ArrayList<Auto>();
fahrraeder = new ArrayList<Fahrrad>();
}
/**
* Erzeugt ein Fahrrad.
* @param modell Das Modell
* @param preis Der Preis
* @param stueckzahl Die verfuegbare Stueckzahl
* @param gaenge Die Anzahl gaenge
*/
public void erzeugeFahrrad(String modell, int preis, int stueckzahl, int gaenge) {
Fahrrad fahrrad = new Fahrrad(modell, preis, stueckzahl, gaenge);
fahrraeder.add(fahrrad);
}
/**
* Erzeugt ein Motorrad.
* @param modell Das Modell
* @param preis Der Preis
* @param stueckzahl Die verfuegbare Stueckzahl
* @param leistung Die Leistung
* @param abs Ob das Motorrad ABS hat
*/
public void erzeugeMotorrad(String modell, int preis, int stueckzahl, int leistung, boolean abs) {
Motorrad motorrad = new Motorrad(modell, preis, stueckzahl, leistung, abs);
motorraeder.add(motorrad);
}
/**
* Erzeugt ein Auto.
* @param modell Das Modell
* @param preis Der Preis
* @param stueckzahl Die verfuegbare Stueckzahl
* @param leistung Die Leistung
* @param plaetze Die Anzahl Sitzplaetze
* @param vierradantrieb Ob das Auto Vierradantrieb hat
*/
public void erzeugeAuto(String modell, int preis, int stueckzahl, int leistung, int plaetze, boolean vierradantrieb) {
Auto auto = new Auto(modell, preis, stueckzahl, leistung, plaetze, vierradantrieb);
autos.add(auto);
}
/**
* Kauft ein Fahrrad in der gewuenschten Stueckzahl.
* @param Modell Das gewuenschte Modell
* @param stueckzahl Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public void kaufeFahrrad(String modell, int stueckzahl, Kunde kunde) {
for (Fahrrad fahrrad : fahrraeder) {
if (fahrrad.gibModell().equals(modell)) {
String kaufergebnis = fahrrad.kaufen(stueckzahl, kunde);
System.out.println(kaufergebnis);
return;
}
}
System.out.println("Das Modell " + modell + " konnte nicht gefunden werden");
}
/**
* Kauft ein Motorrad in der gewuenschten Stueckzahl.
* @param Modell Das gewuenschte Modell
* @param stueckzahl Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public void kaufeMotorrad(String modell, int stueckzahl, Kunde kunde) {
for (Motorrad motorrad : motorraeder) {
if (motorrad.gibModell().equals(modell)) {
String kaufergebnis = motorrad.kaufen(stueckzahl, kunde);
System.out.println(kaufergebnis);
return;
}
}
System.out.println("Das Modell " + modell + " konnte nicht gefunden werden");
}
/**
* Kauft ein Auto in der gewuenschten Stueckzahl.
* @param Modell Das gewuenschte Modell
* @param stueckzahl Die gewuenschte Stueckzahl
* @param kunde Der Kunde
* @return Informationen ueber das Ergebnis des Kaufs
*/
public void kaufeAuto(String modell, int stueckzahl, Kunde kunde) {
for (Auto auto : autos) {
if (auto.gibModell().equals(modell)) {
String kaufergebnis = auto.kaufen(stueckzahl, kunde);
System.out.println(kaufergebnis);
return;
}
}
System.out.println("Das Modell " + modell + " konnte nicht gefunden werden");
}
/**
* Gibt Informationen aller Fahrzeuge aus
*/
public void ausgeben()
{
for (Fahrrad fahrrad : fahrraeder) {
System.out.println(fahrrad.gibInfo());
}
for (Motorrad motorrad : motorraeder) {
System.out.println(motorrad.gibInfo());
}
for (Auto auto : autos) {
System.out.println(auto.gibInfo());
}
}
}

26
src/Kunde.java Normal file
View File

@ -0,0 +1,26 @@
/**
* Diese Klasse speichert Informationen eines Kunden.
* @author Marc Rennhard
*/
public class Kunde
{
private String name;
/**
* Konstruktor, um einen Kunden zu erzeugen.
* @param name Der Name des Kunden
*/
public Kunde(String name)
{
this.name = name;
}
/**
* Liefert Informationen des Kunden.
* @return Infirmationen des Kunden
*/
public String gibInfo()
{
return name;
}
}

115
src/Motorrad.java Normal file
View File

@ -0,0 +1,115 @@
import java.util.ArrayList;
/**
* Diese Klasse speichert Informationen eines Motorrads.
* @author Marc Rennhard
*/
public class Motorrad
{
private String modell;
private int preis;
private int stueckzahl;
private int leistung;
private boolean abs;
ArrayList<Verkauf> verkaeufe;
/**
* Konstruktor, um ein Motorrad zu erzeugen.
* @param modell Das Modell
* @param preis Der Preis
* @param stueckzahl Die verfuegbare Stueckzahl
* @param leistung Die Leistung in PS
* @param abs Ob das Motorrad ABS hat
*/
public Motorrad(String modell, int preis, int stueckzahl, int leistung, boolean abs)
{
this.modell = modell;
this.preis = preis;
this.stueckzahl = stueckzahl;
this.leistung = leistung;
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 stueckzahlKaufen, Kunde kunde)
{
if (stueckzahlKaufen <= stueckzahl) {
stueckzahl -= stueckzahlKaufen;
Verkauf verkauf = new Verkauf(kunde, stueckzahlKaufen, stueckzahlKaufen * preis);
verkaeufe.add(verkauf);
return kunde.gibInfo() + " hat " + stueckzahlKaufen + " Stueck des Modells " + modell +
" zu insgesamt CHF " + (stueckzahlKaufen * preis) + " gekauft";
} else {
return "Es hat leider nur noch " + stueckzahl + " Stueck des Modells " + modell + " an Lager";
}
}
/**
* 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.
* @return Ob das Motorrad ABS hat (true) oder nicht
*/
public boolean gibAbs()
{
return abs;
}
/**
* Gibt Informationen des Motorrads zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
String resultat = "Modell " + modell + ", " + stueckzahl + " Fahrzeuge zu je CHF " + preis + " an Lager.\n";
resultat += "Bereits erfolgte Verkaeufe:\n";
for (Verkauf verkauf : verkaeufe) {
resultat += verkauf.gibInfo() + "\n";
}
return resultat;
}
}

106
src/Simulation.java Normal file
View File

@ -0,0 +1,106 @@
import java.util.ArrayList;
public class Simulation
{
Fahrzeugverwaltung fahrzeugverwaltung;
ArrayList<Kunde> kunden;
public Simulation()
{
fahrzeugverwaltung = new Fahrzeugverwaltung();
kunden = new ArrayList<Kunde>();
}
private void simulieren()
{
erzeugeKunden();
erzeugeFahrzeuge();
System.out.println("Lagerbestand zu Beginn:\n");
fahrzeugeAusgeben();
System.out.println("Kaufe Fahrzeuge:\n");
kaufeFahrzeuge();
System.out.println("\nLagerbestand am Ende:\n");
fahrzeugeAusgeben();
}
private void erzeugeKunden()
{
kunden.add(new Kunde("Max Meier"));
kunden.add(new Kunde("Hans Hepp"));
kunden.add(new Kunde("Cool Man"));
kunden.add(new Kunde("Pia Propper"));
kunden.add(new Kunde("Johny Hatkohle"));
}
private void erzeugeFahrzeuge()
{
erzeugeFahrraeder();
erzeugeMotorraeder();
erzeugeAutos();
}
private void erzeugeFahrraeder()
{
fahrzeugverwaltung.erzeugeFahrrad("Scott MTB", 1900, 6, 27);
fahrzeugverwaltung.erzeugeFahrrad("BMC Carbon", 3995, 2, 27);
fahrzeugverwaltung.erzeugeFahrrad("Pukky Kids", 330, 3, 1);
}
private void erzeugeMotorraeder()
{
fahrzeugverwaltung.erzeugeMotorrad("KTM 750", 9900, 5, 115, false);
fahrzeugverwaltung.erzeugeMotorrad("Yamaha VMax", 25000, 3, 150, true);
fahrzeugverwaltung.erzeugeMotorrad("Harley Fat Boy", 20000, 6, 85, false);
}
private void erzeugeAutos()
{
fahrzeugverwaltung.erzeugeAuto("Skoda Octavia", 39800, 3, 150, 5, true);
fahrzeugverwaltung.erzeugeAuto("Ferrari Enzo", 565000, 1, 580, 2, false);
fahrzeugverwaltung.erzeugeAuto("Seat Bigfamily", 42000, 4, 145, 8, false);
}
private void kaufeFahrzeuge()
{
kaufeFahrraeder();
kaufeMotorraeder();
kaufeAutos();
}
private void kaufeFahrraeder()
{
fahrzeugverwaltung.kaufeFahrrad("Gibt es nicht", 2, kunden.get(0));
fahrzeugverwaltung.kaufeFahrrad("Scott MTB", 2, kunden.get(0));
fahrzeugverwaltung.kaufeFahrrad("Pukky Kids", 2, kunden.get(1));
fahrzeugverwaltung.kaufeFahrrad("Pukky Kids", 2, kunden.get(2));
fahrzeugverwaltung.kaufeFahrrad("BMC Carbon", 2, kunden.get(2));
}
private void kaufeMotorraeder()
{
fahrzeugverwaltung.kaufeMotorrad("Harley Fat Boy", 1, kunden.get(0));
fahrzeugverwaltung.kaufeMotorrad("KTM 750", 3, kunden.get(1));
fahrzeugverwaltung.kaufeMotorrad("Harley Fat Boy", 2, kunden.get(2));
}
private void kaufeAutos()
{
fahrzeugverwaltung.kaufeAuto("Ferrari Enzo", 1, kunden.get(4));
fahrzeugverwaltung.kaufeAuto("Seat Bigfamily", 3, kunden.get(3));
fahrzeugverwaltung.kaufeAuto("Seat Bigfamily", 1, kunden.get(2));
}
private void fahrzeugeAusgeben()
{
fahrzeugverwaltung.ausgeben();
}
public static void main(String[] args)
{
(new Simulation()).simulieren();
}
}

32
src/Verkauf.java Normal file
View File

@ -0,0 +1,32 @@
/**
* Diese Klasse speichert Informationen eines Verkaufs.
* @author Marc Rennhard
*
*/
public class Verkauf
{
private Kunde kunde;
private int stueckzahl;
private int gesamtpreis;
/**
* Konstruktor, erzeugt einen Verkauf.
* @param kunde Der Kunde
* @param stueckzahl Die gekaufte Stueckzahl
* @param gesamtpreis Der Gesamtpreis
*/
public Verkauf(Kunde kunde, int stueckzahl, int gesamtpreis)
{
this.kunde = kunde;
this.stueckzahl = stueckzahl;
this.gesamtpreis = gesamtpreis;
}
/**
* Gibt Informationen des Verkaufs zurueck.
* @return Informationen des Verkaufs
*/
public String gibInfo() {
return "Kunde: " + kunde.gibInfo() + ": " + stueckzahl + " Stueck zu total CHF " + gesamtpreis;
}
}