From 70836e2325c9c2a8b71274a26e75aaf409fea9d2 Mon Sep 17 00:00:00 2001 From: Caro Date: Sat, 15 Jun 2024 22:56:45 +0200 Subject: [PATCH] reiseplanung erweitert --- TravelBuddyApp/src/main/java/domain/Auto.java | 3 ++ .../src/main/java/domain/Reiseplanung.java | 40 +++++++++++++++---- TravelBuddyApp/src/main/java/domain/User.java | 17 +++++++- 3 files changed, 52 insertions(+), 8 deletions(-) diff --git a/TravelBuddyApp/src/main/java/domain/Auto.java b/TravelBuddyApp/src/main/java/domain/Auto.java index df73876..4279186 100644 --- a/TravelBuddyApp/src/main/java/domain/Auto.java +++ b/TravelBuddyApp/src/main/java/domain/Auto.java @@ -11,5 +11,8 @@ public class Auto { this.co2AusstossProKm = co2AusstossProKm; } + public double getCO2AusstoßProKm() { + return co2AusstossProKm; + } } diff --git a/TravelBuddyApp/src/main/java/domain/Reiseplanung.java b/TravelBuddyApp/src/main/java/domain/Reiseplanung.java index 2f561c9..66069a9 100644 --- a/TravelBuddyApp/src/main/java/domain/Reiseplanung.java +++ b/TravelBuddyApp/src/main/java/domain/Reiseplanung.java @@ -10,13 +10,17 @@ public class Reiseplanung { private double dauerFahrrad; private double co2AusstoßPKW; - public Reiseplanung(Ort zielort) { - this.standort = standort; + public Reiseplanung(User user, Ort zielort) { + this.zielort = zielort; - this.entfernung = entfernung; - this.dauerPKW = dauerPKW; - this.dauerFahrrad = dauerFahrrad; - this.co2AusstoßPKW =co2AusstoßPKW; + + Auto auto = user.getAuto(); + standort = user.getHeimatstandort(); + 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) { @@ -25,6 +29,28 @@ public class Reiseplanung { double l1 = Math.toRadians(standort.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; } } diff --git a/TravelBuddyApp/src/main/java/domain/User.java b/TravelBuddyApp/src/main/java/domain/User.java index d705e9f..0fbe55a 100644 --- a/TravelBuddyApp/src/main/java/domain/User.java +++ b/TravelBuddyApp/src/main/java/domain/User.java @@ -5,7 +5,7 @@ public class User { private String username; private String password; private Ort heimatstandort; - private Auto auto; + public Auto auto; private double durchschnittsgeschwindigkeitPKW; private double durchschnittsgeschwindigkeitFahrrad; @@ -31,4 +31,19 @@ public class User { // Implementierung der Wetteranzeige } + public double getDurchschnittsgeschwindigkeitPKW() { + return durchschnittsgeschwindigkeitPKW; + } + + public double getDurchschnittsgeschwindigkeitFahrrad() { + return durchschnittsgeschwindigkeitFahrrad; + } + + public Ort getHeimatstandort() { + return heimatstandort; + } + + public Auto getAuto() { + return auto; + } }