Facebook
From Putrid Hummingbird, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 237
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading.Tasks;
  5.  
  6. namespace Zad._1
  7. {
  8.     class Pracownik:IComparable,ICloneable
  9.     {
  10.         string imię, nazwisko;
  11.         int staż_pracy;
  12.         public Pracownik(string imię, string nazwisko, int staż_pracy)
  13.         {
  14.             this.imię = imię;
  15.             this.nazwisko = nazwisko;
  16.             this.staż_pracy = staż_pracy;
  17.         }
  18.         public object Clone()
  19.         {
  20.             return new Pracownik(this.imię, this.nazwisko, this.staż_pracy);
  21.         }
  22.  
  23.         public int CompareTo(object obj)
  24.         {
  25.             Pracownik p = obj as Pracownik;
  26.             if (p.staż_pracy > staż_pracy)
  27.             {
  28.                 return -1;
  29.             }
  30.             if (p.staż_pracy == staż_pracy)
  31.             {
  32.                 return 0;
  33.             }
  34.             return 1;
  35.         }
  36.  
  37.         public virtual string Obowiązki()
  38.         {
  39.             string obowiązek = "Praca 8h dziennie";
  40.             return obowiązek;
  41.         }
  42.         public override string ToString()
  43.         {
  44.             return imię + " " + nazwisko + " staż pracy: " + staż_pracy;
  45.         }
  46.     }
  47.     class Programista: Pracownik
  48.     {
  49.         public Programista(string imię, string nazwisko, int staż_pracy)
  50.             :base(imię, nazwisko,staż_pracy)
  51.         {
  52.  
  53.         }
  54.         public override string Obowiązki()
  55.         {
  56.             return base.Obowiązki() + " oraz pisanie programów";
  57.         }
  58.     }
  59.     class Kierownik : Pracownik
  60.     {
  61.         public Kierownik(string imię, string nazwisko, int staż_pracy)
  62.             : base(imię, nazwisko, staż_pracy) { }
  63.         public override string Obowiązki()
  64.         {
  65.             return base.Obowiązki() + " oraz zarządzanie.";
  66.         }
  67.     }
  68.     class Firma:IComparable,ICloneable
  69.     {
  70.         string nazwa;
  71.         List<Pracownik> pracownicy;
  72.         public Firma(string nazwa, List<Pracownik> pracownicy)
  73.         {
  74.             this.nazwa = nazwa;
  75.             this.pracownicy = pracownicy;
  76.         }
  77.  
  78.         public object Clone()
  79.         {
  80.             List<Pracownik> p = new List<Pracownik>(this.pracownicy);
  81.             return new Firma(this.nazwa, p);
  82.         }
  83.  
  84.         public int CompareTo(object obj)
  85.         {
  86.             Firma f = obj as Firma;
  87.             if (f.pracownicy.Count > pracownicy.Count)
  88.             {
  89.                 return -1;
  90.  
  91.             }
  92.             if (f.pracownicy.Count == pracownicy.Count)
  93.             {
  94.                 return 0;
  95.             }
  96.             return 1;
  97.  
  98.         }
  99.  
  100.         public void Dodaj_Pracownika( Pracownik p)
  101.         {
  102.             pracownicy.Add(p);
  103.         }
  104.         public void Usuń_Pracownika(Pracownik p)
  105.         {
  106.             pracownicy.Remove(p);
  107.         }
  108.         public Pracownik this[int index]
  109.         {
  110.             get
  111.             {
  112.                 return pracownicy[index];
  113.             }
  114.             set
  115.             {
  116.                 Pracownik p = pracownicy.[index];
  117.                 p = value;
  118.             }
  119.         }
  120.         public override string ToString()
  121.         {
  122.             string pom="";
  123.             foreach (var item in pracownicy)
  124.             {
  125.                 pom += item+"n";
  126.             }
  127.             return nazwa + "n " + pom;
  128.         }
  129.     }
  130.     class Program
  131.     {
  132.         static void Main(string[] args)
  133.         {
  134.             Programista p1 = new Programista("Mateusz", "Nowak", 2);
  135.             Programista p2 = new Programista("Jan", "Kowalski", 14);
  136.             Programista p3 = new Programista("Maciej", "Wójcik", 10);
  137.             Kierownik k1 = new Kierownik("Tomasz", "Prezes", 5);
  138.             Pracownik pp1 = new Kierownik("Kamil", "Czekaj", 12);
  139.             Kierownik k3 = new Kierownik("Michał", "Połetek", 5);
  140.             Pracownik pp2 = new Pracownik("Kinga", "Nowakowska", 9);
  141.             List<Pracownik> p = new List<Pracownik>();
  142.             List<Pracownik> ppp2 = new List<Pracownik>();
  143.             Firma f = new Firma("Progress", p);
  144.             Firma f2 = new Firma("Mod", ppp2);
  145.             f.Dodaj_Pracownika(p1);
  146.             f.Dodaj_Pracownika(k1);
  147.             f.Dodaj_Pracownika(pp2);
  148.             Console.WriteLine(f);
  149.             Console.WriteLine("======");
  150.             Console.WriteLine(p1.CompareTo(p2));
  151.             Console.WriteLine(pp1=(Pracownik)pp2.Clone());
  152.             pp2 = new Pracownik("Michał", "Tak", 12);
  153.             Console.WriteLine(pp1);
  154.             f2=(Firma)f.Clone();
  155.             Console.WriteLine(f2);
  156.             f.Usuń_Pracownika(pp2);
  157.             Console.WriteLine(f.CompareTo(f2));
  158.             Console.WriteLine(f2);
  159.             Console.WriteLine("****");
  160.             Console.WriteLine(p1.Obowiązki());
  161.             Console.WriteLine(k1.Obowiązki());
  162.             Console.WriteLine(p2);
  163.            
  164.             Console.ReadKey();
  165.         }
  166.     }
  167. }
  168.