Projekty zaliczeniowe z obiektówki

Podobne dokumenty
class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Ćwiczenia podstawowe, zestaw 5, część 1

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

Mechanizm dziedziczenia

TEMAT : KLASY POLIMORFIZM

dr inż. Jarosław Forenc

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

1 Definiowanie prostych klas

Część 4 życie programu

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.

I - Microsoft Visual Studio C++

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

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

C++ wprowadzanie zmiennych

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

Mechanizm dziedziczenia

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

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 Obiektowew języku C++ Zadania L9

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Programowanie - wykład 4

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Struktury Struktura polami struct struct struct struct

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

TEMAT : KLASY DZIEDZICZENIE

Programowanie Obiektowew języku C++ Zadania L8

Wyjątki (exceptions)

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

Podstawy Programowania Podstawowa składnia języka C++

Język C++ zajęcia nr 1

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Przekazywanie argumentów wskaźniki

Programowanie obiektowe

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

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

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.

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Laboratorium 2. Funkcje wirtualne

Podstawy algorytmiki i programowania - wykład 4 C-struktury

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

Wykład :37 PP2_W9

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

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

Wstęp do programowania obiektowego, wykład 7

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

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

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

Polimorfizm w pigułce

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

Rzutowanie i konwersje

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

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

PARADYGMATY PROGRAMOWANIA Wykład 2

Wstęp do Informatyki

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

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

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Programowanie obiektowe w języku

Projektowanie klas c.d. Projektowanie klas przykład

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

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

PARADYGMATY PROGRAMOWANIA Wykład 4

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Programowanie 2. Język C++. Wykład Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne

Informatyka 2. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Zwracanie obiektu. Funkcja może zwracać obiekty: #include"stdafx.h #include <iostream> using namespace std; class samp { inti; public:

Języki programowania obiektowego Nieobiektowe elementy języka C++

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

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

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

Plik klasy. h deklaracje klas

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

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Listy powiązane zorientowane obiektowo

class Samochod { void Ruch(); }; class Amfibia : public Samochod { void Ruch(); // amfibie pływają };

Wstęp do programowania

C-struktury wykład. Dorota Pylak

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

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

Programowanie obiektowe język C++

Czym jest całka? Całkowanie numeryczne

Programowanie obiektowe w C++ Wykład 12

Programowanie Obiektowew języku C++ Zadania L4

Pytania sprawdzające wiedzę z programowania C++

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

Technologie cyfrowe semestr letni 2018/2019

Wykład 7. Klasy i obiekty

Podstawy programowania w C++

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

Programowanie obiektowe i zdarzeniowe

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

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

Język C++ wykład VIII

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

Wstęp do programowania

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Transkrypt:

Projekty zaliczeniowe z obiektówki 25 maja 2012 1 Przykład klas: Wiedząc, że deklarowanie typu rekordowego w języku C/ C++ wygląda następująco: #include <cstdlib> #include <iostream> #include <stdlib.h> #define PI 3.14 using namespace std; class Kwadrat ; //Klasa Kwadrat public: Kwadrat(); Kwadrat( float bok ); void wypiszpowierzchnie(); private: float zmienna_bok; Kwadrat::Kwadrat() : zmienna_bok(0) //Konstruktory dla kwadratu Kwadrat::Kwadrat(float bok) : zmienna_bok(bok) void Kwadrat::wypiszPowierzchnie() 1

cout << "\npole kwadratu o boku " << zmienna_bok << " wynosi: " << zmienna_bok * zmienna_bok << endl; cout << "Natomiast obwod wynosi: " << 4 * zmienna_bok << endl; /********************************************/ //Klasa Prostokat class Prostokat public: Prostokat(); Prostokat( float bok_1, float bok_2 ); void wypiszpowierzchnie(); private: float zmienna_bok_1; float zmienna_bok_2; ; Prostokat::Prostokat() : zmienna_bok_1(0), zmienna_bok_2(0) //Konstruktory dla prostokata Prostokat::Prostokat(float bok_1, float bok_2) : zmienna_bok_1(bok_1), zmienna_bok_2(bok_2) void Prostokat::wypiszPowierzchnie() cout << "\npole Prostokata o bokach " << zmienna_bok_1 << ", " << zmienna_bok_2<< " wynosi: " << zmienna_bok_1 * zmienna_bok_2 << endl; cout << "Natomiast Obwod wynosi: " << ( 2 * zmienna_bok_1 ) + ( 2 * zmienna_bok_2 ) << endl; /********************************************/ //Klasa Kolo class Kolo public: 2

; Kolo(); Kolo( float promien); void wypiszpowierzchnie(); private: float zmienna_promien; Kolo::Kolo() : zmienna_promien(0) //Konstruktory dla kola Kolo::Kolo(float promien) : zmienna_promien(promien) void Kolo::wypiszPowierzchnie() cout << "\npole kola o promieniu " << zmienna_promien << " wynosi: " << PI * zmienna_promien * zmienna_promien << endl; cout << "Natomiast Obwod wynosi: " << 2 * PI * zmienna_promien << endl; /********************************************/ void wyswietl_menu(); void czysc_bufor(); void oblicz_kwadrat(); void oblicz_prostokat(); void oblicz_kolo(); int main() char klawisz; do wyswietl_menu(); cin >> klawisz; switch( klawisz ) 3

case 1 : oblicz_kwadrat(); case 2 : oblicz_prostokat(); case 3 : oblicz_kolo(); default : if( klawisz!= q ) putchar( \a ); while ( klawisz!= q ); return EXIT_SUCCESS; //Funkcja wyswietl menu void wyswietl_menu() system("cls"); cout << "Obliczam parametry figur plaskich..." << endl; cout << "1. Kwadrat \n2. Prostokat \n3. Kolo"; cout << "\n\nwybierz numer figury lub (q)uit aby zakonczyc: "; void oblicz_kwadrat() //Funkcja oblicz dla kwadratu system("cls"); float bok; cout << "Obliczenia dla kwadratu" << endl; cout << "Podaj dlugosc boku: "; cin >> bok; Kwadrat kwadratura(bok); kwadratura.wypiszpowierzchnie(); system("pause"); void oblicz_prostokat() //Funkcja oblicz dla kwadratu 4

system("cls"); float bok_1, bok_2; cout << "Obliczenia dla prostokata" << endl; cout << "Podaj dlugosc pierwszego boku: "; cin >> bok_1; cout << "Podaj dlugosc drugiego boku: "; cin >> bok_2; Prostokat Prostokatowanie(bok_1, bok_2); Prostokatowanie.wypiszPowierzchnie(); system("pause"); //Funkcja oblicz dla kola void oblicz_kolo() system("cls"); float promien; cout << "Obliczenia dla kola" << endl; cout << "Podaj promien kola: "; cin >> promien; Kolo Kolowanie(promien); Kolowanie.wypiszPowierzchnie(); system("pause"); 2 Zadanie do samodzielnego wykonania Zbuduj hierarchię klas dla pojęć i obiektów określonych w jednym z poniższych punktów. Należy zidentyfikować odpowiednie klasy, określić, które klasy są pochodnymi, jaka jest nadrzędna klasa w hierarchii. Dla każdej klasy zaproponuj przykładowe pola (oraz funkcje składowe) oraz zdefiniuj: konstruktor domyślny, konstruktor ogólny, konstruktor rzutujący, przeciążony operator przypisania. 5

W każdej klasie powinna znaleźć się również funkcja putclassn ame wyprowadzająca do strumienia cout nazwę klasy. Uwaga, należy zbudować hierarchię klas tak, by odwołanie: $Klasa\_bazowa * p$; $p = \and jakiś\_obiekt\_klasy\_pochodnej;$ p->putclassname(); spowodowało wyprowadzenie do cout nazwy klasy obiektu wskazywanego przez p, a nie nazwę klasy Klasa bazowa. Projekt na być oddany w wersji papierowej, ma zwierać wydruk hierarchii klas oraz prostego programu pokazującego sposób ich wykorzystania. Do projektu powinien zostać dołączony kod źródłowy (powinien się zmieścić na dyskietce). Uwaga: w niektórych przypadkach może występować dziedziczenie wielobazowe. Lista dziedzin, dla których należy zaprojektować odpowiednią hierarchię klas: 1. Rower, hulajnoga, motorower, motocykl, samochód, ciężarówka, autobus. 2. Mucha, ptak, lotnia, śmigłowiec, samolot, bombowiec, samolot pasażerski. 3. Muzyka klasyczna, jazz, jazz nowoczesny, jazz nowoorleański, rock, heavy metal, punk rock, pop, techno, drum n bass. 4. Woda mineralna gazowana, niegazowana, piwo, piwo ciemne, piwo jasne, sok, napój gazowany i niegazowany, wino, szampan, żubrówka. 5. Silnik spalinowy, silnik elektryczny, silnik czterosuwowy, silnik dwusuwowy, silnik Wankla, silnik hybrydowy. 6. Narta zjazdowa, narta slalomowa, narta gigantowa, narta biegowa, narta do skoków, narta wodna. 7. Zwierze mięsożerne, nie mięsożerne, ssak, ryba, owad, wieloryb, łosoś, mrówka, lew, jeleń. 8. Pracownik etatowy, pracownik kontraktowy, osoba współpracująca, pełnoetatowiec, półetatowiec. 9. Komputer PC, stacja robocza, komputer przenośny, palmtop, superkomputer, serwer sieciowy. 10. Łódka rybacka, kuter rybacki, łódź podwodna, ścigacz, prom, kuter torpedowy, pancernik. 11. Proza, poezja, epika, liryka, felieton, reportaż, fraszka, opowiadanie, powieść. 12. Rower górski, rower dowhhill, rower enduro, rower trekkingowy, rower szosowy, rower crossowy. 13. Lekkoatleta, piłkarz, kolarz, koszykarz, biegacz, dyskobol, oszczepnik, zapaśnik, karateka. 6

14. Młotek, wiertarka, pilarka, kleszcze, śrubokręt, pilnik, piła, pędzel, szpachla, kielnia. 7