Advertisement
Danielos168

Untitled

Jun 24th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.15 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading.Tasks;
  5.  
  6. namespace Zad1
  7. {
  8.     class Pracownik : IComparable , ICloneable
  9.     {
  10.         string imie, nazwisko;
  11.         int staz;
  12.  
  13.         public Pracownik(string imie, string nazwisko, int staz)
  14.         {
  15.             this.nazwisko = nazwisko;
  16.             this.imie = imie;
  17.             this.staz = staz;
  18.         }
  19.  
  20.         public override string ToString()
  21.         {
  22.             return $"Pracownik: {imie} {nazwisko} o stażu: {staz}";
  23.         }
  24.  
  25.         public object Clone()
  26.         {
  27.             return new Pracownik(this.imie,this.nazwisko,this.staz);
  28.         }
  29.  
  30.         public int CompareTo(object obj)
  31.         {
  32.             if (obj != null && obj is Pracownik)
  33.                 if (staz == ((Pracownik) obj).staz)
  34.                     return 0;
  35.             if (staz > ((Pracownik) obj).staz) return 1;
  36.             else return -1;
  37.         }
  38.  
  39.         public virtual string Obowiazki()
  40.         {
  41.             return "Obowiązek: ";
  42.         }
  43.     }
  44.  
  45.     class Programista : Pracownik
  46.     {
  47.         public Programista(string imie, string nazwisko, int staz) : base(imie,nazwisko,staz)
  48.         {
  49.            
  50.         }
  51.  
  52.         public override string Obowiazki()
  53.         {
  54.             return base.Obowiazki() + $"Programista. ";
  55.         }
  56.     }
  57.  
  58.     class Kierownik : Pracownik
  59.     {
  60.         public Kierownik(string imie, string nazwisko, int staz) : base(imie, nazwisko, staz)
  61.         {
  62.            
  63.         }
  64.  
  65.         public override string Obowiazki()
  66.         {
  67.             return base.Obowiazki() + "Kierownik. ";
  68.         }
  69.     }
  70.  
  71.     class Firma : IComparable , ICloneable
  72.     {
  73.         string nazwa;
  74.         List<Pracownik> pracownicy;
  75.  
  76.         public Firma(string nazwa, List<Pracownik> pracownicy)
  77.         {
  78.             this.nazwa = nazwa;
  79.             this.pracownicy = pracownicy;
  80.         }
  81.  
  82.         public override string ToString()
  83.         {
  84.             string temp = "";
  85.             foreach (var VARIABLE in pracownicy)
  86.             {
  87.                 temp += " " + VARIABLE.ToString();
  88.             }
  89.             return $"Firma: {nazwa} ma pracowników: {temp}. ";
  90.         }
  91.  
  92.         public object Clone()
  93.         {
  94.             return new Firma(this.nazwa, this.pracownicy);
  95.         }
  96.  
  97.         public int CompareTo(object obj)
  98.         {
  99.             if (obj != null && obj is Firma)
  100.                 if (pracownicy.Count == ((Firma) obj).pracownicy.Count)
  101.                     return 0;
  102.             if (pracownicy.Count > ((Firma) obj).pracownicy.Count) return 1;
  103.             else return -1;
  104.         }
  105.  
  106.         public void DodajPracownika(Pracownik t)
  107.         {
  108.             if (t != null) pracownicy.Add(t);
  109.         }
  110.         public void UsunPracownika(Pracownik t)
  111.         {
  112.             if (t != null)
  113.             {
  114.                 if (pracownicy.Contains(t)) pracownicy.Remove(t);
  115.             }
  116.         }
  117.  
  118.         public Pracownik this[int i]
  119.         {
  120.             get { return pracownicy[i]; }
  121.         }
  122.     }
  123.  
  124.     class Program
  125.     {
  126.         static void Main(string[] args)
  127.         {
  128.         }
  129.     }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement