Struktura je datový typ pro uložení více položek libovolného typu do jedné proměnné.
Například ji lze použít pro vytvoření proměnné na uložení různých údajů o zaměstnanci.
Definici struktury umisťujeme před funkci main(), ne do funkce main().
Je to z toho důvodu, že jinak bychom mohli strukturu používat pouze ve funkci main() a nikde jinde.
Proměnnou vytváříme tak, jak jsme zvyklí.
Nastavení hodnot proměnných ve struktuře můžeme provést takto:
K jednotlivým položkám proměnné typu struktura můžeme přistupovat jako k běžným proměnným přes tzv. tečkovou notaci.
Struktury stejného typu lze přiřazovat
clovek2 = clovek1;
Strukturu lze předávat do funkce jako parametr
vypisUdaje(ZAMESTNANEC prac){
...
}
Strukturu lze vracet jako návratovou hodnotu funkce
ZAMESTNANEC nactiPracovnika(){
ZAMESTNANEC pracovnik;
cin >> pracovnik.jmeno;
…
return pracovnik;
}
Datový typ struktura může být také prvkem pole:
ZAMESTNANEC pracovnici[100];
K jednotlivým prvkům pole přistupujeme tak, jak jsme zvyklí:
pracovnici[0].plat = 10000;
for(int i = 0; i < 100; i++){
cout << pracovnici[i].prijmeni << endl;
}
Systém pro správu zaměstnanců
Nadefinuj datový typ ZAMESTNANEC se strukturou pro zaměstnance firmy.
Struktura bude obsahovat následující informace: jméno, příjmení, pozice, oddělení a plat.
Nadefinuj proměnnou typu ZAMESTNANEC.
Načti do jednotlivých položek proměnné vhodná data z klávesnice.
Vytiskni jednotlivé položky na obrazovku.
Uprav předchozí program tak, aby byly činnosti „načtení dat do struktury“ a „tisk položek struktury“ uvedeny jako samostatné funkce s následujícími hlavičkami:
ZAMESTNANEC nactizamestnance();
void tisknizamestnance(ZAMESTNANEC zam);
Uprav předchozí program tak, aby místo jedné proměnné typu ZAMESTNANEC, používal pole 50 prvků typu ZAMESTNANEC.
Data o jednotlivých zaměstnancích se do pole dávají postupně od začátku směrem ke konci.
Jednotlivé funkce programu volej po výběru z této nabídky:
Přidání nového zaměstnance
Výpis všech zaměstnanců
Konec programu
(BONUS) Přidej další funkce, např.:
Výpis všech zaměstnanců z daného oddělení.
Možnost aktualizovat informace o zaměstnanci (např. změna pozice nebo platu).
Načtení zaměstnanců ze souboru: implementujte funkci, která otevře textový soubor a načte z něj informace o zaměstnancích.
(BONUS) Správa knihovny
Definuj strukturu KNIHA, která bude obsahovat následující informace: název knihy, autora, žánr, rok vydání a počet stránek.
Vytvoř pole těchto struktur o maximální velikosti 100 položek.
Implementuj funkce pro:
Přidání nové knihy do systému (včetně zadání všech atributů).
Výpis všech knih.
Výpis všech knih daného autora.
Výpis knih podle žánru.
Lze např. vytvořit i funkci, která vrátí počet knih daného žánru.
Načtení knih z souboru: Implementuj funkci, která otevře textový soubor a načte z něj informace o knihách.
Přidej do struktury novou informaci: vypůjčeno, která bude typu bool a implementuj následující funkce:
Změna „vypůjčenosti“ knihy.
Počet knih, které buď jsou, nebo nejsou vypůjčeny
Vypsání všech knih, které buď jsou, nebo nejsou vypůjčeny.