reiseplanung erweitert

Reiseplanung
Caro 2024-06-15 22:56:45 +02:00
parent 4c96ee8075
commit 70836e2325
3 changed files with 52 additions and 8 deletions

View File

@ -11,5 +11,8 @@ public class Auto {
this.co2AusstossProKm = co2AusstossProKm; this.co2AusstossProKm = co2AusstossProKm;
} }
public double getCO2AusstoßProKm() {
return co2AusstossProKm;
}
} }

View File

@ -10,13 +10,17 @@ public class Reiseplanung {
private double dauerFahrrad; private double dauerFahrrad;
private double co2AusstoßPKW; private double co2AusstoßPKW;
public Reiseplanung(Ort zielort) { public Reiseplanung(User user, Ort zielort) {
this.standort = standort;
this.zielort = zielort; this.zielort = zielort;
this.entfernung = entfernung;
this.dauerPKW = dauerPKW; Auto auto = user.getAuto();
this.dauerFahrrad = dauerFahrrad; standort = user.getHeimatstandort();
this.co2AusstoßPKW =co2AusstoßPKW; berechneEntfernung(this.standort, this.zielort);
dauerPKW = berechneDauer(entfernung, user.getDurchschnittsgeschwindigkeitPKW());
dauerFahrrad = berechneDauer(entfernung, user.getDurchschnittsgeschwindigkeitFahrrad());
berechneCO2Ausstoß(this.entfernung, auto);
} }
public double berechneEntfernung(Ort standort, Ort zielort) { public double berechneEntfernung(Ort standort, Ort zielort) {
@ -25,6 +29,28 @@ public class Reiseplanung {
double l1 = Math.toRadians(standort.getLängengrad()); double l1 = Math.toRadians(standort.getLängengrad());
double l2 = Math.toRadians(zielort.getLängengrad()); double l2 = Math.toRadians(zielort.getLängengrad());
return 6378.388 * Math.acos(Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * Math.cos(l2 - l1)); entfernung = (6378.388 * Math.acos(Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * Math.cos(l2 - l1))) * 1.25;
return entfernung;
}
//berechnet die ungefähre Dauer zum gewählten Ort
public double berechneDauer(double entfernung, double geschwindigkeit) {
return entfernung/geschwindigkeit;
}
//berechnet ungefähren CO2 Ausstoß des Autos für eine Strecke
public double berechneCO2Ausstoß(double entfernung, Auto auto) {
co2AusstoßPKW = entfernung * auto.getCO2AusstoßProKm();
return co2AusstoßPKW;
}
public double getEntferung() {
return entfernung;
}
public String toString() {
return "Von " + standort + " Nach " + zielort + "\nEntfernung: " + entfernung + "\nReisedauer mit dem PKW: " + dauerPKW + "\nReiserdauer mit dem Fahrrad: " + dauerFahrrad + "\nCO2-Ausstoß durch PKW: " + co2AusstoßPKW;
} }
} }

View File

@ -5,7 +5,7 @@ public class User {
private String username; private String username;
private String password; private String password;
private Ort heimatstandort; private Ort heimatstandort;
private Auto auto; public Auto auto;
private double durchschnittsgeschwindigkeitPKW; private double durchschnittsgeschwindigkeitPKW;
private double durchschnittsgeschwindigkeitFahrrad; private double durchschnittsgeschwindigkeitFahrrad;
@ -31,4 +31,19 @@ public class User {
// Implementierung der Wetteranzeige // Implementierung der Wetteranzeige
} }
public double getDurchschnittsgeschwindigkeitPKW() {
return durchschnittsgeschwindigkeitPKW;
}
public double getDurchschnittsgeschwindigkeitFahrrad() {
return durchschnittsgeschwindigkeitFahrrad;
}
public Ort getHeimatstandort() {
return heimatstandort;
}
public Auto getAuto() {
return auto;
}
} }