Also ich versuche das hier nochmal ein wenig zu sortieren.
Ich soll eine Autovermietung programmieren
Dazu habe ich folgende Klasse erstellt:
Nun habe ich dazu folgende Aufgabenstellung:
5. Programmieren Sie eine Klasse Autoverwaltung mit folgenden Eigenschaften. Die Klasse Autoverwaltung besitzt die Klassenvariablen anzahlVermieteteAutos, gesamtFahrleistung vom Typ int und durchschnittlicheFahrleistung vom Typ double. Dadurch sind die Anzahl der vermieteten Autos jederzeit verfügbar. Das gleiche gilt für die Fahrleistung aller Autos. Deklarieren Sie die genannten Eigenschaften als static.
Deklarieren Sie in Autoverwaltung ein statisches Objektarray autos[]von Objekten der Klasse ErweitertesAuto. DieLänge des Objektarrays sei 10.Erzeugen Sie in der Klasse Autoverwaltung fünfObjekte von ErweitertesAuto.
Die Klasse Autoverwaltung besitzt dazu die statische Methoden vermietung(). Die statische Methode vermietung() soll innerhalb eines Dialogs (einfache while(true)- Schleife) einen Vermietungsvorgang (in stark vereinfachter Form) abbilden. Sie wird von der Klassenmethode dialog() aufgerufen, die dem Nutzer die Auswahl zwischen vermieten() und der Klassenmethode info() ermöglicht. Die freien Autos sollen angezeigt werden. Dann nimmt vermietung() Fahrerdaten, die Fahrzeugdaten und das Fahrtziel auf. Der Status des betreffenden Autos ist nun "vermietet". Die Klassenmethode control() soll jederzeit die Übersicht über den Fuhrpark, die Gesamtzahl der vermieteten Autos, die gesamte Fahrleistung aller Autos und die durchschnittliche Fahrleistung pro Auto ausgeben. Die Klasse Autoverwaltung wird in der Datei Autoverwaltung.java gespeichert.
Und ich habe nun ein Problem mit der Vermietung. Denn ich weiß nicht genau, wie ich ihm sagen soll, dass er nur die freien Autos aufrufen und die Daten ausgeben soll bzw. wie ich dann nach dem Vermietungsvorgang, wenn also ein Auto gemietet wurde, das Auto auf vermietet setzen kann, so dass es in der Liste der freien Autos nicht mehr auftaucht.
Dass die Zeilen 57 bis 68 nicht richtig sind weiß ich, und genau da liegt mein problem.
Ich weiß nicht wie ich ihm das sagen soll.
Zudem habe ich noch das Problem, dass mit die Daten zu den jeweiligen Autos aus dem Array nicht angezeigt werden können.
Hatte gerade schon dazu in einem anderen Beitrag einen Hinweis erhalten, aber das hat bei mir trotzdem nicht funktioniert. Ich bekomme da lauter nullen.
Mag vielleicht dumm rüberkommen, aber irgendwie habe ich mich da total verknotet und sehe den Wald vor lauter Bäumen nicht mehr.
Ich soll eine Autovermietung programmieren
Dazu habe ich folgende Klasse erstellt:
Java:
public class ErweitertesAuto extends EinfachesAuto {
private String standort;
private long fahrgestellnummer;
public ErweitertesAuto () {
}
public ErweitertesAuto (String fahrer, String autotyp, String farbe,
int erstzulassung, int leistung, int kmStand, String standort,
long fahrgestellnummer) {
super (fahrer, autotyp, farbe, erstzulassung, leistung, kmStand);
this.standort=standort;
this.fahrgestellnummer=fahrgestellnummer;
}
public String get_Standort () {
return standort;
}
public void set_Standort (String standort) {
this.standort=standort;
}
public long get_Fahrgestellnummer () {
return fahrgestellnummer;
}
public void set_Fahrgestellnummer (long fahrgestellnummer) {
this.fahrgestellnummer=fahrgestellnummer;
}
public void info () {
ErweitertesAuto a = new ErweitertesAuto ();
System.out.println ("Daten des Fahrzeugs:\n ");
System.out.println ("Fahrer: " +a.get_Fahrer ());
System.out.println ("Autotyp: " +a.get_Autotyp ());
System.out.println ("Farbe: " +a.get_Farbe ());
System.out.println ("Erstzulassung: " +a.get_Erstzulassung ());
System.out.println ("Leistung: " +a.get_Leistung());
System.out.println ("Fahrgestellnummer: " +a.get_Fahrgestellnummer());
}
private String Ziel;
private int Entfernung;
public int faehrtNach (String Ziel, int Entfernung) {
ErweitertesAuto a = new ErweitertesAuto ();
System.out.println ("Das Auto fährt von Lübeck nach " +Ziel+ " :" +Entfernung+ "km");
return a.get_KmStand ();
}
}
Nun habe ich dazu folgende Aufgabenstellung:
5. Programmieren Sie eine Klasse Autoverwaltung mit folgenden Eigenschaften. Die Klasse Autoverwaltung besitzt die Klassenvariablen anzahlVermieteteAutos, gesamtFahrleistung vom Typ int und durchschnittlicheFahrleistung vom Typ double. Dadurch sind die Anzahl der vermieteten Autos jederzeit verfügbar. Das gleiche gilt für die Fahrleistung aller Autos. Deklarieren Sie die genannten Eigenschaften als static.
Deklarieren Sie in Autoverwaltung ein statisches Objektarray autos[]von Objekten der Klasse ErweitertesAuto. DieLänge des Objektarrays sei 10.Erzeugen Sie in der Klasse Autoverwaltung fünfObjekte von ErweitertesAuto.
Die Klasse Autoverwaltung besitzt dazu die statische Methoden vermietung(). Die statische Methode vermietung() soll innerhalb eines Dialogs (einfache while(true)- Schleife) einen Vermietungsvorgang (in stark vereinfachter Form) abbilden. Sie wird von der Klassenmethode dialog() aufgerufen, die dem Nutzer die Auswahl zwischen vermieten() und der Klassenmethode info() ermöglicht. Die freien Autos sollen angezeigt werden. Dann nimmt vermietung() Fahrerdaten, die Fahrzeugdaten und das Fahrtziel auf. Der Status des betreffenden Autos ist nun "vermietet". Die Klassenmethode control() soll jederzeit die Übersicht über den Fuhrpark, die Gesamtzahl der vermieteten Autos, die gesamte Fahrleistung aller Autos und die durchschnittliche Fahrleistung pro Auto ausgeben. Die Klasse Autoverwaltung wird in der Datei Autoverwaltung.java gespeichert.
Und ich habe nun ein Problem mit der Vermietung. Denn ich weiß nicht genau, wie ich ihm sagen soll, dass er nur die freien Autos aufrufen und die Daten ausgeben soll bzw. wie ich dann nach dem Vermietungsvorgang, wenn also ein Auto gemietet wurde, das Auto auf vermietet setzen kann, so dass es in der Liste der freien Autos nicht mehr auftaucht.
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Autoverwaltung {
static int anzahlVermieteAutos;
static int gesamtFahrleistung;
static double durchschnittlicheFahrleistung;
static ErweitertesAuto autos[] = new ErweitertesAuto[10];
public static void main(String[] args) throws IOException {
autos[0] = new ErweitertesAuto(" ", "Auto ","rot",1980, 110,230000,"München",15498);
autos[1] = new ErweitertesAuto("", "Auto","gelb",2001, 120,25900,"Rostock",15468);
autos[2] = new ErweitertesAuto("", "Auto","blau",2005, 89,5000,"Berlin",15426);
autos[3] = new ErweitertesAuto("", "Bagger","grün",1999, 55,100000,"Hamburg",33256);
autos[4] = new ErweitertesAuto("", "Auto","silber",2000, 205,50000,"Trier",15487);
boolean fertig = false;
while(!fertig){
System.out.println("Herzlich Willkommen zu Fahrzeugvermietung");
System.out.println("Wählen Sie nun zwischen "
+"\n" +"[1]Informationen über Fahrzeuge"
+"\n" +"[2]Fahrzeug ausleihen"
+"\n" +"[3]Gesamtübersicht"
+"\n" +"[4]rogramm beenden");
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
int auswahl = Integer.parseInt(eingabe.readLine());
switch(auswahl) {
case 1: ;
break;
case 2: vermietung();
break;
case 3: ct();
break;
case 4: System.exit(-1);
} fertig= false;
}
}
public static void vermietung() throws IOException{
boolean vermietet=false;
for (int i = 0;i < 5;i++){
System.out.println("Auto "+(i+1)+":");
if (autos[i].vermietet) {
autos[i].info ();
}
}
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
System.out.println("\nEntscheiden Sie sich für ein Auto");
int auswahl = (Integer.parseInt(eingabe.readLine())-1);
System.out.println("Bitte geben Sie ihren Namen ein");
autos[auswahl].set_Fahrer(eingabe.readLine());
System.out.println("Bitte geben Sie ihr Fahrziel ein");
String fahrtziel = eingabe.readLine();
System.out.println("Bitte geben Sie die Entfernung ein");
int entfernung = Integer.parseInt(eingabe.readLine());
autos[auswahl].faehrtNach(fahrtziel, entfernung);
anzahlVermieteAutos++;
gesamtFahrleistung = gesamtFahrleistung + entfernung;
}
public static void ct(){
System.out.println("Fahrzeug-Gesamtübersicht");
System.out.println("Vermietete Autos : "+anzahlVermieteAutos);
System.out.println("Gesamtfahrleistung "+gesamtFahrleistung);
if (!(anzahlVermieteAutos == 0)) {
durchschnittlicheFahrleistung = gesamtFahrleistung / anzahlVermieteAutos;
}
System.out.println("Durchschnittliche Fahrleistung "+ durchschnittlicheFahrleistung);
System.out.println("Gesamtübersicht : ");
}
public static void dialog() throws IOException
{
dialog();
}
}
Dass die Zeilen 57 bis 68 nicht richtig sind weiß ich, und genau da liegt mein problem.
Ich weiß nicht wie ich ihm das sagen soll.
Zudem habe ich noch das Problem, dass mit die Daten zu den jeweiligen Autos aus dem Array nicht angezeigt werden können.
Hatte gerade schon dazu in einem anderen Beitrag einen Hinweis erhalten, aber das hat bei mir trotzdem nicht funktioniert. Ich bekomme da lauter nullen.
Mag vielleicht dumm rüberkommen, aber irgendwie habe ich mich da total verknotet und sehe den Wald vor lauter Bäumen nicht mehr.