RENDSZERTERV Egyetemi könyvtári nyilvántartó rendszer A rendszer célja A projekt célja egy egyetemi könyvtár nyilvántartó rendszerének megtervezése. A legfőbb követelmény, amit a rendszerrel szemben támasztok, az, hogy egyszerű, könnyen kezelhető és magától értetődő legyen, továbbá fontos, hogy a hallgatók, oktatók, és egyéb személyek minél kevesebb idő alatt elsajátítsák a rendszer használati módját. Ha a funkcionális követelményeket fontossági sorrendbe helyezzük, az első dolog, amit biztosítania kell a szoftvernek, az annak a kérdésnek a megoldása, hogy a rendszert több felhasználó használja, valamint mindegyik felhasználónak szükséges feltétele a rendszer használatához a bejelentkezés. Azok a személyek, akik valamilyen, kölcsönzéssel kapcsolatos műveletet szeretnének végezni, valamint a könyvtáros, aki adminisztrációs feladatokat lát el, más műveleteket legyen képes végezni. A program architektúrája: Maga a program egy konzolos felületből áll, ahol a könyvtárral kapcsolatos műveleteket elvégezhetjük. A program indítása után egy bejelentkezési képernyő fog várni minket, ahol minden felhasználók a saját nevével és jelszavával(okiratszám) léphet be a rendszerbe. Aszerint, hogy milyen felhasználóról van szóm, jelennek meg az aktuális műveletek. Két fontos tagtípust különböztetünk meg, a könyvtárost, aki egyben rendszergazda szerepet tölt be és az összes többi tag. A könyvtáros tudja mindazokat a műveleteket, amiket egy egyszerű felhasználó, azzal a különbséggel, hogy megjelennek a különféle adminisztrációs műveletek, mint például egy tag vagy egy könyv módosítása, törlése, új könyv felvétele stb; Az egyéb különböző tagok legfontosabb műveletei a könyvek listázása, keresése, könyv kölcsönzése. Különbségek a tagok között abban rejlik, hogy ki mennyi időre kölcsönözhet könyvet, fizet -e kölcsönzési díjat, esetleg, ha késik a könyv visszahozásával, mennyi késedelmi díjat fizet. A program minden adatot egy adatbázisban tárol. Külön táblában tároljuk a könyveket, és felhasználókat. A program innen olvassa majd ki az adatokat megfelelő lekérdezések révén. Maga a program C++ nyelven fog íródni objektumorientáltan, több modulból fog állni, minden modult külön fájlban hozok létre. A fő programot a main.cpp fogja tartalmazni, ahová beemelem a szükséges fejállományokat. A mysql adatbázis tábláit az adatbazis.txt fájl parancsok futtatásával hozhatjuk majd létre. Osztályszerkezet A program az alábbi osztályokból épül fel: Könyv típus osztály(struktúra), amely tartalmazza egy könyv legfontosabb adatait. szerző A könyv szerzője cím A könyv címe kiadó A könyv kiadója évszám A könyv írásának időpontja kiadás Kiadási évszám ISBN - azonosítószám, a könyvek és egyéb monografikus jellegű művek nyilvántartására szolgáló nemzetközi szabványos számrendszerhez tartozó kód.
könyv_id - egyedi azonosító, amely egy könyvet azonosít kölcsönözhető_e logikai változó, amely megmondja, hogy egy könyv kölcsönözhető -e Tag absztakt osztály, rendelkezik mindazon adattagokkal és metódusokkal, amely a könyvtár minden egyes tagjára érvényes. Belőle származtatjuk majd az EgyetemiHallgató, EgyetemiOktató, MásEgyetemPolgára, EgyébTag valamint a Könyvtáros osztályokat. Tag: tag_id egyedi azonosító, amely egy könyvtári tagot azonosít nev könyvtári tag vezeték és keresztneve cím Lakhely és értesítési cím okiratszam személyigazolvány, diákigazolvány, vagy egyéb azonosító szám elérhetőség könyvtári tag elérhetősége(email) kölcsönzési_idő minden taghoz tartozik egy kölcsönzési idő, hogy mennyi időre kölcsönözhet ki egy könyv kölcsönzési_díj tagonként változó kölcsönzési díj összege kesedelmi díj - abban az esetben, ha túllépte a kölcsönzési időt, kölcsönzési díjat köteles fizetni. Tagonként válozó szám. bejelentkezett logika változó, amely azt mondja meg, hogy egy felhasználó bejelentkezett -e a könyvtárba Kereskönyv(cim) Kilistázza azokat a könyveket, amelyeknek a címe a cím változó értéke Kereskönyv(szerző) - Kilistázza azokat a könyveket, amelyeknek a szerzője a szerző változó értéke ListazKönyvek() - Kilistázza a könyveket Bejelentkezés(név,jelszó) Bejelentkezés a könyvtárba. Két paramétert vár, a felhasználó nevét és jelszavát. A jelszó nem más, mint a tag felhasználó okiratszáma. Kijelentkezés() - Kijelentkezés a könyvtárból Kölcsönzés(tag_id,könyv_id) két paramétert vár, tag_id és könyv_id. A tag_id felhasználó kikölcsönzi a könyv_id nevű könyvet KölcsönzésListázás(tag_id) Kilistázza a tag_id felhasználó által kivett könyveket és kiírja az esetleges tartozásokat. Könyvtáros: Tagfelvétel(név,cím,okiratszám,elérhetőség) - Egy új tag felvétele az adatbázisba. Tag_modosit(tag_id) Módosítja a tag_id azonosítójú felhasználót TagokListazasa() - Kilistázza az összes tagot TagTörlése(tag_id) Törli a tag_id azonosítójú felhasználót KonyvTorles(konyv_id) Törli a konyv_id azonosítójú könyvet Konyvmodosit(konyv_id) Módosítja a konyv_id azonosítójú könyvet VisszahozástRögzít(konyv_id, tag_id) Rögzíti a konyv_id visszahozását, és jóváírja az esetleges késedelmi díjat a tag_id felhasználónak Ezen felül a könyvtáros rendelkezik azokkal a metódusokkal, amiket a Tag osztálytól örökölt. Adatbázis osztály: A program szükséges feltétele a Mysql adatbázis-kezelő megléte a gépen. Ennek függvényében az adatbázisokon különféle műveleteket hajthatunk végre. Az adatbázis osztály minden metódusa árulkodik a művelet eredményéről.
server az aktuális szerver neve, ahol az adatokat tároljuk nev a szerverhez való kapcsolódáshoz szükséges név jelszó - a szerverhez való kapcsolódáshoz szükséges jelszó adatbázis az adatbázis neve Megnyitás(server,nev,jelszo,adatbázis) Adatbázis megnyitása, 4 paramétert vár, server nevét, felhasználói nevet és jelszót valamint az adatbázis nevét Lekerdezés(adatbázis,lekérdezés)- az adatbázis nevű adatbázison végrehajtja a lekérdezés változóban lévő értéket. Ennek segítségével valósíthatjuk meg az adatbázis legfontosabb műveleteit: Adatok létrehozása, frissítése, törlése, olvasása. Bezárás(adatbázis) bezárja az adatbázis nevű adatbázist. Az egyetemi könyvtári nyilvántartó rendszer osztálydiagramja (UML)
Állapotdiagram Állapotdiagramként a tag felhasználó állapotait mutatom be. A tag először kijelenetkezett állapotban van. Innen úgy tud továbbmenni, hogy bejelentkezik. Bejelentkezett állapotban több műveletet is elvégezhet. Kilistázhatja a könyvtárban található könyveket, vagy kereshet abban, majd kikölcsönözheti a neki tetszőt könyvet. Ezután kijelentkezéssel kilép a könyvtárból és kiejelentkezett állapotba kerül.
Szekvenciadiagram Szekvenciadiagramként az egyetemi hallgató, könyvtár valamint a könyvtáros osztályokat veszem alapul. Az egyetemi hallgató valamint a könyvtáros elsőként bejelentkezik a könyvtárba a Bejelentkezés() metódus meghívásával. Ha a könyvtár igaz értékkel tér vissza, további műveleteket végezhetnek. Az egyetemi hallgató kilistázhatja a könyvtár tartalmát, és a könyvtár válaszul megjeleníti a könyveket, vagy esetleg kereshet a könyvtárban könyveket szerző, cím alapján. Ha megtalálta a neki megfelelő könyvet, szólhat a könyvtárosnak és kiveheti a könyvet. Ezután az egyetemi hallgató kijelentkezik a könyvtárból és távozik onnan.