Klassen, Konstruktor und Parameterübergabe

carlos1976

Grünschnabel
Hallo zusammen,

bei folgendem Code-Gerüst, hab ich als Anfänger in C++ und OOP, große Probleme, es zu Vervollständigen.
Wie bekomme ich denn die Get und Setfunktionen hin?
:confused:

Aufgabenstellung (s.u.)

Code:
#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)
	{
		void setTitle(string title);
		void setAuthor(string author);
    void setISBN(string isbn);
	string getTitle();
	string getAuthor(); 
	string getISBN();
	}

 //void setTitle(string title){
 //this.m_titel->titel;
 }

};

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;
}

Aufgabenstellung:

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
----------------
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.
 
Erstmal zu deinen get/set Methoden. Diese sehen normalerweise wie folgt aus.

Code:
//set-Methode
void setWert(int _wert) {
wert = _wert;
}
Hier ist wert die Variable aus der Klasse und _wert die lokale übergebene Variable an die Klasse. Nun zur get methode:

Code:
int getWert() {
return wert;
}

Musst du natürlich auf deine Bedürfnisse anpassen.

Dessweiteren bitte ich dich um genauere Fragen, weil ich möchte nicht die gesamte Aufgabe für dich lösen. Hoffe du verstehst das.

Gruß Jennesta
 
Zurück