Advertisement
bazmikel

Untitled

Apr 13th, 2020
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 15.49 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Lab6
  5. {
  6.  
  7.  
  8.     class Program
  9.     {
  10.  
  11.         class Dyrekcja
  12.         {
  13.             private List<Klatka> klatki = new List<Klatka>();
  14.             private List<Ptak> ptaki = new List<Ptak>();
  15.             private List<Ssak> ssaki = new List<Ssak>();
  16.             private List<Gad> gady = new List<Gad>();
  17.            
  18.             public void ZbudujKlatke(double pojemnosc)
  19.             {
  20.                 Klatka dodawanaKlatka = new Klatka(pojemnosc);
  21.                 klatki.Add(dodawanaKlatka);
  22.             }
  23.  
  24.             public bool PowiekszKlatke(int id, double nowaPojemnosc)
  25.             {
  26.                 bool success = false;
  27.  
  28.                 foreach (Klatka klatka in klatki) {
  29.                     if (klatka.IdKlatki == id)
  30.                     {
  31.                         klatka.Pojemnosc = nowaPojemnosc;
  32.                         success = true;
  33.                     }
  34.                }
  35.                 return success;
  36.             }
  37.  
  38.             public void ZarejestrujPtaka(int rozpietoscSkrzydel, int wytzymalosc_, string gatunek, string rodzajPozywienia, string pochodzenie)
  39.             {
  40.                 Ptak dodawanyPtak = new Ptak(rozpietoscSkrzydel, wytzymalosc_, gatunek, rodzajPozywienia, pochodzenie);
  41.                 ptaki.Add(dodawanyPtak);
  42.             }
  43.  
  44.             public void ZarejestrujSsaka(string naturalneSrodowisko_, string gatunek, string rodzajPozywienia, string pochodzenie)
  45.             {
  46.                 Ssak dodawanySsak = new Ssak(naturalneSrodowisko_, gatunek, rodzajPozywienia, pochodzenie);
  47.                 ssaki.Add(dodawanySsak);
  48.             }
  49.  
  50.             public void ZarejestrujGada(bool czyJadowity_, string gatunek, string rodzajPozywienia, string pochodzenie)
  51.             {
  52.                 Gad dodawanyGad = new Gad(czyJadowity_, gatunek, rodzajPozywienia, pochodzenie);
  53.                 gady.Add(dodawanyGad);
  54.             }
  55.  
  56.             public bool PrzypiszKlatke(Zwierze zwierze, int id)
  57.             {
  58.                 bool success = false;
  59.  
  60.                 foreach(Klatka klatka in klatki)
  61.                 {
  62.                     if(klatka.IdKlatki == id && klatka.KlatkaZajeta == false)
  63.                     {
  64.                         zwierze.Klatka.IdKlatki = id;
  65.                         success = true;
  66.                     }
  67.  
  68.                 }
  69.  
  70.                 if (!success)
  71.                     Console.WriteLine("[!!!!] NIE UDALO SIE PRZYPISAC! ");
  72.  
  73.  
  74.                 return success;
  75.                
  76.             }
  77.  
  78.             public void InfoKlatki() // finish extented showup (using bool)
  79.             {
  80.                 foreach (Klatka klatka in klatki)
  81.                     klatka.WypiszInfo();
  82.             }
  83.  
  84.            
  85.            
  86.         };
  87.  
  88.         class Klatka {
  89.  
  90.             private double pojemnosc = 0;
  91.             private static int liczbaKlatek = 0;
  92.             private int idKlatki;
  93.             private bool wymagaSprzatania = false;
  94.             private bool klatkaZajeta = false;
  95.  
  96.             public bool KlatkaZajeta
  97.             {
  98.                 get => klatkaZajeta;
  99.                 set => klatkaZajeta = value;
  100.             }
  101.  
  102.        
  103.             public double Pojemnosc
  104.             {
  105.                 get => pojemnosc;
  106.                 set => pojemnosc = value;
  107.  
  108.             }
  109.             public int IdKlatki
  110.             {
  111.                 get => idKlatki;
  112.                 set => idKlatki = value;
  113.             }
  114.  
  115.             public bool WymagaSprzatania { set => wymagaSprzatania = value; }
  116.             public Klatka(double pojemnosc_)
  117.             {
  118.                 pojemnosc = pojemnosc_;
  119.                 liczbaKlatek++;
  120.                 idKlatki = liczbaKlatek;
  121.             }
  122.  
  123.  
  124.            
  125.  
  126.  
  127.  
  128.  
  129.             public void WypiszInfo()
  130.             {
  131.                 Console.WriteLine("[INFO O KLATCE ID: " +  idKlatki + "] POJEMNOSC: " + pojemnosc + " [m3]. Wymaga sprzatania?: " + wymagaSprzatania);
  132.             }
  133.  
  134.        
  135.         }
  136.  
  137.  
  138.         class Zwierze {
  139.             protected string gatunek { get; } = " ";
  140.             protected string rodzajPozywienia { get; } = " ";
  141.             protected string pochodzenie { get; } = " ";
  142.             protected Klatka klatka;
  143.             protected List<string> cechy = new List<string>();
  144.             protected List<string> umietnosci = new List<string>();
  145.  
  146.             public string Gatunek{ get => gatunek; }
  147.             public Klatka Klatka
  148.             {
  149.                 get => klatka;
  150.                 set => klatka = value;
  151.             }
  152.  
  153.             public Zwierze()
  154.             {
  155.                 gatunek = "nieznany";
  156.                 rodzajPozywienia = "nieznany";
  157.                 pochodzenie = "nieznane";
  158.             }
  159.  
  160.             public Zwierze(string gatunek_, string rodzajPozywienia_, string pochodzenie_)
  161.             {
  162.                 gatunek = gatunek_;
  163.                 rodzajPozywienia = rodzajPozywienia_;
  164.                 pochodzenie = pochodzenie_;
  165.                
  166.             }
  167.  
  168.            
  169.             public void DodajCeche(string cecha)
  170.             {
  171.                 cechy.Add(cecha);
  172.             }
  173.  
  174.             public void DodajUmietnosc(string umietnosc)
  175.             {
  176.                 umietnosci.Add(umietnosc);
  177.             }
  178.  
  179.             public void PobrudzicKlatke()
  180.             {
  181.                 klatka.WymagaSprzatania = true;
  182.             }
  183.  
  184.             public void InfoCechy()
  185.             {
  186.                 if (cechy.Count > 0)
  187.                 {
  188.                     Console.WriteLine("CECHY:");
  189.                     foreach (string cecha in cechy)
  190.                         Console.WriteLine(cecha);
  191.                 }
  192.                 else
  193.                 {
  194.                     Console.WriteLine("[!!!] NIE MA PRZYPISANYCH CECH DO ZWIERZATKA");
  195.                 }
  196.             }
  197.  
  198.             public void InfoUmietnosci()
  199.             {
  200.                 if (umietnosci.Count > 0)
  201.                 {
  202.                     Console.WriteLine("UMIETNOSCI:");
  203.                     foreach (string um in umietnosci)
  204.                         Console.WriteLine(um);
  205.                 }
  206.                 else
  207.                 {
  208.                     Console.WriteLine("[!!!] NIE MA PRZYPISANYCH UMIETNOSCI DO ZWIERZATKA");
  209.                 }
  210.             }
  211.  
  212.             public virtual void WypiszInfo()
  213.             {
  214.                 Console.WriteLine("[INFO O  ZWIERZAKU] GATUNEK: " + gatunek + ". ROD. POZYWIENIA: " + rodzajPozywienia + ". POCHODZENIE: " + pochodzenie);
  215.             }
  216.        
  217.         };
  218.  
  219.         class Ptak : Zwierze {
  220.             private double rozpietoscSkrzydel = 0.0, wytrzymalosc = 0.0;
  221.            
  222.             public Ptak(): base()
  223.             {            
  224.                 rozpietoscSkrzydel = wytrzymalosc = 0.0;
  225.             }
  226.  
  227.             public Ptak(int rozpietoscSkrzydel_, int wytzymalosc_, string gatunek, string rodzajPozywienia, string pochodzenie) : base(gatunek, rodzajPozywienia, pochodzenie)
  228.             {
  229.                 rozpietoscSkrzydel = rozpietoscSkrzydel_;
  230.                 wytrzymalosc = wytzymalosc_;
  231.             }
  232.  
  233.             public double MaksymalnaDlugoscLotu()
  234.             {
  235.                 return rozpietoscSkrzydel * wytrzymalosc;
  236.             }
  237.  
  238.             public void WypiszInfo(bool InfoCechy_, bool InfoUmietnosci_)
  239.             {
  240.                 Console.WriteLine("\n[INFO O PTAKU] ROZPIETOSCSKRZYDEL: " + rozpietoscSkrzydel + ". WYTRZYMALOSC: " + wytrzymalosc);
  241.                 Console.WriteLine("[INFO O PTAKU] GATUNEK: " + gatunek + ". RODZ.POZYWIENIA: " + rodzajPozywienia + ". POCHODZENIE: " + pochodzenie);
  242.                 if (InfoCechy_)
  243.                     InfoCechy();
  244.                 if (InfoUmietnosci_)
  245.                     InfoUmietnosci();
  246.             }
  247.  
  248.         }
  249.  
  250.  
  251.  
  252.  
  253.         class Ssak: Zwierze {
  254.             private string naturalneSrodowisko = " ";
  255.  
  256.             public Ssak(): base()
  257.             {
  258.                 naturalneSrodowisko = "nieznane";
  259.             }
  260.  
  261.             public Ssak(string naturalneSrodowisko_, string gatunek, string rodzajPozywienia, string pochodzenie) : base(gatunek, rodzajPozywienia, pochodzenie)
  262.             {
  263.                 naturalneSrodowisko = naturalneSrodowisko_;
  264.             }
  265.  
  266.  
  267.             public void WypiszInfo(bool InfoCechy_, bool InfoUmietnosci_)
  268.             {
  269.                 Console.WriteLine("\n[INFO O SSAKU] NATURALNE SRODOWISKO: " + naturalneSrodowisko);
  270.                 Console.WriteLine("[INFO O SSAKU] GATUNEK: " + gatunek + ". RODZ.POZYWIENIA: " + rodzajPozywienia + ". POCHODZENIE: " + pochodzenie);
  271.                 if (InfoCechy_)
  272.                     InfoCechy();
  273.                 if (InfoUmietnosci_)
  274.                     InfoUmietnosci();
  275.             }
  276.  
  277.         }
  278.  
  279.        
  280.  
  281.         class Gad: Zwierze {
  282.             private bool czyJadowity = false;
  283.             public Gad(): base()
  284.             {
  285.                 czyJadowity = false;
  286.             }
  287.  
  288.             public Gad(bool czyJadowity_ , string gatunek, string rodzajPozywienia, string pochodzenie) : base(gatunek, rodzajPozywienia, pochodzenie)
  289.             {
  290.                 czyJadowity = czyJadowity_;
  291.             }
  292.  
  293.             public  void WypiszInfo(bool InfoCechy_, bool InfoUmietnosci_)
  294.             {
  295.                 if(czyJadowity)
  296.                     Console.WriteLine("\n[INFO O GADZIE] JADOWITOSC: TAK" );
  297.                 else
  298.                     Console.WriteLine("\n[INFO O GADZIE] JADOWITOSC: NIE");
  299.                 Console.WriteLine("[INFO O GADZIE] GATUNEK: " + gatunek + ". RODZ.POZYWIENIA: " + rodzajPozywienia + ". POCHODZENIE: " + pochodzenie);
  300.                 if (InfoCechy_)
  301.                     InfoCechy();
  302.                 if (InfoUmietnosci_)
  303.                     InfoUmietnosci();
  304.             }
  305.  
  306.         }
  307.  
  308.  
  309.  
  310.  
  311.         static void Main(string[] args)
  312.         {
  313.             Generatory g = new Generatory();
  314.             Dyrekcja dyrekcja = new Dyrekcja();
  315.             Klatka klatka = new Klatka(g.GenerujLiczbe(200));
  316.             Ptak ptak = new Ptak(g.GenerujLiczbe(5, 10), g.GenerujLiczbe(10, 500), g.GenerujGatunekPtaka(), g.GenerujRodzajPozywienia(), g.GenerujKrajPochodzenia());
  317.             Gad gad = new Gad(g.GenerujBool(), g.GenerujGatunekGada(), g.GenerujRodzajPozywienia(), g.GenerujKrajPochodzenia());
  318.             Ssak ssak = new Ssak(g.GenerujSrodowiskoNaturalne(), g.GenerujGatunekSsaka(), g.GenerujRodzajPozywienia(), g.GenerujKrajPochodzenia());
  319.  
  320.             for (int i = 0; i < 60; i++)
  321.                 dyrekcja.ZbudujKlatke(g.GenerujLiczbe(20, 400));
  322.  
  323.             dyrekcja.InfoKlatki();
  324.             dyrekcja.PowiekszKlatke(2, 11111);
  325.             dyrekcja.InfoKlatki();
  326.  
  327.            
  328.            
  329.            
  330.            
  331.  
  332.  
  333.             // tworze po 20 przedstawicielow ptakow, ssakow i gadow. Rejestruje ich w zoo
  334.             /*for (int i = 0; i < 20; i++)
  335.             {
  336.                dyrekcja.ZarejestrujPtaka(g.GenerujLiczbe(5, 10), g.GenerujLiczbe(10, 500), g.GenerujGatunekPtaka(), g.GenerujRodzajPozywienia(), g.GenerujKrajPochodzenia());
  337.                dyrekcja.ZarejestrujSsaka(g.GenerujSrodowiskoNaturalne(), g.GenerujGatunekSsaka(), g.GenerujRodzajPozywienia(), g.GenerujKrajPochodzenia());
  338.                dyrekcja.ZarejestrujGada(g.GenerujBool(), g.GenerujGatunekGada(), g.GenerujRodzajPozywienia(), g.GenerujKrajPochodzenia());
  339.  
  340.             }*/
  341.  
  342.             dyrekcja.PrzypiszKlatke(ptak, 2);
  343.  
  344.             // -- > testy dodawania cech/umietnosci na osobnych objektach, sterowanie wypisywaniem informacji,
  345.            /* ptak.DodajCeche("czarny");
  346.             ptak.DodajUmietnosc("dzwiek BZZZ");
  347.             ssak.DodajUmietnosc("dzwiek SSSSS");
  348.             ptak.WypiszInfo(true, true);
  349.             double dlugoscLotu = ptak.MaksymalnaDlugoscLotu();
  350.             Console.WriteLine("Maksymalna dlugosc lotu ptaka " + ptak.Gatunek + " to " + dlugoscLotu); //
  351.             gad.WypiszInfo(false, false);
  352.             ssak.WypiszInfo(false, true); */
  353.            
  354.            
  355.            
  356.            
  357.            
  358.             Console.WriteLine("\n.. console successfully runned");
  359.             Console.ReadKey();
  360.         }
  361.  
  362.         partial class Generatory
  363.         {
  364.             private Random rnd = new Random();
  365.             private String[] rodzajePozywienia = new String[5]  {
  366.               new String("ROSLINOZERCY"),
  367.               new String("MIESOZERCY"),
  368.               new String("WSZYSTKOZERCY"),
  369.               new String("PASOZYTY"),
  370.               new String("SAPROFAGI")
  371.             };
  372.  
  373.             private String[] gatunkiOgolne = new string[28]
  374.             {
  375.               new String("JEZ WSCHODNI"),
  376.               new String("KRET EUROPEJSKI"),
  377.               new String("ZABIELEK BIALAWY"),
  378.               new String("RYJOWKA AKSAMITNA"),
  379.               new String("RZESOREK RZECEK"),
  380.               new String("PODKOWIEC MALY"),
  381.               new String("MOPEK"),
  382.               new String("NOCEK"),
  383.               new String("BOROWIEC"),
  384.               new String("KARLIK"),
  385.               new String("ZOLW"),
  386.               new String("JASZCZURKA"),
  387.               new String("ZABIELEK BIALAWY"),
  388.               new String("PADALEC"),
  389.               new String("ZASKRONIEC"),
  390.               new String("WAZ"),
  391.               new String("GNIEWOSZ"),
  392.               new String("ZMIJA ZYGZAKOWATA"),
  393.               new String("CZYZ"),
  394.               new String("DROZDZIK"),
  395.               new String("GIL"),
  396.               new String("MAZUREK"),
  397.               new String("SROKA"),
  398.               new String("SZPAK"),
  399.               new String("WROBEL"),
  400.               new String("GRZYWACZ"),
  401.               new String("KROGULEC"),
  402.               new String("KOS")
  403.             };
  404.  
  405.             private String[] pochodzenia = new String[6]  {
  406.               new String("EUROPA ZACHODNIA"),
  407.               new String("EUROPA WSCHODNIA"),
  408.               new String("AFRYKA"),
  409.               new String("AUSTRALIA POLNOCNA"),
  410.               new String("POLNOCNA AMERYKA"),
  411.               new String("KRAJE AMERYKI POLUDNIOWEJ")
  412.             };
  413.  
  414.             private String[] srodowiskaNaturalne = new String[4]  {
  415.               new String("MROZNY OBSZAR"),
  416.               new String("GORACY TROPIK"),
  417.               new String("PODZIEMNE"),
  418.               new String("PODWODNE")
  419.             };
  420.  
  421.             public bool GenerujBool()
  422.             {
  423.                 return Convert.ToBoolean(rnd.Next(2));
  424.             }
  425.  
  426.             public string GenerujGatunekPtaka()
  427.             {
  428.                 return gatunkiOgolne[rnd.Next(18, 28)];
  429.             }
  430.             public string GenerujGatunekGada()
  431.             {
  432.                 return gatunkiOgolne[rnd.Next(10, 18)];
  433.             }
  434.  
  435.             public string GenerujGatunekSsaka()
  436.             {
  437.                 return gatunkiOgolne[rnd.Next(10)];
  438.             }
  439.  
  440.             public string GenerujRodzajPozywienia()
  441.             {
  442.                 return rodzajePozywienia[rnd.Next(5)];
  443.             }
  444.  
  445.             public string GenerujKrajPochodzenia()
  446.             {
  447.                 return pochodzenia[rnd.Next(6)];
  448.             }
  449.  
  450.             public string GenerujSrodowiskoNaturalne()
  451.             {
  452.                 return srodowiskaNaturalne[rnd.Next(4)];
  453.             }
  454.  
  455.             public int GenerujLiczbe(int limitGorny)
  456.             {
  457.                 return rnd.Next(0, limitGorny);
  458.             }
  459.  
  460.             public int GenerujLiczbe(int limitDolny, int limitGorny)
  461.             {
  462.            
  463.                 return rnd.Next(limitDolny, limitGorny);
  464.             }
  465.  
  466.         }
  467.  
  468.     }
  469.  
  470.    
  471. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement