Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class Medium {
- private:
- int id;
- char typ;
- int anzahl;
- int ausgeliehen;
- protected:
- string titel;
- public:
- Medium(int i,string ti, int an,char ty) : id(i),anzahl(an), ausgeliehen(0), typ(ty), titel(ti) {}
- virtual ~Medium() {}
- string getSignatur(){
- return to_string(id)+ "-"+typ;
- }
- int getAnzahl() {
- return anzahl;
- }
- int getAusgeliehen() {
- return ausgeliehen;
- }
- virtual void printInfo(){
- cout << getSignatur();
- cout << titel;
- cout << getAnzahl();
- cout << getAusgeliehen();
- }
- void ausleihen() {
- cout << getSignatur();
- if(ausgeliehen == anzahl){
- cout << " kann nicht ausgeliehen werden ";
- else {
- cout << " ausgeliehen "
- ausgeliehen++;
- }
- }
- };
- class Buch : public Medium {
- private:
- int seiten;
- public:
- Buch(int i, string ti, int a, int s) : Medium(i,ti,a,'B'), seiten(s){}
- ~Buch(){}
- virtual void printInfo(){
- cout << getSignatur();
- cout << titel;
- cout << seiten;
- cout << getAnzahl();
- cout << getAusgeliehen();
- }
- };
- class Zeitschrift : public Medium {
- private:
- int seiten;
- public:
- Zeitschrift(int i, string ti, int a, int s) : Medium(i,ti,a,'Z'), seiten(s){}
- ~Zeitschrift(){}
- virtual void printInfo(){
- cout << getSignatur();
- cout << titel;
- cout << seiten;
- cout << getAnzahl();
- cout << getAusgeliehen();
- }
- };
- class DVD : public Medium {
- private:
- int dauer;
- public:
- DVD(int i, string ti, int a, int da) : Medium(i,ti,a,'D'), dauer(d){}
- ~DVD(){}
- virtual void printInfo(){
- cout << getSignatur();
- cout << titel;
- cout << dauer;
- cout << getAnzahl();
- cout << getAusgeliehen();
- }
- };
- int main() {
- const int anzahlBuecher = 20;
- const int anzahlDVDs = 12;
- const int anzahlZeitschriften = 10;
- const int anzahlGesamt = anzahlBuecher + anzahlDVDs + anzahlZeitschriften;
- int id = 0;
- Medium *bibliothek[anzahlGesamt];
- string buchTitel[anzahlBuecher]={"Pipi Langsocke", "Didi Lügenprinz",
- "Das Tennis-Lexikon", "Mathe fuer Doofis",
- "Europa Atlas", "Die Schokoladen-Mafia",
- "Drei Hasen im Dom", "Programmieren ist toll",
- "Ein Student auf Reisen", "English for Experts",
- "Oma Renates Kochbuch", "Baby Sprache verstehen",
- "Die besten Paulaner Spruecke", "Witzesammlung",
- "Unterschied zwischen Schule und Uni",
- "Wie werde ich erwachsen in 10 Tagen",
- "Selbststaendig lernen", "Ueber den Wolken",
- "Traumjobs 2.0", "Car Tuning 2005"};
- int buchAnzahl[anzahlBuecher]={5, 10, 2, 100, 7, 8, 23, 98, 21, 64, 40, 51,
- 27, 32, 32, 39, 56, 24, 97, 6};
- int buchSeiten[anzahlBuecher]={523, 142, 256, 312, 71, 186, 365, 482, 69, 148, 401, 521,
- 207, 432, 132, 739, 56, 94, 497, 641};
- string zeitschriftTitel[anzahlZeitschriften]={
- "Bernadette", "Kochanfaenger",
- "Schach Aktuell", "Sport von Gestern",
- "Teenie Flash", "Maennersachen",
- "Computerfilm", "Kino-Parade",
- "Bunter Garten", "Nah-Reisen"};
- int zeitschriftAnzahl[anzahlZeitschriften]={
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
- int zeitschriftSeiten[anzahlZeitschriften]={
- 10, 22, 16, 8, 20, 40, 12, 16, 12, 24};
- string dvdTitel[anzahlDVDs]={"Justus auf Weltreise", "Das Lachen der Schafe",
- "Pilates für Studenten", "Herr der Halsketten",
- "Eine Ostergeschichte", "Michel und Tine",
- "Fast and Slow", "American Clown Story",
- "Lovely Dancing", "Der Musikanten-Hof 1993",
- "Die besten Musicals", "Lagerfeuer"};
- int dvdAnzahl[anzahlDVDs]={1, 1, 5, 6, 3, 2, 9, 2, 12, 1, 1, 4};
- int dvdDauer[anzahlDVDs]={120, 109, 105, 120, 203, 126, 98, 162, 143, 141, 108, 94};
- // Bibliothek erstellen
- for (int i = 0; i < anzahlBuecher; ++i) {
- bibliothek[i] = new Buch(id++, buchTitel[i], buchAnzahl[i], buchSeiten[i]);
- cout << bibliothek[i]->getSignatur() << " zur Bibliothek hinzugefuegt." << endl;
- }
- for (int i = 0; i < anzahlZeitschriften; ++i) {
- bibliothek[anzahlBuecher + i] = new Zeitschrift(id++, zeitschriftTitel[i], zeitschriftAnzahl[i], zeitschriftSeiten[i]);
- cout << bibliothek[anzahlBuecher + i]->getSignatur() << " zur Bibliothek hinzugefuegt." << endl;
- }
- for (int i = 0; i < anzahlDVDs; ++i) {
- bibliothek[anzahlBuecher + anzahlZeitschriften + i] = new DVD(id++, dvdTitel[i], dvdAnzahl[i], dvdDauer[i]);
- cout << bibliothek[anzahlBuecher + anzahlZeitschriften + i]->getSignatur() << " zur Bibliothek hinzugefuegt." << endl;
- }
- // ausleihen
- bibliothek[2]->ausleihen();
- bibliothek[2]->ausleihen();
- bibliothek[2]->ausleihen();
- bibliothek[2]->ausleihen();
- bibliothek[12]->ausleihen();
- bibliothek[17]->ausleihen();
- bibliothek[23]->ausleihen();
- bibliothek[35]->ausleihen();
- // Informationen ausgeben
- bibliothek[2]->printInfo();
- bibliothek[22]->printInfo();
- bibliothek[35]->printInfo();
- // Hier Lösung für Aufgabe b) einfügen
- // nach new immer aufraeumen!
- for (int i = 0; i < anzahlGesamt; ++i)
- delete bibliothek[i];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement