Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. namespace zad1
  4. {
  5. class Program
  6. {
  7. class Pracownik : IComparable<Pracownik>, ICloneable
  8. {
  9. string imię;
  10. public string Imię { get; set; }
  11. string nazwisko;
  12. public string Nazwisko { get; set; }
  13. string stażPracy;
  14. public string StażPracy { get; set; }
  15. string obowiązek = null;
  16. string Obowiązek { get; set; }
  17. public Pracownik(string imię, string nazwisko, string staż)
  18. {
  19. this.imię = imię;
  20. this.nazwisko = nazwisko;
  21. stażPracy = staż;
  22. }
  23. public Pracownik(string imię, string nazwisko, string staż, string obowiązek)
  24. {
  25. this.imię = imię;
  26. this.nazwisko = nazwisko;
  27. stażPracy = staż;
  28. this.obowiązek = obowiązek;
  29. }
  30. public override string ToString()
  31. {
  32. return imię + " " + nazwisko + " Staż: " + stażPracy + obowiązek;
  33. }
  34. public virtual void Obowiązki(string obowiązek)
  35. {
  36. this.obowiązek = " Obowiązek: " + obowiązek;
  37. }
  38. public int CompareTo(Pracownik other)
  39. {
  40. return nazwisko.CompareTo(other.nazwisko);
  41. }
  42. public object Clone()
  43. {
  44. return new Pracownik(imię, nazwisko, stażPracy, obowiązek);
  45. }
  46. }
  47. class Firma : IComparable, ICloneable
  48. {
  49. string nazwa;
  50. List<Pracownik> pracownicy;
  51. public Pracownik this[int index]
  52. {
  53. get { return pracownicy[index]; }
  54. set { pracownicy[index] = value; }
  55. }
  56. public Firma(string nazwa, List<Pracownik> pracownicy)
  57. {
  58. this.nazwa = nazwa;
  59. this.pracownicy = pracownicy;
  60. }
  61. public override string ToString()
  62. {
  63. string tekst = nazwa+"\n";
  64. for (int i = 0; i < pracownicy.Count; i++)
  65. {
  66. tekst += pracownicy[i] + "\n";
  67. }
  68. return tekst;
  69. }
  70. public void DodajPracownika(Pracownik p)
  71. {
  72. pracownicy.Add(p);
  73. }
  74. public void UsuńPracownika(Pracownik p)
  75. {
  76. pracownicy.Remove(p);
  77. }
  78. public int CompareTo(object other)
  79. {
  80. return nazwa.CompareTo(other);
  81. }
  82. public object Clone()
  83. {
  84. return new Firma(nazwa, pracownicy);
  85. }
  86. }
  87. class Programista : Pracownik
  88. {
  89. public Programista(string imię, string nazwisko, string staż)
  90. : base(imię, nazwisko, staż)
  91. { }
  92. public override void Obowiązki(string obowiązek)
  93. {
  94. base.Obowiązki(obowiązek);
  95. }
  96. }
  97. class Kierownik : Pracownik
  98. {
  99. public Kierownik(string imię, string nazwisko, string staż)
  100. : base(imię, nazwisko, staż)
  101. {
  102.  
  103. }
  104. public override void Obowiązki(string obowiązek)
  105. {
  106. base.Obowiązki(obowiązek);
  107. }
  108. }
  109. static void Main(string[] args)
  110. {
  111. Pracownik p1 = new Pracownik("James", "Bond", "3 lata");
  112. Pracownik p2 = new Pracownik("Orlando", "Bloom", "5 lat");
  113. Pracownik p3 = new Pracownik("Natalie", "Portman", "9 lat");
  114. Pracownik p4 = new Pracownik("Johny", "Depp", "1 rok");
  115. Pracownik p5 = new Pracownik("Roman", "Polański", "10 lat");
  116. Pracownik p6 = new Pracownik("Brad", "Pitt", "4 lata");
  117.  
  118. List<Pracownik> aktorzy = new List<Pracownik>();
  119.  
  120. Firma f1 = new Firma("Paramount", aktorzy);
  121. f1.DodajPracownika(p1);
  122. f1.DodajPracownika(p2);
  123. f1.DodajPracownika(p3);
  124. f1.DodajPracownika(p4);
  125. f1.DodajPracownika(p5);
  126. f1.DodajPracownika(p6);
  127.  
  128. Console.WriteLine(f1);
  129.  
  130. aktorzy.Sort();
  131. Console.WriteLine(f1);
  132.  
  133. f1.UsuńPracownika(p2);
  134. Console.WriteLine(f1);
  135.  
  136. p1.Obowiązki("Mycie garów");
  137. Console.WriteLine(f1);
  138.  
  139. Kierownik kierownik = new Kierownik("Janusz", "Kierownica", "Od zawsze");
  140. kierownik.Obowiązki("Kierownik jedyny w swoim rodzaju");
  141.  
  142. Console.WriteLine(kierownik);
  143.  
  144. Programista programista = new Programista("Andrzej", "Programistyczny", "2 dni");
  145. programista.Obowiązki("pisanie programików");
  146.  
  147. Console.WriteLine(programista);
  148. Console.WriteLine();
  149.  
  150. Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p1 rozne od p2
  151. p2 = p1;
  152. Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p1 takie samo jak p2
  153. p1.Imię = "Jonathan";
  154. Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p2 takie samo jak p1
  155. p2 = (Pracownik)p1.Clone();
  156. p1 = new Pracownik("jeszczejakisinny", "totalnieinnypracownik", "blablabla");
  157. Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p1 różne od p2
  158.  
  159. Console.ReadKey();
  160. }
  161. }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement