Skip to content

Instantly share code, notes, and snippets.

@pjastr
Created October 21, 2017 09:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjastr/395426ce8d0995335ae18f8b5a2872dc to your computer and use it in GitHub Desktop.
Save pjastr/395426ce8d0995335ae18f8b5a2872dc to your computer and use it in GitHub Desktop.
  1. Stwórz nowy projekt, w nim wykonaj czynności:
  • Stwórz klasę Car, w której będzie można przechowywać markę samochodu i rok produkcji (zmienne marka i rok) (zapisz ją w pliku Car.cs).
  • Zmodyfikuj klasę Car, aby wszystkie zmienne były zadeklarowane jako prywatne.
  • Stwórz nowy obiekt klasy Car w pliku Program.cs jako car1, ustaw dla niego dowolną markę i rok produkcji, wyświetl to na ekranie. Popraw kod, aby program działał poprawnie.
  • Stwórz drugi obiekt car2 typu Car, przypisz mu dowolne wartości i wyświetl na ekranie.
  • Przypisz do siebie wartości car1 i car2 (car1 = car2) i ponownie sprawdź na ekranie jakie wartości otrzymasz.
  • Zakomentuj kod do dwóch ostatnich punktów.
  • Utwórz prywatne pola klasy Car o nazwie: model, iloscDrzwi, pojemnoscSilnika oraz publiczne srednieSpalanie. Narysuj dla klasy Car diagram UML (kolejne czynności uzupełniaj na diagramie).
  • Utwórz prywatną metodę ObliczSpalanie zwracającej wartość typu double i przyjmującej parametr dlugoscTrasy typu double. Metoda ta ma obliczać spalanie samochodu na podstawie podanej wartości długości trasy i wartości pola srednieSpalanie. Spalanie obliczamy według wzoru: spalanie = (srednieSpalanie * dlugoscTrasy)
  • Utwórz publiczną metodę ObliczKosztPrzejazdu zwracającej wartość typu double i przyjmującej parametry dlugoscTrasy typu double i cenaPaliwa typu double. Metoda ta ma obliczać koszt przejazdu na trasie o podanej długości, zakładając podaną cenę paliwa za litr. Metoda ta ma wykorzystywać prywatną metodę ObliczSpalanie. Koszt przejazdu obliczamy według wzoru: kosztPrzejazdu = spalanie * cenaPaliwa.
  1. Napisz klasę Osoba, której diagram jest następujący:

Diagram UML

Umieść klasę w pliku Osoba.cs.

  • W pliku Program.cs stwórz obiekt dyrektor i przypisz mu dowolne atrybuty. Wyświetl na ekranie jest imię, nazwisko i liczbę lat.
  • W pliku Osoba.cs zmień dostępy do pól na private, internal, protected - co się zmieni?
  1. Wykonaj w ramach jednego projektu następujące polecenia:
  • Stwórz klasę Car.
  • Stwórz w niej nowe prywatne pola double pojemonoscSilnika, string marka.
  • Stwórz obiekt typu Car, czy masz dostęp do jego pól? czy możesz zmienić wartości? (nie zmieniaj pól klasy na publiczne).
  • Do klasy Car dodaj samodzielnie napisany konstruktor bez parametru.
  • Przeciąż konstruktor tworząc nowy: Car(double pojemonoscSilnika, string marka). Niech ten parametryczny konstruktor ustawia wartości pól pojemność silnika oraz marka. (użyj inicjalizatora this).
  • Stwórz nowy obiekt za pomocą konstruktora parametrycznego.
  • Za pomocą debuggera sprawdź jakie warości na prywatnych polach ma obiekt numer 1, a jakie obiekt 2.
  • Zmień modyfikatory dostępu konstruktorów na private. Czy jest możliwe utworzenie nowego obiektu tej klasy? Co się stało z konstruktorem domyślnym?
  • W klasie Car stwórz metodę Create(), która będzie zwracać obiekt.
  • Stwórz obiekt dzięki metodzie Create() (pamiętałeś o dodaniu static do metody? )
  • Utwórz statyczne pole int iloscKol. Następnie stwórz statyczny konstruktor ustawiający wartość tego pola na 4. Jak możesz odwołać się do pola? czy możesz go zmodyfikować? co się zdanie jak dodasz readonly?
  • Uruchom program i w debuggerze sprawdź jaką wartość pola iloscKol ma wczesniej stworzony obiekt.
  • Do klasy Car dodaj destruktor ~Car(), wewnątrz dodaj następujący kod:
Console.WriteLine(„Zwalniam pamięć”);
Console.ReadKey();
  • Uruchom program i zwróć uwagę kiedy następuje zwolnienie pamięci.
  • Dodaj w klasie Car stałe pole iloscDrzwi i ustaw mu wartość 4. Jak możesz się do niego odnieść? czy możesz go zmodyfikować?
  1. Stwórz klasę Matematyka i dodaj w niej statyczne pole pi i nadaj mu wartość 3.14. Następnie w tej klasie dodaj statyczne metody z 1 parametrem pozwalające obliczyć pole i obwód koła. W klasie Program i metodzie Main przećwiczyć użycie tych metod.
  2. W klasie Program poza metodą Main dodaj kod:
        static string OpiszTyp()
        {
            return "Metoda bez argumentów";
        }
        static string OpiszTyp(int x)
        {
            return "Liczba całkowita";
        }
        static string OpiszTyp(string x)
        {
            return "Łańcuch znaków";
        }
        static string OpiszTyp(int x, int y)
        {
            return "Dwie liczby calkowite";
        }

W metodzie Main przetestuj działanie tych metod.

  1. Napisz klasę Produkt (nazwa, cena) oraz Koszyk (lista towarów). Dorób też metodę dodającą towar do koszyka oraz funkcję pokazującą ilość elementów w koszyku i sumę cen. Zasymuluj robienie zakupów.
  2. Napisać klasę Zespolone opisujące operacje na liczbach zespolonych. Pokazać w main podstawowe obliczenia.
  3. Stwórz klasę Konto z kilkoma polami, metodami i konstruktorami (saldo początkowe, końcowe, przelew miedzy kontami, przelew zewnętrzny, wplata, wyplata itd.) Następnie utwórz co najmniej 3 obiekty i wykonaj kilka metody na nich.
  4. Stwórz klasę Telefon, która będzie zawierała parametry do obsługi bilingu (usługa prepaid).Dodatkowo ma zawierać metody, konstruktory (saldo początkowe, końcowe, doładowanie, wysłanie smsa, rozmowa, połączenie z internetem, usługi premium). Potem stwórz kilka obiektów i wykonaj na nich metody. Na ekranie wyświetl „bilingi” dla stworzonych obiektów.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment