Beleg 39467  1.0
Klassen | Typdefinitionen | Aufzählungen | Funktionen | Variablen
LendLibItem

Funktionen und Deklarationen rund um ausgeliehene Medien. Mehr ...

Klassen

struct  medium
 Das ausgeliehene Medium. Mehr ...
 
struct  LITEM
 Eintrag in der Liste der verliehenen Medien. Mehr ...
 
struct  theLib
 Verwaltet die Liste der verliehenen Medien. Mehr ...
 

Typdefinitionen

typedef struct LITEM lItem
 Eintrag in der Liste der verliehenen Medien.
 

Aufzählungen

enum  mType { other, book, cd, dvd }
 Typ des ausgeliehenen Mediums. Mehr ...
 
enum  sBy { title, lendee, id }
 Möglichkeiten, nach denen Sortiert/gesucht werden kann. Mehr ...
 

Funktionen

mediumcreateItem (int ntype, char *ntitle, char *nauthor, char *nlendee)
 Erstellt einen neuen Medieneintrag. Mehr ...
 
mediumcreateItemF (FILE *libitem)
 Erstellt neuen Medieneintrag aus Dateizeile. Mehr ...
 
void insertItem (medium *nMedium, theLib *inLib)
 Fügt Medium in Liste ein. Mehr ...
 
char * getmType (int type)
 Gibt String für enum mType aus. Mehr ...
 
void deleteItem (int theID, theLib *inLib)
 Löscht Medium aus der Liste. Mehr ...
 
void sortItems (sBy sortBy, theLib *inLib)
 Sortiert die Liste nach Mediumtitel/Leihendem. Mehr ...
 
void findItem (char *sItem, sBy findBy, theLib *inLib)
 Suche, bzw. finde ein ausgeliehenes Medium. Mehr ...
 
void freeAll (theLib *inLib)
 Den gesamten Speicher freigeben. Mehr ...
 
int strcicmp (char const *a, char const *b)
 Vergleicht zwei "Strings" unabhängig von Groß- oder Kleinbuchstaben Quelle: http://stackoverflow.com/a/5820991.
 
void initLib ()
 

Variablen

theLibcurrLib
 
theLib myLib
 
lItemmyItems
 
mediummyMedia
 
int myItemsCount
 
int myMediaCount
 
unsigned int idc
 

Ausführliche Beschreibung

Funktionen und Deklarationen rund um ausgeliehene Medien.

Dokumentation der Aufzählungstypen

enum mType

Typ des ausgeliehenen Mediums.

Aufzählungswerte
other 

Medium ohne Kategorie.

book 

Bücher.

cd 

CDs.

dvd 

DVDs.

enum sBy

Möglichkeiten, nach denen Sortiert/gesucht werden kann.

Aufzählungswerte
title 

Nach Medientitel.

lendee 

Nach Leihendem.

id 

Nach ID.

Dokumentation der Funktionen

medium * createItem ( int  ntype,
char *  ntitle,
char *  nauthor,
char *  nlendee 
)

Erstellt einen neuen Medieneintrag.

Parameter
ntypeTyp des Mediums
ntitleTitel des Mediums
nauthorAutor/Interpret des Mediums
nlendeePerson, dem das Medium ausgeliehen wurde
Rückgabe
Gibt das erstellte medium zurück
  • ID festlegen, dazu wird die Liste nach IDs sortiert und nach der ersten "Zahlenlücke" gesucht
  • Type festlegen
  • Titel festlegen
  • Interpret/Autor festlegen
  • Leihendem festlegen
medium * createItemF ( FILE *  libitem)

Erstellt neuen Medieneintrag aus Dateizeile.

Parameter
libitemDie Datei
Rückgabe
Gibt das erstellte medium zurück
  • ID festlegen
  • Typ festlegen
  • Titel festlegen
  • Interpret/Autor festlegen
  • Leihendem festlegen
void deleteItem ( int  theID,
theLib inLib 
)

Löscht Medium aus der Liste.

Parameter
theIDDas zu löschende Medium (ID)
inLibin dieser Liste
  • Medium mit ID finden
  • Medium aus Liste löschen indem Zeiger der Nachbarn neu gesetzt werden und anschließend der Speicher freigegeben wird.
void findItem ( char *  sItem,
sBy  findBy,
theLib inLib 
)

Suche, bzw. finde ein ausgeliehenes Medium.

Parameter
sItemNach dieser Zeichenkette soll gesucht werden
findByDie Zeichenkette soll in diesem Eintrag des ausgeliehen Mediums gesucht werden (sBy)
inLibin dieser Liste
Rückgabe
Gibt das gefundene Medium zurück
  • Durch myLib theLib gehen und alle gefunden in eine neue, temporäre theLib Liste einfügen, die dann ausgegeben wird.
void freeAll ( theLib inLib)

Den gesamten Speicher freigeben.

Parameter
inLibin dieser Liste
char * getmType ( int  type)

Gibt String für enum mType aus.

Parameter
typeZahl von mType
Rückgabe
mType als String
void insertItem ( medium nMedium,
theLib inLib 
)

Fügt Medium in Liste ein.

Parameter
iMediumDas einzufügende Medium
  • Listenobjekt erstellen und Inhalt zuweisen

Je nach Sortierung der Liste, muss anders eingefügt werden, falls nach Titel sortiert:

  • Falls Liste noch leer, diese initialisieren
  • Falls Liste einelementig ist, das nächste Element einfach einfügen
  • Alle anderen Elemente sortiert in Liste einfügen
  • - Nach einem Element suchen, welches größer ist, damit man das einzufügende Element vor diesem einfügen kann.
  • - Wenn größeres vorm Listenende gefunden wurde, Element davor einfügen
  • - Ansonsten Element am Listenende je nach größe davor oder danach einfügen.

falls nach Ausleihendem sortiert:

  • Falls Liste noch leer, diese initialisieren
  • Falls Liste einelementig ist, das nächste Element einfach einfügen
  • Alle anderen Elemente sortiert in Liste einfügen
  • - Nach einem Element suchen, welches größer ist, damit man das einzufügende Element vor diesem einfügen kann.
  • - Wenn größeres vorm Listenende gefunden wurde, Element davor einfügen
  • - Ansonsten Element am Listenende je nach größe davor oder danach einfügen.

Falls nach ID sortiert:

  • Falls Liste noch leer, diese initialisieren
  • Falls Liste einelementig ist, das nächste Element einfach einfügen
  • Alle anderen Elemente sortiert in Liste einfügen
  • - Nach einem Element suchen, welches größer ist, damit man das einzufügende Element vor diesem einfügen kann.
  • - Wenn größeres vorm Listenende gefunden wurde, Element davor einfügen
  • - Ansonsten Element am Listenende je nach größe davor oder danach einfügen.
void sortItems ( sBy  sortBy,
theLib inLib 
)

Sortiert die Liste nach Mediumtitel/Leihendem.

Parameter
sortByNach was sortiert werden soll (sBy)
inLibin dieser Liste

Zum Sortieren wird eine medium Hilfsliste erstellt, in die alle Medien aus der theLib Originalliste kopiert werden, um sie dann wieder in die Originalliste einzufügen(dabei sortiert ::insertItem schon).