using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Czujniki01 { class Czujnik { public Czujnik() { id = "Nienazwany"; wlaczony = false; } public Czujnik(string n) { id = n; wlaczony = false; } public void wlacz() { wlaczony = true; Console.WriteLine(id + ": włączony"); } public void wylacz() { wlaczony = false; Console.WriteLine(id + ": wyłączony"); } public bool jestWlaczony() { return wlaczony; } public bool jestAlarm() { return gen.Next(2) == 1; } public string podajID() { return id; } private string id; private bool wlaczony; static private Random gen = new Random(); } class SystemAlarmowy { public void dodaj(Czujnik czujnik) { czujniki.Add(czujnik); } public void pokazElementy() { Console.WriteLine("Aktualna zwartość systemu:"); foreach (Czujnik czujnik in czujniki) Console.WriteLine(czujnik.podajID()); } public void wlacz() { foreach (Czujnik czujnik in czujniki) czujnik.wlacz(); } public void wylacz() { foreach (Czujnik czujnik in czujniki) czujnik.wylacz(); } public bool jestAlarm() { bool wykrytoAlarm = false; foreach (Czujnik czujnik in czujniki) if (czujnik.jestWlaczony() && czujnik.jestAlarm()) { Console.WriteLine("Alarm na czujniku: " + czujnik.podajID()); wykrytoAlarm = true; } return wykrytoAlarm; } private ArrayList czujniki = new ArrayList(); } class Program { static void Main(string[] args) { SystemAlarmowy systemDomowy = new SystemAlarmowy(); Console.WriteLine("System alarmowy - aplikacja sterująca"); systemDomowy.dodaj(new Czujnik("C01")); systemDomowy.dodaj(new Czujnik("C02")); systemDomowy.dodaj(new Czujnik("C03")); systemDomowy.pokazElementy(); Console.WriteLine("\nWłącznie systemu"); systemDomowy.wlacz(); Console.Write("\nNacisnij dowolny klawisz by rozpocząć monitoring"); Console.ReadKey(); for (;;) { Console.Clear(); Console.WriteLine("Nacisnij ESC by zakończyć monitorowanie"); if (systemDomowy.jestAlarm()) Console.WriteLine("System zgłosił alarm!!!"); if (Console.KeyAvailable) { ConsoleKeyInfo info; info = Console.ReadKey(true); if (info.Key == ConsoleKey.Escape) break; } Thread.Sleep(500); } Console.Clear(); Console.WriteLine("\nWyłącznie systemu"); systemDomowy.wylacz(); Console.Write("\nNaciśnij dowolny klawisz by zakończyć program"); Console.ReadKey(); } } }