Advertisement
bazmikel

OOP | Zadanie2. Lab02

Mar 10th, 2020
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.69 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Lab02
  5. {
  6.     class Osoba
  7.     {
  8.         protected string imie;
  9.         protected string nazwisko;
  10.         protected string dataUrodzenia;
  11.  
  12.         public Osoba()
  13.         {
  14.             imie = "nieznane";
  15.             nazwisko = "nieznane";
  16.             dataUrodzenia = "nieznana";
  17.         }
  18.  
  19.         public Osoba(string imie_, string nazwisko_, string dataUrodzenia_)
  20.         {
  21.             imie = imie_;
  22.             nazwisko = nazwisko_;
  23.             dataUrodzenia = dataUrodzenia_;
  24.         }
  25.  
  26.  
  27.         public virtual void WypiszInfo()
  28.         {
  29.             Console.WriteLine("Osoba: " + imie + " " + nazwisko + " " + dataUrodzenia);
  30.         }
  31.  
  32.         public string Imie
  33.         {
  34.             get
  35.             {
  36.                 return imie;
  37.             }
  38.  
  39.             set
  40.             {
  41.                 imie = value;
  42.             }
  43.         }
  44.  
  45.         public string Nazwisko
  46.         {
  47.             get
  48.             {
  49.                 return nazwisko;
  50.             }
  51.  
  52.             set
  53.             {
  54.                 nazwisko = value;
  55.             }
  56.         }
  57.        
  58.         public string DataUrodzenia
  59.         {
  60.             get
  61.             {
  62.                 return dataUrodzenia;
  63.             }
  64.             set
  65.             {
  66.                 dataUrodzenia = value;
  67.             }
  68.         }
  69.     }
  70.  
  71.     class Student : Osoba {
  72.         private int rok;
  73.         private int grupa;
  74.         private int nrIndeksu;
  75.         private List<Ocena> oceny = new List<Ocena>(); // tworzymy liste ocen domyslnym konstruktorem objektu List
  76.         public Student()
  77.         {
  78.             rok = 0;
  79.             grupa = 0;
  80.             nrIndeksu = 0;
  81.  
  82.         }
  83.  
  84.         public Student(string imie_, string nazwisko_, string dataUrodzenia_, int rok_, int grupa_, int nrIndeksu_) : base(imie_, nazwisko_, dataUrodzenia_)
  85.         {
  86.             rok = rok_;
  87.             grupa = grupa_;
  88.             nrIndeksu = nrIndeksu_;
  89.  
  90.         }
  91.         public void DodajOcene(string nazwaPrzedmitu, string data, double wartosc)
  92.         {
  93.             Ocena o = new Ocena(nazwaPrzedmitu, data, wartosc);
  94.             oceny.Add(o);
  95.         }
  96.  
  97.         public void WypiszOceny()
  98.         {
  99.             /*for(int i = 0; i < oceny.Count; i++)
  100.             {
  101.                 Console.WriteLine(oceny[i].Wartosc);
  102.             }*/
  103.             // option A (using for loop)
  104.  
  105.             foreach (Ocena ocena in oceny)
  106.             {
  107.                 Console.WriteLine(ocena.Wartosc);
  108.             }
  109.             // option B (using foreach statement)
  110.            
  111.         }
  112.  
  113.         public void WypiszOceny(string nazwaPrzedmiotu)
  114.         {
  115.             foreach(Ocena ocena in oceny)
  116.             {
  117.                 if (ocena.NazwaPrzedmiotu == nazwaPrzedmiotu)
  118.                     Console.WriteLine(ocena.Wartosc);
  119.             }
  120.         }
  121.  
  122.         public void UsunOcene(string nazwaPrzedmiotu, string data, double wartosc) {
  123.             for (int i = 0; i < oceny.Count;)
  124.             {
  125.                 if (oceny[i].NazwaPrzedmiotu == nazwaPrzedmiotu && oceny[i].Data == data && oceny[i].Wartosc == wartosc)
  126.                     oceny.RemoveAt(i);
  127.                 else ++i;
  128.             }
  129.         }
  130.  
  131.         public void UsunOceny(string nazwaPrzedmiotu)
  132.         {
  133.             for(int i = 0; i  < oceny.Count;)
  134.             {
  135.                 if (oceny[i].NazwaPrzedmiotu == nazwaPrzedmiotu)
  136.                     oceny.RemoveAt(i);
  137.                 else ++i;
  138.             }
  139.  
  140.         }
  141.  
  142.         public void UsunOceny()
  143.         {
  144.             oceny.Clear();
  145.         }
  146.  
  147.         public override void WypiszInfo()
  148.         {
  149.             Console.WriteLine("*Osoba: " + imie + " " + nazwisko + " " + dataUrodzenia);
  150.             Console.WriteLine("*Info studenta: " + rok + " rok. " + grupa + " grupa.  NumerIndeksu: " + nrIndeksu);
  151.            
  152.             if (oceny.Count != 0)
  153.             {
  154.                 Console.WriteLine("Lista wszystkich ocen studenta: ");
  155.                 foreach (Ocena ocena in oceny)
  156.                 {
  157.                     Console.WriteLine("Data: " + ocena.Data + ". Przedmiot: " + ocena.NazwaPrzedmiotu + ". Ocena: " + ocena.Wartosc);
  158.                 }
  159.             }
  160.             else
  161.                 Console.WriteLine("Brak obecnych ocen w systemie");
  162.         }
  163.  
  164.         public int Rok{
  165.             get { return rok; }
  166.             set { rok = value; }
  167.        }
  168.         public int Grupa
  169.         {
  170.             get { return grupa; }
  171.             set { grupa = value; }
  172.         }
  173.        
  174.         public int NrIndeksu
  175.         {
  176.             get { return nrIndeksu; }
  177.             set { nrIndeksu = value; }
  178.         }
  179.     }
  180.  
  181.     class Ocena
  182.     {
  183.         private string nazwaPrzedmiotu;
  184.         private string data;
  185.         private double wartosc;
  186.  
  187.  
  188.  
  189.         public Ocena()
  190.         {
  191.             nazwaPrzedmiotu = "nieznana";
  192.             data = "nieznana";
  193.             wartosc = 0.0;
  194.         }
  195.  
  196.         public Ocena(string nazwaPrzedmiotu_, string data_, double wartosc_)
  197.         {
  198.             nazwaPrzedmiotu = nazwaPrzedmiotu_;
  199.             data = data_;
  200.             wartosc = wartosc_;
  201.         }
  202.  
  203.         public void WypiszInfo()
  204.         {
  205.             Console.WriteLine("Info o ocenie: " + nazwaPrzedmiotu + " " + data + ". Ocena: " + wartosc);
  206.         }
  207.  
  208.  
  209.         public string NazwaPrzedmiotu
  210.         {
  211.             get { return nazwaPrzedmiotu; }
  212.             set { nazwaPrzedmiotu = value; }
  213.         }
  214.  
  215.         public string Data{
  216.             get { return data; }
  217.             set { data = value; }
  218.         }
  219.  
  220.         public double Wartosc
  221.         {
  222.             get { return wartosc; }
  223.             set { wartosc = value; }
  224.         }
  225.     }
  226.    
  227.     class Pilkarz: Osoba
  228.     {
  229.         private string pozycja;
  230.         private string klub;
  231.         private int liczbaGoli = 0;
  232.  
  233.         public Pilkarz()
  234.         {
  235.             pozycja = "nieznana";
  236.             klub = "nieznany";
  237.            
  238.         }
  239.  
  240.         public Pilkarz(string imie_, string nazwisko_, string dataUrodzenia_, string pozycja_, string klub_): base(imie_, nazwisko_, dataUrodzenia_)
  241.         {
  242.             pozycja = pozycja_;
  243.             klub = klub_;
  244.         }
  245.  
  246.         public override void WypiszInfo()
  247.         {
  248.             Console.WriteLine("**Osoba: " + imie + " " + nazwisko + " " + dataUrodzenia);
  249.             Console.WriteLine("**Info pilkarza: " + pozycja + " " + klub + ". Liczba goli: " + liczbaGoli);
  250.         }
  251.         public void StrzelGola()
  252.         {
  253.             liczbaGoli++;
  254.         }
  255.  
  256.         public string Pozycja
  257.         {
  258.             get
  259.             {
  260.                 return pozycja;
  261.             }
  262.             set
  263.             {
  264.                 pozycja = value;
  265.             }
  266.         }
  267.  
  268.         public string Klub
  269.         {
  270.             get
  271.             {
  272.                 return klub;
  273.             }
  274.  
  275.             set
  276.             {
  277.                 klub = value;
  278.             }
  279.                
  280.         }
  281.     }
  282.  
  283.  
  284.     class Program
  285.     {
  286.         static void Main(string[] args)
  287.         {
  288.             // List<int> lista = new List<int>(); // inicjalizacja listy
  289.             Osoba o = new Osoba("Adam", "Mis", "20.03.1980");
  290.             Osoba o2 = new Student("Michal", "Kot", "13.04.1990", 2, 1, 12345);
  291.             Osoba o3 = new Pilkarz("Mateusz", "Zbik", "10.08.1986", "obronca", "FC Czestochowa");
  292.             o.WypiszInfo();
  293.             o2.WypiszInfo();
  294.             o3.WypiszInfo();
  295.  
  296.             Student s = new Student("Krzystof", "Jez", "22.12.1990", 2, 5, 54321);
  297.             Pilkarz p = new Pilkarz("Piotr", "Kos", "14.09.1984", "nadastnik", "FC Politechnika");
  298.  
  299.             s.WypiszInfo();
  300.             p.WypiszInfo();
  301.             ((Pilkarz)o3).StrzelGola(); // access to pilkarzs method using base object
  302.             p.StrzelGola();
  303.             p.StrzelGola();
  304.  
  305.             o3.WypiszInfo();
  306.             p.WypiszInfo();
  307.  
  308.  
  309.             Console.WriteLine("**** ZADANIE 2 *****");
  310.             ((Student)o2).DodajOcene("PO", "20.02.2011", 5.0);
  311.             ((Student)o2).DodajOcene("Bazy danych", "13.02.2011", 4.0);
  312.  
  313.             o2.WypiszInfo();
  314.  
  315.             s.DodajOcene("Bazy danych", "01.05.2011", 5.0);
  316.             s.DodajOcene("AWW", "11.05.2011", 5.0);
  317.             s.DodajOcene("AWW", "02.04.2011", 4.5);
  318.  
  319.             s.WypiszInfo();
  320.  
  321.             s.UsunOcene("AWW", "02.04.2011", 4.5);
  322.  
  323.             s.WypiszInfo();
  324.  
  325.             s.DodajOcene("AWW", "02.04.2011", 4.5);
  326.             s.UsunOceny("AWW");
  327.  
  328.             s.WypiszInfo();
  329.  
  330.             s.DodajOcene("AWW", "02.04.2011", 4.5);
  331.             s.UsunOceny();
  332.  
  333.             s.WypiszInfo();
  334.  
  335.  
  336.  
  337.             Console.ReadKey();
  338.         }
  339.     }
  340. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement