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

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

Do czego służą klasy?

Do czego służą klasy?

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

TEMAT : KLASY DZIEDZICZENIE

KLASY cz.1. Dorota Pylak

Programowanie obiektowe

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

Część 4 życie programu

Egzamin z Podstaw informatyki i programowania 2007/2008

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Wprowadzenie do programowania i programowanie obiektowe

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

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

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

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

Podstawy Programowania Obiektowego

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

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

Projektowanie klas c.d. Projektowanie klas przykład

KLASY cz4. Dorota Pylak. destruktory składowe statyczne przeciążanie operatorów. wskaźniki

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

Programowanie 2. Język C++. Wykład 3.

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Wstęp do Programowania 2

Programowanie komputerowe. Zajęcia 7

I - Microsoft Visual Studio C++

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Aplikacje w środowisku Java

Laboratorium 1 - Programowanie proceduralne i obiektowe

Mechanizm dziedziczenia

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

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

PARADYGMATY PROGRAMOWANIA Wykład 3

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

Wprowadzenie do szablonów szablony funkcji

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Zadania z podstaw programowania obiektowego

Rozdział 4 KLASY, OBIEKTY, METODY

Techniki Programowania wskaźniki

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Wprowadzenie do szablonów szablony funkcji

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

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

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.

TEMAT : KLASY POLIMORFIZM

Szablony funkcji i szablony klas

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

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

Mechanizm dziedziczenia

Programowanie obiektowe

Metody Metody, parametry, zwracanie wartości

Język C++ zajęcia nr 2

Podstawy Programowania Obiektowego

Wykład 4: Klasy i Metody

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

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.

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

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

dr inż. Jarosław Forenc

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

PARADYGMATY PROGRAMOWANIA Wykład 2

STL: Lekcja 1&2. Filozofia STL

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

Konstruktor kopiujacy

1 Podstawy c++ w pigułce.

C++ Przeładowanie operatorów i wzorce w klasach

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Programowanie obiektowe i C++ dla matematyków

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

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 Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Enkapsulacja, dziedziczenie, polimorfizm

1 Podstawy c++ w pigułce.

Dokumentacja do API Javy.

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Program 22. #include <iostream> using namespace std; struct Osoba { string Imie; string Nazwisko; char Plec; int RokUr; };

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

Pytania sprawdzające wiedzę z programowania C++

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

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

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

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

Programowanie obiektowe i C++ dla matematyków

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

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

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

Programowanie Obiektowew języku C++ Zadania L4

C-struktury wykład. Dorota Pylak

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

Zaawansowane programowanie w języku C++ Klasy w C++

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

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

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Transkrypt:

KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie robi nic) konstruktor ustalający pola prywatne klasy na podstawie jego parametrów metoda Ustaw ustalająca pola prywatne klasy zgodnie z wartościami jej parametrów oraz metody zwracające wartości poszczególnych pól metoda Wyswietl wyświetlająca na ekranie dane osobowe ucznia metoda logiczna Lepszy, porównująca średnią ucznia na którym wykonujemy metodę ze średnią drugiego ucznia przekazanego jako parametr do funkcji. Zwraca wartość true, gdy obiekt na rzecz którego jest wykonana metoda ma lepszą średnią metoda logiczna Promowany określająca na podstawie średniej czy uczeń jest promowany do następnej klasy. Napisz implementację powyższych metod.

KLASA UCZEN Schemat naszego pliku #include<iostream> using namespace std; class Klasa private: //deklaracja pól i ewentualnych metod prywatnych: //Typ nazwa_pola public: //deklaracja lub definicja metod publicznych klasy i konstruktorów //definicje konstruktorów i metod np.konstruktor //bezparametrowy, który nie robi nic Klasa() ; int main() //wykorzystanie Klasy

KLASA UCZEN Zaczynamy zatem pisać deklarację naszej klasy Uczen. Określmy pola klasy #include<iostream> #include<string> using namespace std; //deklaracja klasy class Uczen private: //pola klasy opisują dane, które zawarte będą w każdym //obiekcie klasy string imie; string nazwisko; float srednia; public: ;

Klasa Uczen - metody Metody definiują zbiór operacji, jakie na tych danych będzie można wykonywać. Deklaracja metody ma postać deklaracji funkcji, tyle że zawarta jest wewnątrz definicji klasy. Tak jak dla zwykłych funkcji, deklaracja może być połączona z definicją. Można też, z podobnym skutkiem, wewnątrz klasy tylko metodę zadeklarować, a zdefiniować ją już poza klasą, w definicji odwołując się do niej poprzez nazwę kwalifikowaną operatorem zakresu klasy (np. Klasa::), bo przecież mogłoby istnieć wiele niezwiązanych ze sobą metod o tej samej nazwie w różnych klasach.

Klasa Uczen Konstruktor w programowaniu obiektowym to specjalna metoda o nazwie zgodnej z nazwą klasy, wywoływana podczas tworzenia jej instancji (obiektów tej klasy). (Jeśli w klasie nie zdefiniujemy konstruktorów to mamy do dyspozycji domyślny(bezparametrowy) konstruktor. Zawsze możemy w main zadeklarować, np. Uczen jankowalski) Dodajmy do naszej klasy konstruktory: public: //konstruktor bezparametrowy nie robi nic- //zdefiniujemy go od razu w klasie Uczen() //konstruktor ustalający pola prywatne klasy na podstawie //jego parametrów Uczen(string aimie, string anazwisko,float asrednia); ;//koniec deklaracji klasy Zaimplementujmy drugi konstruktor poniżej (pomiędzy deklaracją klasy a funkcją main(), lub pod funkcją main())

Klasa Uczen class Uczen...; //implementacja metod klasy Uczen Uczen:: Uczen(string aimie, string anazwisko,float asrednia) //ustawiamy pola naszej klasy zgodnie z parametrami imie = aimie; nazwisko = anazwisko; srednia = asrednia; int main()

Klasa Uczen- metoda Ustaw Dodajemy kolejna metodę w klasie: //metoda Ustaw ustalająca pola prywatne klasy zgodnie //z wartościami jej parametrów void Ustaw(string aimie, string anazwisko,float asrednia); a następnie jej impelmentację poiżej implementacji konstruktorów void Uczen::Ustaw(string aimie, string anazwisko,float asrednia) imie = aimie; nazwisko = anazwisko; srednia = asrednia; //implementacja wygląda tak samo jak zwykłego konstruktora, // ale to jest metoda, ona nie tworzy obiektu

Klasa Uczen metody zwracające pola Napiszemy teraz metody zwracające wartości poszczególnych pól (get) string ZwrocImie() const; string ZwrocNazwisko() const; float ZwrocSrednia() const; IMPLEMENTACJA string Uczen::ZwrocImie() const return imie; string Uczen::ZwrocNazwisko() const return nazwisko; float Uczen::ZwrocSrednia() const return srednia;

Klasa Uczen- metoda Wyswietl W klasie dopisujemy kolejną metodę: //metoda Wyswietl wyświetlająca na ekranie dane osobowe ucznia void Wyswietl() const; //const bo metoda nie zmienia pol klasy,jak wszystkie // poprzednie metody IMPLEMENTACJA Poniżej zamieszczamy implementację: void Uczen::Wyswietl() const cout<<"imie "<<imie<<endl; cout<<"nazwisko "<<nazwisko<<endl; cout<<"srednia "<<srednia<<endl;

Klasa Uczen- Lepszy //metoda logiczna Lepszy, porównująca średnią ucznia //na którym wykonujemy metodę ze średnią drugiego ucznia // przekazanego jako parametr do funkcji. //Zwraca wartość true, gdy obiekt na rzecz którego jest // wykonana metoda ma lepszą średnią bool Lepszy( Uczen u) const; //parametr przekazujemy przez wartość, bo go nie zmieniamy //tylko korzystamy z jego wartości //można w takim przypadku przez stałą referencję (zalecane) //bool Lepszy(const Uczen & u) const; IMPLEMENTACJA: bool Uczen::Lepszy(Uczen u) const return srednia > u.srednia;

Klasa Uczen metoda Promowany //metoda logiczna Promowany określająca na podstawie // średniej czy uczeń jest promowany do następnej klasy bool Promowany() const; IMPLEMENTACJA: bool Uczen::Promowany() const return srednia>=3; Możemy teraz przejść do metody main i stworzyć obiekty naszej klasy

Klasa Uczen f-cja main() int main(int argc, char* argv[]) //tworzymy ucznia przy pomocy konstruktora // bezparametrowego Uczen ucz1; //ustawiamy dane ucznia przy pomocy metody Ustaw ucz1.ustaw("jan", "Kowalski", 4.0); //wyswietlamy kontrolnie dane ucznia ucz1.wyswietl(); //tworzymy drugiego ucznia przy pomocy //konstruktora z paparmetrami Uczen ucz2("pawel", "Nowak", 3.5); ucz2.wyswietl();

Klasa Uczen funkcja main() //porownanie uczniow przy pomocy metody Lepszy if(ucz1.lepszy(ucz2)) cout<<"lepszy uczen to: "<<endl; ucz1.wyswietl(); else cout<<"lepszy uczen to: "<<endl; ucz2.wyswietl();

Klasa Uczen funkcja main() //sprawdzamy uczniow czy sa promowani cout<<"lista uczniow promowanych:"<<endl; if(ucz1.promowany()) ucz1.wyswietl(); if(ucz2.promowany()) ucz2.wyswietl(); system("pause"); return 0;

Funkcje z klasami jako parametry Tak jak robilismy to przy strukturach w naszych programach możemy pisać funkcjie operujące na zmiennych typu klasowego- obiektach. Napiszmy funkcję, która dla przekazanych przez parametry dwóch uczniów zwraca w wyniku nazwisko ucznia o wyzszej średniej, a imię tego ucznia przekazuje przez parametr. Funkcję zapiszemy pomiedzy implementacją metod naszej klasy a funkcja main(): string MaxSrednia(Uczen u1, Uczen u2, string & im) if (u1.zwrocsrednia()> u2.zwrocsrednia()) im = u1.zwrocimie();//nadajemy wartosc parametrowi im return u1.zwrocnazwisko(); else im = u2.zwrocimie();//nadajemy wartosc parametrowi im return u2.zwrocnazwisko();

Funkcje z klasami jako parametry string MaxSrednia(Uczen u1, Uczen u2, string & im) Funkcja ma zwrócić imię i nazwisko, nazwisko jest wynikiem funkcji dlatego funkcja jest typu string, a imię zwracamy przezdodatkowy parametr, dlatego przekazujemy go przez referencje (gdyż wewnatrz funkcji nadamy temu parametrowi wartość, bez & prametr przekazany byłby przez wartość, czyli działalibysmy na kopii) Wewnatrz funkcji nie możemy sięgać do pól klasy (jak to robiliśmy przy strukturach), gdyż są one prywatne. Korzystamy z odpowiednich metod klasy. Odwołujemy się do nich przez. ObiektKlasy.Metoda(lista parametrów); np. u1.zwrocsrednia(); Powyższą funkcję możemy wykorzystać w funkcji main(): string i, n= MaxSrednia(ucz1, ucz2, i); cout<<"uczen o wyzszej sredniej to :" <<i<<" "<<n<<endl;