From 3a619e54de5610c9706a29f45ec2c3f034eef7b2 Mon Sep 17 00:00:00 2001 From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de> Date: Thu, 12 Nov 2020 18:38:24 +0100 Subject: [PATCH] Weather station classes --- src/readme.txt | 1 - .../AktuelleBedingungenAnzeige.java | 17 +++++++ src/wetterstation/StatistikAnzeige.java | 28 +++++++++++ src/wetterstation/VorhersageAnzeige.java | 26 +++++++++++ src/wetterstation/WetterDaten.java | 46 +++++++++++++++++++ src/wetterstation/WetterStation.java | 12 +++++ 6 files changed, 129 insertions(+), 1 deletion(-) delete mode 100644 src/readme.txt create mode 100644 src/wetterstation/AktuelleBedingungenAnzeige.java create mode 100644 src/wetterstation/StatistikAnzeige.java create mode 100644 src/wetterstation/VorhersageAnzeige.java create mode 100644 src/wetterstation/WetterDaten.java create mode 100644 src/wetterstation/WetterStation.java diff --git a/src/readme.txt b/src/readme.txt deleted file mode 100644 index 1724e3d..0000000 --- a/src/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Source Code für die Beispiele und Übungsaufgaben \ No newline at end of file diff --git a/src/wetterstation/AktuelleBedingungenAnzeige.java b/src/wetterstation/AktuelleBedingungenAnzeige.java new file mode 100644 index 0000000..879d148 --- /dev/null +++ b/src/wetterstation/AktuelleBedingungenAnzeige.java @@ -0,0 +1,17 @@ +package wetterstation; + +public class AktuelleBedingungenAnzeige { + private float temperatur; + private float feuchtigkeit; + + public void aktualisieren(float temp, float feucht, float druck) { + this.temperatur = temp; + this.feuchtigkeit = feucht; + anzeigen(); + } + + public void anzeigen() { + System.out.println("Aktuelle Bedingungen: " + temperatur + + " Grad C und " + feuchtigkeit + "% Luftfeuchtigkeit"); + } +} diff --git a/src/wetterstation/StatistikAnzeige.java b/src/wetterstation/StatistikAnzeige.java new file mode 100644 index 0000000..5ca9941 --- /dev/null +++ b/src/wetterstation/StatistikAnzeige.java @@ -0,0 +1,28 @@ +package wetterstation; + +public class StatistikAnzeige { + private float maxTemp = 0.0f; + private float minTemp = 200; + private float tempSum= 0.0f; + private int anzMesswerte; + + public void neueWerte(float temp, float feucht, float druck) { + tempSum += temp; + anzMesswerte++; + + if (temp > maxTemp) { + maxTemp = temp; + } + + if (temp < minTemp) { + minTemp = temp; + } + + anzeigen(); + } + + public void anzeigen() { + System.out.println("Mit/Max/Min Temperatur = " + (tempSum / anzMesswerte) + + "/" + maxTemp + "/" + minTemp); + } +} diff --git a/src/wetterstation/VorhersageAnzeige.java b/src/wetterstation/VorhersageAnzeige.java new file mode 100644 index 0000000..ae53498 --- /dev/null +++ b/src/wetterstation/VorhersageAnzeige.java @@ -0,0 +1,26 @@ +package wetterstation; + + +public class VorhersageAnzeige { + private float aktuellerLuftdruck = 29.92f; + private float letzterLuftdruck; + + + public void aktuelleWerte(float temp, float feucht, float druck) { + letzterLuftdruck = aktuellerLuftdruck; + aktuellerLuftdruck = druck; + + anzeigen(); + } + + public void anzeigen() { + System.out.print("Vorhersage: "); + if (aktuellerLuftdruck > letzterLuftdruck) { + System.out.println("Wetter-Besserung in Sicht!"); + } else if (aktuellerLuftdruck == letzterLuftdruck) { + System.out.println("Wetter geht weiter so."); + } else if (aktuellerLuftdruck < letzterLuftdruck) { + System.out.println("Gehen Sie von kaelterem, regnerischem Wetter aus."); + } + } +} diff --git a/src/wetterstation/WetterDaten.java b/src/wetterstation/WetterDaten.java new file mode 100644 index 0000000..8ced0be --- /dev/null +++ b/src/wetterstation/WetterDaten.java @@ -0,0 +1,46 @@ +package wetterstation; + +public class WetterDaten { + private float temperatur; + private float feuchtigkeit; + private float luftdruck; + AktuelleBedingungenAnzeige anzeige = new AktuelleBedingungenAnzeige(); + StatistikAnzeige statistik = new StatistikAnzeige(); + VorhersageAnzeige vorhersage = new VorhersageAnzeige(); + + public void messwerteGeaendert() { + System.out.println(this.toString()); + anzeige.aktualisieren(temperatur, feuchtigkeit, luftdruck); + statistik.neueWerte(temperatur, feuchtigkeit, luftdruck); + vorhersage.aktuelleWerte(temperatur, feuchtigkeit, luftdruck); + } + + public void setMesswerte(float temp, float feucht, float druck) { + this.temperatur = temp; + this.feuchtigkeit = feucht; + this.luftdruck = druck; + messwerteGeaendert(); + } + + public float getTemperatur() { + return temperatur; + } + + public float getFeuchtigkeit() { + return feuchtigkeit; + } + + public float getLuftdruck() { + return luftdruck; + } + + public String toString() { + StringBuffer result = new StringBuffer(); + result.append("\nMesswerte:\n"); + result.append("----------\n"); + result.append("Temperatur: " + getTemperatur() + "\n"); + result.append("Luftfeuchtigkeit: " + getFeuchtigkeit() + "\n"); + result.append("Luftdruck: " + getLuftdruck() + "\n"); + return result.toString(); + } +} diff --git a/src/wetterstation/WetterStation.java b/src/wetterstation/WetterStation.java new file mode 100644 index 0000000..e0f38c9 --- /dev/null +++ b/src/wetterstation/WetterStation.java @@ -0,0 +1,12 @@ +package wetterstation; + +public class WetterStation { + + public static void main(String[] args) { + WetterDaten wetterDaten = new WetterDaten(); + + wetterDaten.setMesswerte(30, 65, 30.4f); + wetterDaten.setMesswerte(32, 70, 29.2f); + wetterDaten.setMesswerte(28, 90, 29.2f); + } +} -- GitLab