Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement