Programowanie Obiektowew języku C++ Zadania L8

Podobne dokumenty
Programowanie Obiektowew języku C++ Zadania L9

Programowanie Obiektowew języku C++ Zadania L4

Programowanie Obiektowew języku C++ Zadania L2

Programowanie Obiektowew języku C++ Zadania L4

Programowanie Obiektowew języku C++ Zadania L2

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

Podstawy programowania w języku C++ Zadania

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

Programowanie proceduralne w języku C++ Podstawy

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Programowanie obiektowe

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Laboratorium 2. Funkcje wirtualne

TEMAT : KLASY POLIMORFIZM

tel Konsultacje www

Tytuł pracy dyplomowej

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Wyjątki (exceptions)

Dziedziczenie & W slajdach są materiały zapożyczone z

Mechanizm dziedziczenia

Programowanie Obiektowo Zorientowane w języku c++ Konstruktory

Wprowadzenie do programowania i programowanie obiektowe

TEMAT : KLASY DZIEDZICZENIE

dr inż. Jarosław Forenc

Wprowadzenie do szablonów klas

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wprowadzenie do programowania i programowanie obiektowe

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Programowanie proceduralne w języku C++ Pętle, tablice

Techniki Programowania wskaźniki

Wstęp do Informatyki

Programowanie obiektowe

Operacje wejścia/wyjścia (odsłona druga) - pliki

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

Operacje wejścia/wyjścia odsłona pierwsza

Mechanizm dziedziczenia

Szablony funkcji i szablony klas

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Szablon klasy std::vector

Programowanie proceduralne w języku C++ Funkcje

Wstęp do Programowania 2

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Wstęp do programowania

Programowanie obiektowe i C++ dla matematyków

Wstęp do Programowania 2

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Język C++ Różnice między C a C++

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Język C++ wykład VIII

Pytania sprawdzające wiedzę z programowania C++

1 Definiowanie prostych klas

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Przesłanianie nazw, przestrzenie nazw

Programowanie w językach

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Projektowanie klas c.d. Projektowanie klas przykład

Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: FUNKCJE ZAPRZYJAŹNIONE Z KLASĄ, PRZEŁADOWANIE OPERATORÓW. Informatyka 2

string Rodzaj[4]= {"TV ", "wieza ", "DVD ", "kino "}; string Producent[4]={"Phillips", "Sony ", "Sanyo ", "Samsung "};

Plik klasy. h deklaracje klas

Programowanie - wykład 4

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Zajęcia nr 4 Programowanie obiektowe konstruktory. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wykład :37 PP2_W9

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie

Laboratorium 1 - Programowanie proceduralne i obiektowe

#include "stdafx.h" #include <iostream> #include "windows.h" using namespace std;

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

obiekty funkcyjne - funktory

Technologie cyfrowe semestr letni 2018/2019

Wprowadzenie do szablonów szablony funkcji

Polimorfizm w pigułce

PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Wprowadzenie do szablonów szablony funkcji

Do czego służą klasy?

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Przeciążenie (przeładowanie nazw) funkcji

Owad():waga(1),jadowitosc(false) {cout<<"konstruktor domyslny owada\n";}

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Struktury Struktura polami struct struct struct struct

Programowanie obiektowe język C++

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Transkrypt:

Programowanie Obiektowew języku C++ Zadania L8 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki Stosowanej i Modelowania 2 Uniwersytet im. Jana Kochanowskiego w Kielcach Wydział Matematyczno-Przyrodnmiczy Instytut Fizyki Zakład Informatyki Styczeń 2019 Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 1 / 14

Spis treści 1 Zadanie L8 2 Podpowiedzi do zadań L8 3 Przykładowe rozwiązanie zadania L8 Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 2 / 14

Zadanie L8 Zdefiniować klasę zwierzę zawierającą: w zakresie chronionym ( protected ) dwa pola przechowujące: masę oraz wiek zwierzęcia metodę Patrz wypisującą tekst: Patrze przed siebie, item metodę Oddychaj wypisującą tekst: Zyje, wiec oddycham Zdefiniować klasę ryba dziedziczącą z klasy zwierze i zawierającą w zakresie publicznym: metodę Plyn wypisującą tekst: Plyne, bo lubie plywac Zdefiniować klasę ssak dziedziczącą z klasy zwierze i zawierającą w zakresie publicznym: metodę Biegnij wypisującą tekst: Biegne, bo lubie biegac Zdefiniować klasę ptak dziedziczącą z klasy zwierze i zawierającą w zakresie publicznym: metodę Frun wypisującą tekst: Fruwam, bo lubie fruwac Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 3 / 14

Zadanie L8 Zdefiniować klasę pies dziedziczącą z klasy ssak zawierającą: w zakresie publicznym dwa pola przechowujące: rasę psa będącą elementem typu wyliczeniowego RasaPsa (Owczarek, Dog, Pudel, Szpic, Bernardyn) oraz kolor sierści zwierzęcia będącą elementem typu wyliczeniowego Umaszczenie (Czarny, Bialy, Rudy, Szary), metodę Aportuj wypisującą tekst: Wlasnie aportuje, metodę Szczekaj wypisującą tekst: Hau, Hau, Zdefiniować funkcje lub metody pozwalające na zapisywanie i odczytywanie pól chronionych, Zdefiniować przeciążenia operatora << Zaprojektowana hierarchia klas powinna umożliwić wykonanie następującego programu i wygenerowanie strumienia wyjściowego przedstawionych na kolejnych dwóch stonach. Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 4 / 14

