SHARE
TWEET

Untitled

a guest Mar 22nd, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ukolc9
  8. {
  9.     interface ILogger
  10.     {
  11.         void Log(string message);
  12.     }
  13.     class FileLogger : ILogger
  14.     {
  15.         public void Log(string message)
  16.         {
  17.             string log = $"{DateTime.Now} {message}";
  18.             System.IO.File.AppendAllText("log.txt", log + Environment.NewLine);
  19.         }
  20.     }
  21.  
  22.     class DiagnosticTraceLogger : ILogger
  23.     {
  24.         public void Log(string message)
  25.         {
  26.             string log = $"{DateTime.Now} {message}";
  27.             System.Diagnostics.Trace.WriteLine(log);
  28.         }
  29.     }
  30.  
  31.     abstract class Zviratko
  32.     {
  33.         public string Jmeno { get; set; }
  34.         public int Vek { get; set; }
  35.  
  36.         public Zviratko(string jmeno, int vek)
  37.         {
  38.             Jmeno = jmeno;
  39.             Vek = vek;
  40.         }
  41.  
  42.         public abstract string Jakdela();
  43.     }
  44.  
  45.     class Ovce : Zviratko
  46.     {
  47.         public Ovce(string jmeno, int vek) : base(jmeno, vek)
  48.         {
  49.         }
  50.  
  51.         override public string Jakdela()
  52.         {
  53.             return "bee bee";
  54.         }
  55.     }
  56.  
  57.     class Kun : Zviratko
  58.     {
  59.         public Kun(string jmeno, int vek) : base(jmeno, vek)
  60.         {
  61.         }
  62.  
  63.         override public string Jakdela()
  64.         {
  65.             return "ijee ijee";
  66.         }
  67.     }
  68.  
  69.     class Krava : Zviratko
  70.     {
  71.         public Krava(string jmeno, int vek) : base(jmeno, vek)
  72.         {
  73.         }
  74.  
  75.         override public string Jakdela()
  76.         {
  77.             return "buu buu";
  78.         }
  79.     }
  80.     class Ptakopysk : Zviratko
  81.     {
  82.         public Ptakopysk(string jmeno, int vek) : base(jmeno, vek)
  83.         {
  84.         }
  85.  
  86.         override public string Jakdela()
  87.         {
  88.             return "ptack ptack";
  89.         }
  90.     }
  91.  
  92.     class Farma
  93.     {
  94.         private List<Zviratko> zviratka = new List<Zviratko>();
  95.         private ILogger logger = null;
  96.  
  97.         public Farma(ILogger logger)
  98.         {
  99.             this.logger = logger;
  100.         }
  101.  
  102.         public void Pridej(Zviratko zviratko)
  103.         {
  104.  
  105.             zviratka.Add(zviratko);
  106.  
  107.             logger.Log("Nove zvire pridane");
  108.  
  109.         }
  110.  
  111.         public void Jakdela()
  112.         {
  113.             foreach (Zviratko zviratko in zviratka)
  114.             {
  115.                 Console.WriteLine($"{zviratko.Jmeno} age {zviratko.Vek} dela {zviratko.Jakdela()}");
  116.             }
  117.  
  118.             logger.Log("Vypsane zvuky");
  119.         }
  120.     }
  121.     class Program
  122.     {
  123.         static string LoadingName()
  124.         {
  125.             Console.Write("Napis name: ");
  126.             string jmeno = Console.ReadLine();
  127.             return jmeno;
  128.  
  129.         }
  130.  
  131.         static int LoadinAge()
  132.         {
  133.             int vek = 0;
  134.             Console.Write("Napis age: ");
  135.  
  136.             while (!int.TryParse(Console.ReadLine(), out vek)) ;
  137.  
  138.             return vek;
  139.         }
  140.         static void Main(string[] args)
  141.         {
  142.             Farma farma = new Farma(new FileLogger());
  143.             bool konec = false;
  144.  
  145.             do
  146.             {
  147.                 Console.Clear();
  148.                 Console.WriteLine("1 Nova ovce");
  149.                 Console.WriteLine("2 Nova krava");
  150.                 Console.WriteLine("3 Novy kun");
  151.                 Console.WriteLine("4 Novy ptakopysk");
  152.                 Console.WriteLine("5 Vypis zvuku vsechna zviratka na farme");
  153.                 Console.WriteLine("6 End");
  154.                 Console.WriteLine();
  155.  
  156.                 char volba = Console.ReadKey(true).KeyChar;
  157.                 string name;
  158.                 int age = 0;
  159.  
  160.                 switch (volba)
  161.                 {
  162.                     case '1':
  163.                         name = LoadingName();
  164.                         age = LoadinAge();
  165.                         farma.Pridej(new Ovce(name, age));
  166.                         Console.WriteLine("Na farmu je nova ovce");
  167.                         break;
  168.  
  169.                     case '2':
  170.                         name = LoadingName();
  171.                         age = LoadinAge();
  172.                         farma.Pridej(new Krava(name, age));
  173.                         Console.WriteLine("na farmu je nova krava");
  174.  
  175.                         break;
  176.  
  177.                     case '3':
  178.                         name = LoadingName();
  179.                         age = LoadinAge();
  180.                         farma.Pridej(new Kun(name, age));
  181.                         Console.WriteLine("Na farmu je novy kun");
  182.  
  183.                     case '4':
  184.                         name = LoadingName();
  185.                         age = LoadinAge();
  186.                         farma.Pridej(new Ptakopysk(name, age));
  187.                         Console.WriteLine("Na farmu je novy ptakopysk");
  188.  
  189.                         break;
  190.                     case '5':
  191.                         farma.Jakdela();
  192.                         Console.WriteLine();
  193.                         break;
  194.                     case '6':
  195.                         konec = true;
  196.                         Console.WriteLine("Aplikace bude ukoncena");
  197.                         break;
  198.                 }
  199.  
  200.                 System.Threading.Thread.Sleep(500);
  201.  
  202.             } while (!konec);
  203.  
  204.  
  205.         }
  206.     }
  207. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top