Hilfe bei einer Übungsaufgabe

kaddi1987

Grünschnabel
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
----------------

C++:
#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.
 
Hi wieder :)

Zu a)
C++:
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?
...?
 
Zurück