Uzdevums - Bibliotēkas ievade
2024/25 AL eksāmena uzdevums OOP sadaļā.
Saturs
Uzdevuma apraksts
Bibliotēkas digitalizācijas laikā nepieciešams izveidot sistēmu, kurā uzglabāt informāciju par grāmatām. Sistēma ar laiku tiks papildināta, taču sākotnēji ir nepieciešama iespēja ievadīt informāciju par grāmatām un izveidot digitālu grāmatu katalogu.
Uzdevumi
1.1. Izveido klasi „Gramata” (1 punkts), kurai ir šādi atribūti (iekavās ir norādīti datu piemēri objektam, kas turpmāk būs jāveido) (1 punkts):
- nosaukums – obligātais atribūts („Epifānijas”);
- lappušu skaits – obligātais atribūts (304);
- ISBN jeb starptautisks grāmatas identifikators – obligātais atribūts (9789934036101);
- autors (Imants Ziedonis);
- žanrs (dzeja);
- izdošanas gads (2022);
- pieejamības statuss (pieejama).
1.2. Izveido klasei „Gramata” konstruktoru, kas, ja visi klases atribūti ir norādīti, izveido konkrētas grāmatas objektu (1 punkts) un izvada atbilstošu ziņojumu (1 punkts). Ja objektam netiek norādīts kāds no obligātajiem atribūtiem, tam(tiem) tiek piešķirtas noklusētās vērtības (iekavās ir norādīti datu piemēri) (2 punkti):
- nosaukums (Nav norādīts);
- lappušu skaits (0);
- ISBN (Nav norādīts).
- Izvades piemērs:
Grāmata "Epifānijas" ir veiksmīgi izveidota.
1.3. Izveido klases „Gramata” objektu „epifanijas”, kas satur norādīto informāciju (1 punkts):
- nosaukums: „Epifānijas”;
- lappušu skaits: 304;
- ISBN: 9789934036101;
- autors: Imants Ziedonis;
- žanrs: dzeja;
- izdošanas gads: 2022;
- ieejamības statuss: pieejama.
1.4. Izveido klasei „Gramata” metodi „izvadit()”, kas izvada konkrētās grāmatas autoru, nosaukumu un izdošanas gadu atbilstoši izvades piemēram (1 punkts). Izmantojot šo metodi, atbilstoši piemēram izvadi grāmatas „epifanijas” datus (1 punkts).
- Izvades piemērs:
Grāmatas autors: Imants ZiedonisGrāmatas nosaukums: "Epifānijas"Grāmatas izdošanas gads: 2022
1.5. Izveido klasei „Gramata” metodi „aprekinat(kaveto_dienu_skaits)”, kas aprēķina un atgriež grāmatas nodošanas termiņa kavējuma maksu pēc šādas formulas (2 punkti): kavējuma maksa = lappušu skaits * 0,01 * kavēto dienu skaits. Rezultātu noapaļo līdz diviem cipariem aiz komata (1 punkts). Izmantojot šo metodi, aprēķini un atbilstoši piemēram izvadi grāmatas „epifanijas” kavējuma maksu, ja tā ir nodota piecas dienas pēc termiņa (1 punkts).
- Izvades piemērs:
Grāmatas "Epifānijas" kavējuma maksa ir 15,20 EUR.
1.6. Izveido klases „Gramata” apakšklasi „Fantazija” fantāzijas žanra grāmatām (1 punkts).
1.7. Izveido apakšklases „Fantazija” objektu „harijs”, kas satur norādīto informāciju (1 punkts):
- nosaukums: „Harijs Poters un Filozofu akmens”;
- lappušu skaits: 223;
- ISBN: 9780747532699;
- autors: Dž. K. Roulinga;
- žanrs: fantāzija;
- izdošanas gads: 1997;
- pieejamības statuss: pieejama.
1.8. Apakšklasē „Fantazija” pārraksti virsklases metodi „aprekinat”, kas aprēķina un atgriež fantāzijas žanra grāmatas nodošanas termiņa kavējuma maksu pēc šādas formulas (2 punkti): kavējuma maksa fantāzijas žanra grāmatām = kavējuma maksa kā parastajai grāmatai + 1 % no kavējuma maksas kā parastajai grāmatai. Rezultātu noapaļo līdz diviem cipariem aiz komata (1 punkts). Izmantojot šo metodi, aprēķini un atbilstoši piemēram izvadi grāmatas „harijs” kavējuma maksu, ja tā ir nodota desmit dienas pēc termiņa (1 punkts).
- Izvades piemērs:
Grāmatas "Harijs Poters un Filozofu akmens" kavējuma maksa ir 22,52 EUR.
1.9. Izveido klasi „GramatuKatalogs” (1 punkts), kuras konstruktorā ir viens atribūts „gramatas”, kas paredzēts vairāku dažādu grāmatu objektu uzglabāšanai (2 punkti).
1.10. Izveido klases „GramatuKatalogs” objektu „katalogs” (1 punkts).
1.11. Izveido klasei „GramatuKatalogs” metodi „pievienot(gramata)” (1 punkts), kas pievieno jaunu grāmatu katalogā (1 punkts) un izvada atbilstošu ziņojumu, ja grāmata ir veiksmīgi pievienota (1 punkts). Izmantojot šo metodi, pievieno katalogam grāmatu objektus „epifanijas” un „harijs” (2 punkti).
- Izvades piemērs, ja grāmata ir veiksmīgi pievienota:
Grāmata "Harijs Poters un Filozofu akmens" ir veiksmīgi pievienota.
1.12. Izveido klasei „GramatuKatalogs” metodi „atjauninat_statusu(ISBN, jauns_statuss)” (1 punkts), kas pēc norādītā ISBN atjaunina grāmatas pieejamības statusu (1 punkts) un izvada atbilstošu ziņojumu, ja statuss ir veiksmīgi atjaunināts (1 punkts) vai ja prasītā grāmata nav atrasta katalogā (1 punkts). Izmantojot šo metodi, atjaunini grāmatas „harijs” pieejamības statusu uz „nav pieejama” (1 punkts).
- Izvades piemērs, ja statuss ir veiksmīgi atjaunināts:
Grāmatai ar ISBN "9780747532699" statuss ir atjaunināts uz "nav pieejama".
- Izvades piemērs, ja prasītā grāmata nav atrasta katalogā:
Grāmata ar ISBN "9780747532698" nav atrasta katalogā.
1.13. Izveido klasei „GramatuKatalogs” metodi „nonemt(ISBN)” (1 punkts), kas pēc norādītā ISBN dzēš grāmatu no kataloga (1 punkts) un izvada atbilstošu ziņojumu, ja grāmata ir veiksmīgi nodzēsta no kataloga (1 punkts) vai ja prasītā grāmata nav atrasta katalogā (1 punkts). Izmantojot šo metodi, dzēš grāmatu „epifanijas” no kataloga (1 punkts).
- Izvades piemērs, ja grāmata ir veiksmīgi nodzēsta no kataloga:
Grāmata ar ISBN "9789934036101" ir veiksmīgi nodzēsta no kataloga.
- Izvades piemērs, ja prasītā grāmata nav atrasta katalogā:
Grāmata ar ISBN "9789934036100" nav atrasta katalogā.