tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
382
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kaddi1987 kaddi1987 ist offline Grünschnabel
    Registriert seit
    Nov 2011
    Beiträge
    3
    Hallo zusammen
    ich bin ein wenig am c++ üben und habe bei folgender aufgabe so meine problemchen,bzw ich finde gar keinen rechten anfang.vielleicht kann mir jemand helfen um damit fertig zu werden.


    Im gegebenen Programmgerüst sind zwei Klassen definiert: Book und Student. Jedes Buch (Instanz der Klasse Book) besitzt die Attribute m_title, m_author und m_isbn, welche Titel, Autor und ISBN des Exemplars beschreiben. Eine Instanz der Klasse Student enthält bis zu acht (ausgeliehene) Bücher, die in einem Array (m_book) gespeichert sind. Das Array soll Pointer auf die Instanzen der ausgeliehenen Bücher speichern.
    In der folgenden Aufgabe sollen Book und Student ergänzt werden, so dass die (unveränderte) main-Funktion genau die folgende Ausgabe produziert:

    ----------------
    [Buch 0] Titel: Introduction to Algorithms
    Autor: Th. Cormen, Ch. Leiserson, R. Rivest, ISBN: 0262531968
    [Buch 1] Titel: The C++ Programming Language
    Autor: Bjarne Stroustrup, ISBN: 0201700735
    [Buch 2] Titel: Grundkurs Informatik
    Autor: H. Ernst, ISBN: 3528257172
    ----------------
    [Buch 0] Titel: Introduction to Algorithms
    Autor: Th. Cormen, Ch. Leiserson, R. Rivest, ISBN: 0262531968
    [Buch 2] Titel: Grundkurs Informatik
    Autor: H. Ernst, ISBN: 3528257172
    ----------------

    Code cpp:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    class Book
    {
        string m_title;
        string m_author;
        string m_isbn;
     
    public:
     
        Book(string title,
             string author,
             string isbn)
        {
            // ...
        }
     
        // ...
    };
     
    class Student
    {
        // array der geliehenen Buecher
        Book* m_book[8];
        
    public:
        Student()
        {
            // ...
        }
        
        ~Student()
        {
            // ...
        }
        
        void addBook(Book& book)
        {
            // ...
        }
     
        void removeBook(Book& book)
        {
            // ...
        }   
     
        void printBooks()
        {
            // ...
        }   
    };
     
    /** This is the entry point of the program. */
    int main(int argc, char* argv[])
    {
        cout << "----------------\n";;
     
        Book book_1("Introduction to Algorithms",
                    "Th. Cormen, Ch. Leiserson, R. Rivest", 
                    "0262531968");
     
        Book book_2("The C++ Programming Language",
                    "Bjarne Stroustrup", 
                    "0201700735");
     
        Book book_3("Grundkurs Informatik",
                    "H. Ernst", 
                    "3528257172");
     
        Student student;
        student.addBook(book_1);
        student.addBook(book_2);
        student.addBook(book_3);
        student.printBooks();
        
        cout << "----------------\n";;
        
        student.removeBook(book_2);
        student.printBooks();
        
        cout << "----------------\n";;
     
        return 0;
    }

    Dabei sollten Sie bitte folgendermaßen vorgehen:

    a) Fügen Sie zur Klasse Book Funktionen für das Setzen und Lesen der Attribute hinzu, also:
    string getTitle(), string getAuthor(), string getISBN(),
    void setTitle(string title), void setAuthor(string author),
    void setISBN(string isbn)

    b) Vervollständigen Sie den Konstruktor von Book, so dass eine korrekte Initialisierung durchgeführt wird, d.h. dass die Werte der übergebenen Parameter an die Attribute der Instanzen weitergegeben werden.


    c) Vervollständigen Sie den Konstruktor und Destruktor von Student. Im Konstruktor sollen alle Elemente des Arrays m_book auf NULL gesetzt werden, um zu verdeutlichen, dass diese Elemente noch nicht initialisiert sind. Im Destruktor sollen alle vorhandenen, initialisierten Elemente des Arrays mit delete gelöscht werden.

    d) Implementieren Sie die beiden Funktionen addBook(...) und removeBook(...), welche das Hinzufügen (Ausleihen) und Entfernen (Zurückgeben) von Büchern ermöglichen sollen. Dabei soll ein Buch an der ersten verfügbaren Stelle im Array (also das erste nicht-initialisierte Element – gleich NULL) mit Hilfe eines new-Aufrufs hinzugefügt werden. Das Entfernen eines Buches sollte mit Hilfe eines delete-Aufrufs und durch Setzen des entsprechenden Array-Elementes auf NULL realisiert werden. Um das zu löschende Buch im Array zu finden, können Sie z.B. einen Vergleich der ISBN-Nummern durchführen. Benutzen Sie für den Zugriff auf ein Attribut eines eine der in a) hinzugefügten get-Funktionen.

    e) Implementieren Sie die Funktion printBooks(), welche eine Liste aller Array-Elemente ungleich NULL, also aller ausgeliehenen Bücher, ausgeben soll.
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi wieder

    Zu a)
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    
    string getTitle()
    {
        return m_title;
    }
    void setTitle(string newTitle)
    {
        m_title = newTitle;
    }
    Das selbe für Author und ISBN.

    Ist doch bis jetzt nicht schwer, oder?
    Verständnisfragen? Andere Fragen?
    ...?
    kaddi1987 bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. Übungsaufgabe
    Von lyon64 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 01.11.10, 17:05
  2. Hilfe zu einer Abschlussfeier
    Von AKrebs70 im Forum Creative Lounge
    Antworten: 1
    Letzter Beitrag: 25.08.09, 13:35
  3. simple Übungsaufgabe
    Von heinz0001 im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 13.08.08, 09:02
  4. Hilfe zu einer Spiegelung
    Von Fanati im Forum Photoshop
    Antworten: 17
    Letzter Beitrag: 08.04.04, 16:11
  5. Hilfe bei einer HP !
    Von philargon im Forum PHP
    Antworten: 1
    Letzter Beitrag: 12.09.02, 17:11