Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace lab4
- {
- public abstract class Pracownik
- {
- public string imie;
- public string nazwisko;
- public double etat;
- public string stanowisko;
- public Pracownik(string imie, string nazwisko)
- {
- this.imie = imie;
- this.nazwisko = nazwisko;
- }
- public virtual void OpisPracownika()
- {
- Console.WriteLine(this.imie + this.nazwisko);
- }
- public Hashtable bonus = new Hashtable();
- public void ObliczUrlop(string stanowisko, double etat)
- {
- double urlop = 0;
- urlop = etat / 30;
- Console.WriteLine("Przypada mu tyle dni urlopu: " + urlop);
- }
- public abstract void ObliczPlace(string stanowisko, double etat);
- }
- public class PracownikAdministracyjny : Pracownik
- {
- public PracownikAdministracyjny(string imie, string nazwisko) :base(imie, nazwisko)
- {
- }
- public override void ObliczPlace(string stanowisko, double etat)
- {
- bonus.Add("manager", 100);
- bonus.Add("szef", 1000);
- double wyplata = etat * 12;
- ICollection klucz = bonus.Keys;
- foreach (string key in klucz)
- {
- if (key == stanowisko)
- wyplata += Convert.ToInt32(bonus[key]);
- }
- Console.WriteLine("Pracownik otrzymuje tyle kasy: " + wyplata);
- }
- }
- public class PracownikFizyczny : Pracownik
- {
- public PracownikFizyczny(string imie, string nazwisko) : base(imie, nazwisko)
- {
- }
- public override void OpisPracownika()
- {
- base.OpisPracownika();
- }
- public override void ObliczPlace(string stanowisko, double etat)
- {
- bonus.Add("budowlaniec", 20);
- double wyplata = etat * 12;
- ICollection klucz = bonus.Keys;
- foreach (string key in klucz)
- {
- if (key == stanowisko)
- wyplata += Convert.ToInt32(bonus[key]);
- }
- Console.WriteLine("Pracownik otrzymuje tyle kasy: " + wyplata);
- }
- }
- delegate void Del(string stanowisko, double etat);
- public class Program
- {
- static void Main(string[] args)
- {
- List<Pracownik> pra = new List<Pracownik>();
- PracownikAdministracyjny x1 = new PracownikAdministracyjny("Grzegorz", "kowalski");
- //x1.ObliczPlace("szef", 500);
- pra.Add(x1);
- //x1.OpisPracownika();
- for (int i=0;i<3;i++)
- {
- Console.WriteLine("Dodac pracownika?");
- Console.WriteLine("tak/nie");
- string dodaj = Console.ReadLine();
- if (dodaj == "tak")
- {
- Console.WriteLine("PA czy PF ");
- dodaj = Console.ReadLine();
- if (dodaj == "PA")
- {
- Console.WriteLine("Imie, nazwisko, stanowisko, etat");
- PracownikAdministracyjny x2 = new PracownikAdministracyjny(Console.ReadLine(), Console.ReadLine());
- x2.stanowisko = Console.ReadLine();
- x2.etat = Convert.ToDouble(Console.ReadLine());
- //x2.ObliczPlace(x2.stanowisko, x2.etat);
- pra.Add(x2);
- }
- else
- {
- Console.WriteLine("Imie, nazwisko, stanowisko, etat");
- PracownikFizyczny x2 = new PracownikFizyczny(Console.ReadLine(), Console.ReadLine());
- x2.stanowisko = Console.ReadLine();
- x2.etat = Convert.ToDouble(Console.ReadLine());
- //x2.ObliczUrlop(x2.stanowisko, x2.etat);
- pra.Add(x2);
- }
- }
- else
- {
- break;
- }
- }
- foreach(Pracownik pracownik in pra)
- {
- pracownik.OpisPracownika();
- Del d;
- if (pra.IndexOf(pracownik) % 2 == 0)
- {
- d = pracownik.ObliczPlace;
- //d(pra[n].stanowisko, pra[n].etat);
- }
- else
- {
- d = pracownik.ObliczUrlop;
- }
- d(pracownik.stanowisko, pracownik.etat);
- }
- /*
- for (int n = 0; n < ; n++)
- {
- Del d;
- if (n%2==0)
- {
- d = pra[n].ObliczPlace;
- //d(pra[n].stanowisko, pra[n].etat);
- }
- else
- {
- d = pra[n].ObliczUrlop;
- }
- d(pra[n].stanowisko, pra[n].etat);
- }
- */
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement