1 C++ mgr inż. Tomasz Turba Politechnika Opolska 2016
2 Zajęcia [05.04.2016] Przestrzenie nazw i zagnieżdżanie Struktury Dane jak tabela Struktura w funkcji Dostęp do struktury wskaźnikiem Zadanie domowe
3 Przestrzenie nazw Zalety: Mogą zastąpić dużo zmiennych statycznych i globalnych Przy tworzeniu biblioteki funkcji, klas, nagłówka namespace twoja_nazwa { //tutaj możemy tworzyć zmienne, funkcje, struktury } using twoja_nazwa; //wywołanie wszystkich definicji twoja_nazwa::metoda(); //inicjalizacja
4 #include namespace pole_figur { const double PI = 3.14; double kolo(const double PI, short r) { return(PI * r * r); } int main() { using std::cout; using std::endl; using namespace pole_figur; double r; cout > r; cout
5 Struktury – WTF? Struktura danych ułatwia zorganizowanie danych w wygodniejszy sposób niż tabela. Dostęp do danych obiektowy. Kropka – dostęp do danych (nowe frameworki = autopodpowiedź) struct uzers //nazwa struktury { //opis struktury std::string imie; std::string haslo; short wiek; std::char plec; };
6 #include using namespace std; struct uZers { std::string imie; std::string nazwisko; std::string haslo; short wiek; char* plec; }; int main() { uZers TomaszTurba = { "Tomek", "Turba", "passw0rd", 30, "M" }; //LUB uZers KevinMittnick; KevinMittnick.imie="Kevin"; KevinMittnick.nazwisko="Mittnick"; KevinMittnick.haslo="hackTEHplanet!"; KevinMittnick.wiek=45; KevinMittnick.plec="M"; cout
7 Dynamiczne wypełnianie struktur Zgodnie z deklaracją Dostęp jak w tablicy Tworzenie OBIEKTU struktury Przypisanie struktury: struct panie { short grupa; short wiek; }; … panie Marta, Ania; Marta.grupa=13; Marta.wiek=20; Marta=Ania;
8 #include using namespace std; struct uZers { std::string imie; std::string nazwisko; }; int main() { uZers Uzytkownicy[3]; for(short i=0;i Uzytkownicy[i].imie; cout > Uzytkownicy[i].nazwisko; } cout
9 Funkcje w strukturze Wyniki Pitagoras(Trojkat pobierzboki); void WyswietlWyniki(const Wyniki wynik);
10 Wskaźniki w strukturze struktura * wskaznik =& dane; wskaznik->liczba;
11 Zadanie domowe Project Manager poprosił Cię o napisanie programu dla firmy Asseco który będzie pomagał liczyć przepracowane godziny N-pracowników określając ich indywidualne wynagrodzenie (iloczyn stawka*godziny). Wykorzystaj wiedzę nt. struktur, funkcji i opcjonalnie wskaźników. Wprowadź dane pracowników Pokaż wszystkie dane pracowników wraz z obliczeniem wynagrodzenia (funkcją) Czekaj na wybór widoku przez użytkownika dopóki nie wciśnie „4” = exit Widoki: 1=Wiek – sortowanie pracowników po wieku (od najstarszego) 2=Stawka – sortowanie pracowników po wysokości stawki (od najwyższej) 3=Przepracowane – sortowanie pracowników po ilości przepracowanych godzin (od największej) 4=Koniec = exit Wyświetl sortowanie i wróć do menu lub zakończ if getchar(‚4’);
13 Klasa
14 Metoda
15 Konstruktor i destruktor
16 Zadanie domowe