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

Podobne dokumenty
Projektowanie klas c.d. Projektowanie klas przykład

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

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

Aplikacje w środowisku Java

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

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

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

PARADYGMATY PROGRAMOWANIA Wykład 2

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

Laboratorium 1 - Programowanie proceduralne i obiektowe

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Szablony funkcji i szablony klas

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

Wstęp do Programowania 2

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

Wprowadzenie do szablonów klas

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

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

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

Wstęp do programowania

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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

Przypomnienie o klasach i obiektach

Mechanizm dziedziczenia

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 obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

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

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

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

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Wykład 4: Klasy i Metody

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Abstrakcyjny typ danych

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

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

PARADYGMATY PROGRAMOWANIA Wykład 3

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

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

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

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Algorytmy i Struktury Danych. Anna Paszyńska

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

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

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

Do czego służą klasy?

Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory Wskaźnik this Destruktor Przeciążanie funkcji i operatorów Funkcje otwarte

Operatory na rzecz typu TString

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

Struktury. Przykład W8_1

Podstawy programowania obiektowego

Metody Metody, parametry, zwracanie wartości

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

Język ludzki kod maszynowy

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

PARADYGMATY PROGRAMOWANIA Wykład 4

Zofia Kruczkiewicz, ETE8305_2 1

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

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

TEMAT : KLASY DZIEDZICZENIE

Programowanie komputerowe. Zajęcia 7

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

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Zaawansowane programowanie w C++ (PCP)

Aplikacje w środowisku Java

Co nie powinno być umieszczane w plikach nagłówkowych:

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

Materiały do zajęć VII

Listy powiązane zorientowane obiektowo

Mechanizm dziedziczenia

Programowanie obiektowe

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

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

C++ - [4-7] Polimorfizm

Wstęp do Programowania 2

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

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

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Abstrakcyjne struktury danych w praktyce

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

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Wykład :37 PP2_W9

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

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Podstawy Programowania Obiektowego

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Język C - podstawowe informacje

Wprowadzenie do programowania i programowanie obiektowe

Przychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba.

E S - uniwersum struktury stosu

Podstawy Programowania Obiektowego

Lab 9 Podstawy Programowania

Wprowadzenie do szablonów szablony funkcji

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Transkrypt:

Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia przejrzystego i czytelnego kodu, jest podstawą w tworzeniu większych projektów. Jedyna, dopuszczalna forma chaosu, to niemiecki chaos (patrz rys.1). Rys. 1 Nawet przy najmniejszych zadaniach laboratoryjnych, proszę zachować logikę w nazewnictwie zmiennych i klas. Proszę pamiętać o tworzeniu osobnych plików dla: metod, klas oraz wreszcie użycia klasy (main). Przy wystąpieniu błędu

Proszę: a) Zastosować się do porady VS i samemu sprawdzić w pomocy online, co zrobić lub b) Proszę kolejno przejść: Project -> Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions" dopisać _CRT_SECURE_NO_WARNINGS Nasze programy (właściwie, Państwa programy), będą miały zwyczaj szybkiego zamykania konsoli, zanim zdążycie przeczytać, co na niej się pojawiło. Dla tych, którzy zapomnieli z poprzedniego semestru, polecam: Na koniec kilka przydatnych #include #include <iostream> #include <stdio.h> #include <tchar.h> #include <string>

1. Wiadomości teoretyczne: Tworzenie klas: class NazwaKlasy ; // ciało klasy Metody: void NazwaKlasy::metody(int a) //ciało metody. UWAGA! Metoda ma być zdefiniowana poza klasą, czyli poza nawiasami klamrowymi klasy! Przykład deklaracji trzech różnych typów konstruktora + destruktor: class NazwaKlasy public: NazwaKlasy(); NazwaKlasy(char[], int, bool); NazwaKlasy(int, int); ~NazwaKlasy; //destruktor ; Konstruktory: NawaKlasy:NazwaKlasy() //ciało konstruktora. NawaKlasy:NazwaKlasy(int a, int b) //ciało konstruktora wywoływanego z dwoma parametrami. Operacje na obiektach: NazwaKlasy obiekt_x; //tworzenie obiektu o nazwie obiekt_x należącego do klasy NazwaKlasy

NazwaKlasy obiekt_x (1,2) // tworzenie obiektu o nazwie obiekt_x wyposażonego w konstruktor umożliwiający wpisanie dwóch danych int obiekt_x.a //odwołanie się do publicznej danej skladowej a obiektu obiekt_x obiekt_x.oblicz ( nazwa, a, b) //odwolanie do publicznej metoda obietu obiekt_x. Agr metoda (char, int, int) 2. Zadania 2.1 Zdefiniuj klasę reprezentującą konto rabatowe payback. Składowe powinny opisywać nazwisko posiadacza konta, numer karty rabatowej i ilość zdobytych punktów rabatowych. Napisz krótki program obsługujący klasę. Metody powinny: Tworzyć obiekt i go inicjalizować, Wyświetlać nazwisko klienta, numer karty i ilość zdobytych punktów Zamieniać wpłacone pieniądze na dodatkowe punkty rabatowe ( 1zł = 10pkt). Kwota jest określana argumentem wywołania Wydawać punkty rabatowe z konta w ilości określonej argumentem wywołania 2.2 Mamy dany kod programu: class Person private: string surname; string firstname; public: Person() this->surname = ""; this->firstname = ""; // #1 Person (string & fname, string & sname ) this->surname = sname; this->firstname = fname; // #2 //Metody wyswietlajace imie i nazwisko: void Show(); void FormalShow(); // imię nazwisko // nazwisko imię ;

Napisz program, który uzupełni implementację klasy o kod niezdefiniowanych metod. Program, ma dodatkowo przetestować trzy możliwe wywołania konstruktora (bez argumentów, z jednym argumentem, z dwoma argumentami) oraz metody wyświetlające dane obiektu. Zadanie 2.3 Mamy strukturę struct employee char fullname[35]; double payment; ; Napisz program, który będzie dodawał struktury pracownika na stos i je usuwał. Za każdym razem gdy usuwamy strukturę ze stosu należy dodać wartość wynagrodzenia do ogólnej wartości płacy i ją wyświetlić. Jedyne co można zmienić w klasie stack, to typ zmiennej Item, tak by był to typ employee. #include "stack.h" // stack.cpp -- metody klasy stosu Stack::Stack() top = 0; // tworzy pusty stos bool Stack::isempty() const return top == 0; bool Stack::isfull() const return top == MAX; bool Stack::push(const Item & item) if (top < MAX) items[top++] = item; return true; else return false; bool Stack::pop(Item & item) if (top > 0) item = items[--top]; return true; else return false;

Stack h: // stack.h -- definicja klasy stosu (wg ADT) #ifndef STACK_H_ #define STACK_H_ typedef unsigned long Item; class Stack private: enum MAX = 10; // stała zasięgu klasy Item items[max]; // przechowuje elementy stosu int top; // indeks szczytowego elementu stosu public: Stack(); bool isempty() const; bool isfull() const; // push() zwraca false, jeśli stos jest już pełen (true w pozostałych przypadkach) bool push(const Item & item); // odkłada element na stos // pop() zwraca false, jeśli stos jest już pusty (true w pozostałych przypadkach) ; #endif bool pop(item & item); // zdejmuje element ze stosu