using System; namespace laboratorium2 { /// /// Summary description for Class1. /// /// /* * Proszę napisać klasę przedmiot, która będzie uproszczoną wersją rzeczywistego obiektu. * Klasa ta powinna zawierać jedno pole rozmiar typu int i konstruktor umożliwiający tworzenie przedmiotów o różnych rozmiarach. * Rozmiar odzwierciedla fizyczne wymiary przedmiotu w sposób uproszczony tzn., że przedmiot o rozmiarze pięć jest po prostu mniejszy od przedmiotu o rozmiarze dziesięć. * Rozmiar ma być dostępny z zewnątrz za pomocą stosownej właściwości (tylko do odczytu). * */ public class Przedmiot { readonly int rozmiar; public Przedmiot(int rozm) { this.rozmiar = rozm; } public int pobierz() { return this.rozmiar; } } class Box { /* Wewnątrz klasy należy stworzyć typ wyliczeniowy (ang. enum) reprezentujący możliwe do wykorzystania kolory (kilka przykładowych wartości). */ public enum Kolory{bialy,czarny,czerwony,zielony,niebieski,nieokreslony} /* Rozmiar i pojemność nie mogą być zmieniane po utworzeniu obiektu, należy zastosować odpowiednią konstrukcję języka. */ readonly int rozmiar; readonly int pojemnosc; private Kolory kolor; bool stan; /* - pole będące tablicą służącą do przechowywania przedmiotów (tablica jednowymiarowa, dynamiczna), */ Przedmiot[] tablica; /* Niezbędny jest licznik (jeden) informujący o liczbie aktualnie stworzonych pudełek. Powinien być inkrementowany przy tworzeniu, oraz dekrementowany przy niszczeniu obiektu. Stosowna metoda i właściwość do odczytu jego wartości. */ static int licznik=0; ~Box() { licznik--; } /* W momencie tworzenia trzeba określić rozmiar, pojemność, kolor pudełka -> odpowiedni konstruktor. */ public Box(int rozmiar, int pojemnosc, Kolory kolor) { this.rozmiar = rozmiar; this.pojemnosc = pojemnosc; this.kolor = kolor; licznik++; } /* Jeżeli przy tworzeniu pudełka nie podano koloru, powinno zostać pomalowane na wartość domyślną -> odpowiedni konstruktor. */ public Box(int rozmiar,int pojemnosc) { this.rozmiar = rozmiar; this.pojemnosc = pojemnosc; this.kolor = 0; licznik++; } /* - metodę umożliwiającą dodanie (schowanie) przedmiotu do pudełka, */ public void dodajprzedmiot(Przedmiot wart) { Przedmiot[] kopia; int a; if (this.tablica == null) { this.tablica = new Przedmiot[1]; this.tablica[0] = wart; } else { kopia = new Przedmiot[this.tablica.Length + 1]; for (a=0; a 0) { for (int a=0; a= 0 && index <= this.tablica.Length) { w=tablica[index]; } return w; } } /* - właściwość zwracającą aktualną ilość przedmiotów w pudełku, */ public int iloscprzedmiotow() { return this.tablica.Length; } /* Musi istnieć możliwość odczytania wartości rozmiaru i pojemności. Należy zrealizować to za pomocą metod, a następnie alternatywnie używając mechanizmu właściwości. */ public int rozm { get {return (int) this.rozmiar;} } public int poj { get {return (int) this.pojemnosc;} } public Kolory kol { get {return (Kolory) this.kolor;} set {this.kolor = (Kolory) value;} } public void setColor(Kolory kol) { this.kolor = kol; } /* Należy stworzyć pole do przechowywania informacji czy pudełko jest otwarte, czy zamknięte. Pole to może przyjmować tylko dwie wartości. Konieczna są metody Otworz() oraz Zamknij(). Dodatkowo powinna być możliwość odczytania statusu poprzez właściwość. */ public void Otworz() { this.stan = true; } public void Zamknij() { this.stan = false; } public bool st { get { return (bool) this.stan;} set { this.stan = (bool) value;} } public int stanlicznika() { return licznik; } } class Class1 { /// /// The main entry point for the application. /// [STAThread] static void Main(string[] args) { // // TODO: Add code to start application here // Box pudlo = new Box(10,15); Console.WriteLine("Stan licznika = "+pudlo.stanlicznika()); Box pudlo2 = new Box(15,16,Box.Kolory.czarny); Console.WriteLine("Stan licznika = "+pudlo.stanlicznika()); } } }