HF MINTA 2012/2013. ősz
HF Minta Objektum-orientált program „Adatvezérelt” alkalmazás írása Fájl kezelés (olvasás, írás) Menü készítése 5-6 funkció implementálása Kb 150 sor kód Minimális dokumentáció
Hallgatói nyilvántartás - Specifikáció A projekt célja egy hallgatói nyilvántartás készítése. Egy hallgatóról szeretnénk nyilvántartani a nevét, címét, születési idejét, neptun kódját, kar, szak adatait. A szoftvertől az alábbi funkcionalitást várjuk el: Hallgatói lista fájlba mentése Hallgatói lista olvasása fájlból Új hallgató felvétele Hallgató keresése neptun kód alapján Hallgató törlése neptun kód alapján Hallgatók listázása Egyszerű menüstruktúra
Megoldás menete Adatstruktúra elkészítése Funkciók implementálása ( függvények) Menürendszer készítése Tesztelés
Hallgató osztály Nev: string string Birthdaystring Neptunstring Karstring Szakstring
Hallgató osztály függvényei Hallgató adatainak beállítása Hallgató adatainak formázott kiírása Hallgató adatainak beolvasása fájl 1 sorából Fájl 1 sorának előálíltása a hallgató adatainak alapján Neptun kód lekérdezése
def setData(self,name, ,birthday,neptun,kar,szak): Egyesével állítsuk be a kapott paramétereknek megfelelően az objektum tulajdonságait:
printHallgato(self): Formázva kiírjuk a hallgatót
def setDataFromStream(self,stringData): A fáljban az adatok az alábbi struktúrának megfelelően vannak tárolva (elválasztó karakter a #): Név# cím#születési idő#neptun#kar#szak Pl: Teszt A függvény kap egy sort, és ebből beállítja a hallgató egy-egy tulajdonságát
def getDataStream(self): Aktuális hallgató alapján adja vissza az előbb sort elválasztó karakterekkel együtt:
def getNeptun(self): Adott hallgató neptun kódjának lekérdezése
Program váza A fő programunk a hallgatókat a memóriába egy listában tárolja hallgatoList=[] Ezen kívül a menü kiírását végzi, és a kiválasztott funkciónak megfelelően hívja a megfelelő függvényeket
Menürendszer kirajzolása
1: Hallgató felvétele Új hallgató felvétele Létrehozzuk a hallgatót Bekérjük az adatokat egyesével Beállítjuk a létrehozott hallgató tulajdonságait
2: Hallgatók listázása Kapunk egy hallgató listát Végigmegyünk a lista minden elemén Minden elemre meghívjuk az elemet kiirató függvényt
3: Hallgató keresése neptun kód alapján A függvény kap egy hallgató listát, és egy neptun kódot Végigmegyünk a listán és miden neptun kódot összehasonlítunk a paraméterben kapot neptun kóddal Ha van találat kiírjuk az adott hallgatót, ha nincs kiírjuk, hogy „Nincs ilyen hallgató”
4: Hallgató törlése neptun kód alapján A függvény kap egy hallgató listát, és egy neptun kódot Végigmegyünk a listán és miden neptun kódot összehasonlítunk a paraméterben kapot neptun kóddal Amennyiben találtunk megfelelőt, akkor azt kitöröljük a listából
5: Hallgatók lista fájlba mentése A függvény kap egy hallgató listát paraméterként Megnyitjuk olvasásra a fájlt Végigmegyünk a hallgató lista minden elemén Minden elemre beszúrunk egy sort a fájlba. A sor előállításához használjuk a hallgató getDataStream függvényét Majd bezárjuk a fájlt
6: Hallgatók betöltése fájlból Létrehozunk egy segéd listát Megnyitjuk a fájlt olvasásra Soronként olvassuk a fájlt Minden sorra létrehozunk egy hallgatót Meghívjuk a hallgató setDataFromStream függvényét az aktuális sorral Az így létrehozott hallgatót hozzáadjuk a listánkhoz A függvény visszatér az adott listával
Főprogram
Dokumentáció Adatszerkezet bemutatása Fájl szerkezetének bemutatása Függvények bemutatása, melyik mit csinál