Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. január 9.
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(adatbazis.h, tag.h, menu.h)
Osztályszerkezet A program az alábbi osztályokból épül fel: 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észítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. január 9.
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. KeresSzerzo(string szerzo) – A függvény meghívása esetén egy karakterláncot vár paraméterül, majd kilistázza azokat a könyveket, amelyeknek a szerzőjében szerepel a paraméterben megadott szöveg KeresCim(string cim) - A függvény meghívása esetén egy karakterláncot vár paraméterül, majd kilistázza azokat a könyveket, amelyeknek a címében szerepel a paraméterben megadott szöveg Keres(string kulcs) - A függvény meghívása esetén egy karakterláncot vár paraméterül, majd kilistázza azokat a könyveket, amelyeknek valamelyik adattagjában szerepel a paraméterben megadott szöveg 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. Kölcsönzés() – A függvény meghívása esetén egy könyv azonosítót kér be a bejelentkezett felhasználótól, majd a kölcsönzést rögzíti az adatbázisban. KölcsönzésListázás() – Kilistázza a bejelentkezett felhasználó által kivett könyveket . Könyvtáros: Tagfelvetel() - Egy új tag felvétele az adatbázisba. Tagmodosit() – Tag módosítása TagListaz() - Kilistázza az összes tagot TagTorles() – Töröl egy tagot az adatbázisból KonyvTorlese() – Töröl egy könyvet az adatbázisból KonyvModosit() – Könyv adatainak módosítása KonyvFelvetel() – Egy új könyv felvétele az adatbázisba KesedelemListaz() – Kilistázza azokat a felhasználókat, akiknek tartozásuk van. 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 user – a szerverhez való kapcsolódáshoz szükséges név password- a szerverhez való kapcsolódáshoz szükséges jelszó database – az adatbázis neve Adatbazis(server,user,password,database) – Konstruktor, az 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(lekérdezés)- az 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. Hibás lekérdezés esetén kiírja a hiba okát. Menü osztály: Ez az osztály felelős a konsolon megjelenő menü kezelésért. Attól függően, hogy könyvtáros vagy egyéb tag jelentkezett -e be a programba, jeleníti meg a menüpontokat.
Készítette: CHORDASH MARTON Email:
[email protected] Az egyetemi könyvtári nyilvántartó rendszer osztálydiagramja (UML)
NEPTUN: IAXQ0W 2012. január 9.
Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. január 9.
Á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.
Készítette: CHORDASH MARTON Email:
[email protected]
NEPTUN: IAXQ0W 2012. január 9.
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.