Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace zad1
- {
- class Program
- {
- class Pracownik : IComparable<Pracownik>, ICloneable
- {
- string imię;
- public string Imię { get; set; }
- string nazwisko;
- public string Nazwisko { get; set; }
- string stażPracy;
- public string StażPracy { get; set; }
- string obowiązek = null;
- string Obowiązek { get; set; }
- public Pracownik(string imię, string nazwisko, string staż)
- {
- this.imię = imię;
- this.nazwisko = nazwisko;
- stażPracy = staż;
- }
- public Pracownik(string imię, string nazwisko, string staż, string obowiązek)
- {
- this.imię = imię;
- this.nazwisko = nazwisko;
- stażPracy = staż;
- this.obowiązek = obowiązek;
- }
- public override string ToString()
- {
- return imię + " " + nazwisko + " Staż: " + stażPracy + obowiązek;
- }
- public virtual void Obowiązki(string obowiązek)
- {
- this.obowiązek = " Obowiązek: " + obowiązek;
- }
- public int CompareTo(Pracownik other)
- {
- return nazwisko.CompareTo(other.nazwisko);
- }
- public object Clone()
- {
- return new Pracownik(imię, nazwisko, stażPracy, obowiązek);
- }
- }
- class Firma : IComparable, ICloneable
- {
- string nazwa;
- List<Pracownik> pracownicy;
- public Pracownik this[int index]
- {
- get { return pracownicy[index]; }
- set { pracownicy[index] = value; }
- }
- public Firma(string nazwa, List<Pracownik> pracownicy)
- {
- this.nazwa = nazwa;
- this.pracownicy = pracownicy;
- }
- public override string ToString()
- {
- string tekst = nazwa+"\n";
- for (int i = 0; i < pracownicy.Count; i++)
- {
- tekst += pracownicy[i] + "\n";
- }
- return tekst;
- }
- public void DodajPracownika(Pracownik p)
- {
- pracownicy.Add(p);
- }
- public void UsuńPracownika(Pracownik p)
- {
- pracownicy.Remove(p);
- }
- public int CompareTo(object other)
- {
- return nazwa.CompareTo(other);
- }
- public object Clone()
- {
- return new Firma(nazwa, pracownicy);
- }
- }
- class Programista : Pracownik
- {
- public Programista(string imię, string nazwisko, string staż)
- : base(imię, nazwisko, staż)
- { }
- public override void Obowiązki(string obowiązek)
- {
- base.Obowiązki(obowiązek);
- }
- }
- class Kierownik : Pracownik
- {
- public Kierownik(string imię, string nazwisko, string staż)
- : base(imię, nazwisko, staż)
- {
- }
- public override void Obowiązki(string obowiązek)
- {
- base.Obowiązki(obowiązek);
- }
- }
- static void Main(string[] args)
- {
- Pracownik p1 = new Pracownik("James", "Bond", "3 lata");
- Pracownik p2 = new Pracownik("Orlando", "Bloom", "5 lat");
- Pracownik p3 = new Pracownik("Natalie", "Portman", "9 lat");
- Pracownik p4 = new Pracownik("Johny", "Depp", "1 rok");
- Pracownik p5 = new Pracownik("Roman", "Polański", "10 lat");
- Pracownik p6 = new Pracownik("Brad", "Pitt", "4 lata");
- List<Pracownik> aktorzy = new List<Pracownik>();
- Firma f1 = new Firma("Paramount", aktorzy);
- f1.DodajPracownika(p1);
- f1.DodajPracownika(p2);
- f1.DodajPracownika(p3);
- f1.DodajPracownika(p4);
- f1.DodajPracownika(p5);
- f1.DodajPracownika(p6);
- Console.WriteLine(f1);
- aktorzy.Sort();
- Console.WriteLine(f1);
- f1.UsuńPracownika(p2);
- Console.WriteLine(f1);
- p1.Obowiązki("Mycie garów");
- Console.WriteLine(f1);
- Kierownik kierownik = new Kierownik("Janusz", "Kierownica", "Od zawsze");
- kierownik.Obowiązki("Kierownik jedyny w swoim rodzaju");
- Console.WriteLine(kierownik);
- Programista programista = new Programista("Andrzej", "Programistyczny", "2 dni");
- programista.Obowiązki("pisanie programików");
- Console.WriteLine(programista);
- Console.WriteLine();
- Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p1 rozne od p2
- p2 = p1;
- Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p1 takie samo jak p2
- p1.Imię = "Jonathan";
- Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p2 takie samo jak p1
- p2 = (Pracownik)p1.Clone();
- p1 = new Pracownik("jeszczejakisinny", "totalnieinnypracownik", "blablabla");
- Console.WriteLine("Pracownik p1: {0}\nPracownik p2: {1}", p1, p2); // p1 różne od p2
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement