Advertisement
Guest User

Untitled

a guest
May 24th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.IO;
  8.  
  9. namespace lab4
  10. {
  11.  
  12. public abstract class Pracownik
  13. {
  14. public string imie;
  15. public string nazwisko;
  16. public double etat;
  17. public string stanowisko;
  18.  
  19. public Pracownik(string imie, string nazwisko)
  20. {
  21. this.imie = imie;
  22. this.nazwisko = nazwisko;
  23. }
  24. public virtual void OpisPracownika()
  25. {
  26. Console.WriteLine(this.imie + this.nazwisko);
  27. }
  28.  
  29. public Hashtable bonus = new Hashtable();
  30.  
  31. public void ObliczUrlop(string stanowisko, double etat)
  32. {
  33. double urlop = 0;
  34. urlop = etat / 30;
  35.  
  36. Console.WriteLine("Przypada mu tyle dni urlopu: " + urlop);
  37. }
  38.  
  39. public abstract void ObliczPlace(string stanowisko, double etat);
  40. }
  41.  
  42. public class PracownikAdministracyjny : Pracownik
  43. {
  44.  
  45. public PracownikAdministracyjny(string imie, string nazwisko) :base(imie, nazwisko)
  46. {
  47.  
  48. }
  49.  
  50. public override void ObliczPlace(string stanowisko, double etat)
  51. {
  52. bonus.Add("manager", 100);
  53. bonus.Add("szef", 1000);
  54. double wyplata = etat * 12;
  55. ICollection klucz = bonus.Keys;
  56.  
  57. foreach (string key in klucz)
  58. {
  59. if (key == stanowisko)
  60. wyplata += Convert.ToInt32(bonus[key]);
  61. }
  62. Console.WriteLine("Pracownik otrzymuje tyle kasy: " + wyplata);
  63. }
  64. }
  65.  
  66. public class PracownikFizyczny : Pracownik
  67. {
  68. public PracownikFizyczny(string imie, string nazwisko) : base(imie, nazwisko)
  69. {
  70.  
  71. }
  72. public override void OpisPracownika()
  73. {
  74. base.OpisPracownika();
  75. }
  76.  
  77. public override void ObliczPlace(string stanowisko, double etat)
  78. {
  79. bonus.Add("budowlaniec", 20);
  80. double wyplata = etat * 12;
  81. ICollection klucz = bonus.Keys;
  82.  
  83. foreach (string key in klucz)
  84. {
  85. if (key == stanowisko)
  86. wyplata += Convert.ToInt32(bonus[key]);
  87. }
  88. Console.WriteLine("Pracownik otrzymuje tyle kasy: " + wyplata);
  89. }
  90. }
  91.  
  92. delegate void Del(string stanowisko, double etat);
  93.  
  94. public class Program
  95. {
  96. static void Main(string[] args)
  97. {
  98. List<Pracownik> pra = new List<Pracownik>();
  99. PracownikAdministracyjny x1 = new PracownikAdministracyjny("Grzegorz", "kowalski");
  100. //x1.ObliczPlace("szef", 500);
  101. pra.Add(x1);
  102. //x1.OpisPracownika();
  103.  
  104.  
  105. for (int i=0;i<3;i++)
  106. {
  107. Console.WriteLine("Dodac pracownika?");
  108. Console.WriteLine("tak/nie");
  109.  
  110. string dodaj = Console.ReadLine();
  111. if (dodaj == "tak")
  112. {
  113. Console.WriteLine("PA czy PF ");
  114. dodaj = Console.ReadLine();
  115. if (dodaj == "PA")
  116. {
  117. Console.WriteLine("Imie, nazwisko, stanowisko, etat");
  118. PracownikAdministracyjny x2 = new PracownikAdministracyjny(Console.ReadLine(), Console.ReadLine());
  119. x2.stanowisko = Console.ReadLine();
  120. x2.etat = Convert.ToDouble(Console.ReadLine());
  121. //x2.ObliczPlace(x2.stanowisko, x2.etat);
  122. pra.Add(x2);
  123. }
  124. else
  125. {
  126. Console.WriteLine("Imie, nazwisko, stanowisko, etat");
  127. PracownikFizyczny x2 = new PracownikFizyczny(Console.ReadLine(), Console.ReadLine());
  128. x2.stanowisko = Console.ReadLine();
  129. x2.etat = Convert.ToDouble(Console.ReadLine());
  130. //x2.ObliczUrlop(x2.stanowisko, x2.etat);
  131. pra.Add(x2);
  132. }
  133.  
  134. }
  135. else
  136. {
  137. break;
  138. }
  139. }
  140. foreach(Pracownik pracownik in pra)
  141. {
  142. pracownik.OpisPracownika();
  143. Del d;
  144. if (pra.IndexOf(pracownik) % 2 == 0)
  145. {
  146. d = pracownik.ObliczPlace;
  147. //d(pra[n].stanowisko, pra[n].etat);
  148. }
  149. else
  150. {
  151. d = pracownik.ObliczUrlop;
  152. }
  153. d(pracownik.stanowisko, pracownik.etat);
  154.  
  155. }
  156. /*
  157. for (int n = 0; n < ; n++)
  158. {
  159. Del d;
  160. if (n%2==0)
  161. {
  162. d = pra[n].ObliczPlace;
  163. //d(pra[n].stanowisko, pra[n].etat);
  164. }
  165. else
  166. {
  167. d = pra[n].ObliczUrlop;
  168. }
  169. d(pra[n].stanowisko, pra[n].etat);
  170. }
  171. */
  172. Console.ReadKey();
  173. }
  174. }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement