Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ukolc9
- {
- interface ILogger
- {
- void Log(string message);
- }
- class FileLogger : ILogger
- {
- public void Log(string message)
- {
- string log = $"{DateTime.Now} {message}";
- System.IO.File.AppendAllText("log.txt", log + Environment.NewLine);
- }
- }
- class DiagnosticTraceLogger : ILogger
- {
- public void Log(string message)
- {
- string log = $"{DateTime.Now} {message}";
- System.Diagnostics.Trace.WriteLine(log);
- }
- }
- abstract class Zviratko
- {
- public string Jmeno { get; set; }
- public int Vek { get; set; }
- public Zviratko(string jmeno, int vek)
- {
- Jmeno = jmeno;
- Vek = vek;
- }
- public abstract string Jakdela();
- }
- class Ovce : Zviratko
- {
- public Ovce(string jmeno, int vek) : base(jmeno, vek)
- {
- }
- override public string Jakdela()
- {
- return "bee bee";
- }
- }
- class Kun : Zviratko
- {
- public Kun(string jmeno, int vek) : base(jmeno, vek)
- {
- }
- override public string Jakdela()
- {
- return "ijee ijee";
- }
- }
- class Krava : Zviratko
- {
- public Krava(string jmeno, int vek) : base(jmeno, vek)
- {
- }
- override public string Jakdela()
- {
- return "buu buu";
- }
- }
- class Ptakopysk : Zviratko
- {
- public Ptakopysk(string jmeno, int vek) : base(jmeno, vek)
- {
- }
- override public string Jakdela()
- {
- return "ptack ptack";
- }
- }
- class Farma
- {
- private List<Zviratko> zviratka = new List<Zviratko>();
- private ILogger logger = null;
- public Farma(ILogger logger)
- {
- this.logger = logger;
- }
- public void Pridej(Zviratko zviratko)
- {
- zviratka.Add(zviratko);
- logger.Log("Nove zvire pridane");
- }
- public void Jakdela()
- {
- foreach (Zviratko zviratko in zviratka)
- {
- Console.WriteLine($"{zviratko.Jmeno} age {zviratko.Vek} dela {zviratko.Jakdela()}");
- }
- logger.Log("Vypsane zvuky");
- }
- }
- class Program
- {
- static string LoadingName()
- {
- Console.Write("Napis name: ");
- string jmeno = Console.ReadLine();
- return jmeno;
- }
- static int LoadinAge()
- {
- int vek = 0;
- Console.Write("Napis age: ");
- while (!int.TryParse(Console.ReadLine(), out vek)) ;
- return vek;
- }
- static void Main(string[] args)
- {
- Farma farma = new Farma(new FileLogger());
- bool konec = false;
- do
- {
- Console.Clear();
- Console.WriteLine("1 Nova ovce");
- Console.WriteLine("2 Nova krava");
- Console.WriteLine("3 Novy kun");
- Console.WriteLine("4 Novy ptakopysk");
- Console.WriteLine("5 Vypis zvuku vsechna zviratka na farme");
- Console.WriteLine("6 End");
- Console.WriteLine();
- char volba = Console.ReadKey(true).KeyChar;
- string name;
- int age = 0;
- switch (volba)
- {
- case '1':
- name = LoadingName();
- age = LoadinAge();
- farma.Pridej(new Ovce(name, age));
- Console.WriteLine("Na farmu je nova ovce");
- break;
- case '2':
- name = LoadingName();
- age = LoadinAge();
- farma.Pridej(new Krava(name, age));
- Console.WriteLine("na farmu je nova krava");
- break;
- case '3':
- name = LoadingName();
- age = LoadinAge();
- farma.Pridej(new Kun(name, age));
- Console.WriteLine("Na farmu je novy kun");
- case '4':
- name = LoadingName();
- age = LoadinAge();
- farma.Pridej(new Ptakopysk(name, age));
- Console.WriteLine("Na farmu je novy ptakopysk");
- break;
- case '5':
- farma.Jakdela();
- Console.WriteLine();
- break;
- case '6':
- konec = true;
- Console.WriteLine("Aplikace bude ukoncena");
- break;
- }
- System.Threading.Thread.Sleep(500);
- } while (!konec);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement