public void BieteNeueWetterdatenAn(Wetterdaten wetterdaten) { if (BenachrichtigeAlleAbonnenten != null) { BenachrichtigeAlleAbonnenten(wetterdaten); } }
static void Main(string[] args) { WetterDatenquelle wdq = new WetterDatenquelle(); WetterApp wa = new WetterApp(); Wetterdaten wd; // Hier m�ssen unsere Eventhandler beim Herausgeber registriert // werden. Oder anders ausgedr�ckt: hier abonnieren unsere // Eventhandler das Ereignis "Neue Wetterdaten eingetroffen". // ============================================================ wdq.TrageAbonnentenEin(wa.TrageNeueWetterdatenEin); wdq.TrageAbonnentenEin(wa.ZeigeTemperaturverlaufAn); wdq.TrageAbonnentenEin(wa.WetterVorhersage); wdq.EntferneAbonnenten(wa.ZeigeTemperaturverlaufAn); Console.WriteLine("Durch Eingabe eines Temperaturwertes wird das Ereignis\n" + "\"Neue Wetterdaten eingetroffen\" simuliert.\n"); bool eingabeOK; for (; ;) { Console.Write("Geben Sie bitte einen Temperaturwert ein (Abbruch mit <enter>): "); wd = new Wetterdaten(); eingabeOK = double.TryParse(Console.ReadLine(), out wd.temperaturwert); if (!eingabeOK) { break; } wd.zeit = DateTime.Now; // Hier wird das Ereignis "Neue Wetterdaten eingetroffen" ausgel�st: // ================================================================ wdq.BieteNeueWetterdatenAn(wd); } }
public void ZeigeTemperaturverlaufAn(Wetterdaten wd) { Console.WriteLine("Temperaturverlauf:"); // Hier werden alle bereits gespeicherten Wetterdaten angezeigt: // ============================================================ foreach (Wetterdaten wd1 in wetterdatenListe) { Console.WriteLine("{0,2:D2}:{1,2:D2}:{2,2:D2} - {3}", wd1.zeit.Hour, wd1.zeit.Minute, wd1.zeit.Second, wd1.temperaturwert); } }
public void NächsteTemperaturdieBestimmtDerDurchschnittDerVorherigenIst(Wetterdaten wd) { int wetterDatenMenge = wetterdatenListe.ToArray().Length; double temperaturSumme = 0; foreach (Wetterdaten wd1 in wetterdatenListe) { temperaturSumme += wd1.temperaturwert; } Console.WriteLine("Durchnittliche und Wahrscheinlich zukünftige Temperatur ist: " + temperaturSumme / wetterDatenMenge); }
public void WetterVorhersage(Wetterdaten wd) { double summeDerTemps = 0; for (int i = 0; i < wetterdatenListe.Count; i++) { summeDerTemps += wetterdatenListe[i].temperaturwert; } double avgTemperaturen = summeDerTemps / wetterdatenListe.Count; Console.WriteLine("Vorhersage der nächste Tag wird " + avgTemperaturen); }
public void TrageNeueWetterdatenEin(Wetterdaten wd) { wetterdatenListe.Add(wd); Console.WriteLine("Neue Wetterdaten wurden eingetragen."); }