Zadanie L8 int main(){ Ryba Losos; // ----- ryba ----- Losos.Wiek(2); Losos.Masa(3.5); cout << Losos; Losos.Oddychaj(); Losos.Plyn(); Ptak Wrobel; // ----- ptak ----- Wrobel.Wiek(2); Wrobel.Masa(0.05f); cout << Wrobel; Wrobel.Patrz(); Wrobel.Frun(); Pies Azor; // ----- pies ----- Azor.Wiek(1); Azor.Masa(12.); Azor.Rasa(Bernardyn); Azor.KolorSiersci(Szary); cout << Azor; Azor.Patrz(); Azor.Oddychaj(); Azor.Aportuj(); Azor.Szczekaj(); } return 0; Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 5 / 14

Zadanie L8 --- Prezentuje rybe --- Wiek w latach: 2 Masa w kg: 3.5 Zyje, wiec oddycham Plyne, bo lubie plywac --- Prezentuje ptaka --- Wiek w latach: 2 Masa w kg: 0.05 Patrze przed siebie Fruwam, bo lubie fruwac --- Prezentuje psa --- Wiek w latach: 1 Masa w kg: 12 Rasa: 4 Umaszczenie: 3 Patrze przed siebie Zyje, wiec oddycham Wlasnie aportuje Hau, Hau Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 6 / 14

Spis treści 1 Zadanie L8 2 Podpowiedzi do zadań L8 3 Przykładowe rozwiązanie zadania L8 Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 7 / 14

Podpowiedzi do zadań L8 Podpowiedzi nie są konieczne - problem wyjaśniono w treści zadania Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 8 / 14

Spis treści 1 Zadanie L8 2 Podpowiedzi do zadań L8 3 Przykładowe rozwiązanie zadania L8 Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 9 / 14

Przykładowe rozwiązanie zadania L8 #include <iostream> using namespace std; enum RasaPsa {Owczarek, Dog, Pudel, Szpic, Bernardyn}; enum Umaszczenie {Czarny, Bialy, Rudy, Szary}; class Zwierze { protected: double masa; unsigned wiek; public: Zwierze(): masa(0.), wiek(0) {} void Patrz() {cout << "Patrze przed siebie" << endl;} void Oddychaj() {cout << "Zyje, wiec oddycham" << endl;} double Masa() const {return masa;} void Masa(double masazw) {masa = masazw;} unsigned Wiek() const {return wiek;} void Wiek(unsigned wiekzw) {wiek = wiekzw;} }; Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 10 / 14

Przykładowe rozwiązanie zadania L8 class Ryba : public Zwierze { public: void Plyn() {cout << "Plyne, bo lubie plywac" << endl;} }; class Ssak : public Zwierze { public: void Biegnij(){cout << "Biegne, bo lubie biegac" << endl;} }; class Ptak : public Zwierze { public: void Frun() {cout << "Fruwam, bo lubie fruwac" << endl;} }; class Pies : public Ssak { protected: RasaPsa rasa; Umaszczenie kolorsiersci; Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 11 / 14

Przykładowe rozwiązanie zadania L8 public: void Aportuj() {cout << "Wlasnie aportuje" << endl;} void Szczekaj() {cout << "Hau, Hau" << endl;} RasaPsa Rasa() const {return rasa;} void Rasa(RasaPsa rasaps) {rasa = rasaps;} Umaszczenie KolorSiersci() const {return kolorsiersci;} void KolorSiersci(Umaszczenie kolorps) { kolorsiersci = kolorps;} }; ostream& operator<<(ostream& Strum, Ryba& ryba){ Strum << "--- Prezentuje rybe ---" << endl; Strum << "Wiek w latach: " << ryba.wiek() << endl; Strum << " Masa w kg: " << ryba.masa() << endl; return Strum; } Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 12 / 14

Przykładowe rozwiązanie zadania L8 ostream& operator<<(ostream& Strum, Ptak& ptak){ Strum << "--- Prezentuje ptaka ---" << endl; Strum << "Wiek w latach: " << ptak.wiek() << endl; Strum << " Masa w kg: " << ptak.masa() << endl; return Strum; } ostream& operator<<(ostream& Strum, Pies& pies){ Strum << "--- Prezentuje psa ---" << endl; Strum << "Wiek w latach: " << pies.wiek() << endl; Strum << " Masa w kg: " << pies.masa() << endl; Strum << " Rasa: " << pies.rasa() << endl; Strum << " Umaszczenie: " << pies.kolorsiersci() << endl; return Strum; } Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 13 / 14

Przykładowe rozwiązanie zadania L8 int main(){ Ryba Losos; // ----- ryba ----- Losos.Wiek(2); Losos.Masa(3.5); cout << Losos; Losos.Oddychaj(); Losos.Plyn(); Ptak Wrobel; // ----- ptak ----- Wrobel.Wiek(2); Wrobel.Masa(0.05f); cout << Wrobel; Wrobel.Patrz(); Wrobel.Frun(); Pies Azor; // ----- pies ----- Azor.Wiek(1); Azor.Masa(12.); Azor.Rasa(Bernardyn); Azor.KolorSiersci(Szary); cout << Azor; Azor.Patrz(); Azor.Oddychaj(); Azor.Aportuj(); Azor.Szczekaj(); } return 0; Mirosław Głowacki (AGH, UJK) Programowanie Obiektowe 2019 14 / 14