tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1029
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tharmy Tharmy ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    14
    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.
     

  2. #2
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    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,

    Pit
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  3. #3
    Avatar von devDevil
    devDevil devDevil ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    `c++ gewünscht?
     

  4. #4
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    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 ;-)

  5. #5
    Avatar von devDevil
    devDevil devDevil ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    ich bezog mich nciht auf dich sondern aufn ihn dann sieht die generelle realisierung unter umständen gaaanz anders aus
     

  6. #6
    Avatar von devDevil
    devDevil devDevil ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    662
    ich bezog mich nciht auf dich sondern aufn ihn dann sieht die generelle realisierung unter umständen gaaanz anders aus
     

  7. #7
    Tharmy Tharmy ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    14
    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

  1. Antworten: 8
    Letzter Beitrag: 07.02.09, 18:17
  2. Antworten: 1
    Letzter Beitrag: 22.01.09, 07:33
  3. Antworten: 0
    Letzter Beitrag: 08.04.08, 20:38
  4. Antworten: 5
    Letzter Beitrag: 27.08.07, 15:50
  5. einlesen und abspeichern
    Von LZD im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 06.12.02, 19:11