ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1029
1029
EMPFEHLEN
-
Hallo,
ich bin neuling für Programmierung. Wir haben eine Aufgabe bekommen, da rätsle ich mich schon sehr lange.
Aufgabe.
In einer Datei ist ein Auszug aus einer Bücherliste bestehend aus n Datensätzen
gespeichert.
Also die habe ich so aufgebaut:
struct Buch
{
char Name[20];
char Buchtitel[30];
char ISBN[13];
float preis;
};
Diese Datei soll datensatzweise einliesen und jeden Datensatz in ein Element eines Ringes
abspeicheren. Als Hinweis die Funktion Read(f, DS)
Ich habe folgende Gedanke gemacht:
1. file.open
2. lese solange EOF
3. Read(f,DS)
4. file.close
Mein Gedanke ist sehr kurz und knapp, die alles im code Datensatz im Ringelement zu speichern. Ich hoffe, dass jemand mir weiterhelfen kann.
Thanks in adavance.
-
13.11.08 13:02 #2
Hi,
du müsstest deine Struktur folgendermaßen erweitern :
Code :1 2 3 4 5 6 7 8 9
struct Buch { char Name[20]; char Buchtitel[30]; char ISBN[13]; float preis; Buch *pNext; // Diese Variable beinhaltet dann einen Zeiger auf das nächste Buch-Objekt };
Du hälst dir dann nur eine Zeigervariable, welche auf dein erstes Buchelement zeigt.
Code :1
Buch *pFirstBook = NULL;
Dann liesst du dir alle Bücher-Informationen aus deiner Datei aus (Das überspringe ich jetzt mal, du sollst ja auch noch n bisschen Spaß haben
) und erzeugst dir für jedes Buch ein neues Buch-Objekt.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Buch *pCurrentBook = NULL; // Zeiger, um das aktuelle Buch richtig einzuordnen! while(...) { // Erzeuge ein neues Buch-Objekt Buch *pBook = new Buch(); // Setze die Werte der neuen Struktur strcpy(pBook->Name, bookName); . . . // Setze den Zeiger auf das nächste Buch auf NULL! Das neu eingefügte Buch ist ja das letzte in deiner Liste pBook->pNext = NULL; // Und füge das Objekt in deine Liste ein! if( pCurrentBook == NULL ) { // Es ist das erste Buch, welches eingefügt wird, also pCurrentBook = pBook; pFirstBook = pBook; } else { // Setze den Zeiger des vorigen Buches auf das neu erzeugte Buch-Objekt pCurrent->pNext = pBook; // Setze das neu eingefügte Buch als aktuelles Buch pCurrent = pNext; }
Anschließen hast du eine einfach verkettete Liste aller Bücher aus deiner Datei.
Und so kannst du anschließen über deine Buchliste iterieren:
Code :1 2 3 4 5 6
Buch *pCurrent = pFirstBook; while( pCurrent != NULL ) { // Mache irgendwas mit den Buch-Infos... und setze den pCurrent-Zeiger auf das nächste Buch pCurrent = pCurrent->pNext; }
Denke. das sollte dir helfen..
Schöne Grüße,
PitDer Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
`c++ gewünscht?
-
13.11.08 15:52 #4
Es ging bei meinem Post nur um den Ansatz, nicht um die Realisierung

Ausserdem wo steht, dass C++ gewünscht war ?Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
ich bezog mich nciht auf dich sondern aufn ihn
dann sieht die generelle realisierung unter umständen gaaanz anders aus
-
ich bezog mich nciht auf dich sondern aufn ihn
dann sieht die generelle realisierung unter umständen gaaanz anders aus
-
Hi Pit,
vielen Dank
ich habe sogar verstanden, wie man mit Struct und Zeiger arbeiten kann (nicht ganz aber einbisschen schon)
Dank dir viel mals
Ähnliche Themen
-
XML mit PHP einlesen und in mySQL abspeichern?
Von kwmaster im Forum PHPAntworten: 8Letzter Beitrag: 07.02.09, 18:17 -
Datei einlesen - uebermitteln - und wieder abspeichern
Von zu1u im Forum JavaAntworten: 1Letzter Beitrag: 22.01.09, 07:33 -
Zahlen extern abspeichern und bei neustart wieder einlesen
Von Profundis im Forum C/C++Antworten: 0Letzter Beitrag: 08.04.08, 20:38 -
html-Datei einlesen, ändern und neu abspeichern
Von luxlunatic im Forum PHPAntworten: 5Letzter Beitrag: 27.08.07, 15:50 -
einlesen und abspeichern
Von LZD im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 06.12.02, 19:11





Zitieren
Login






