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