Klausur CPP01 05.09.09 PI

Algorithmus, Baumdurchlauf, Compiler, Interpreter...; Cobol, Pascal, C/C++, Java & Co.
Antworten
Rumtata106
Forums-Profi
Forums-Profi
Beiträge: 162
Registriert: 15.06.08 20:26
Wohnort: Stuhr / Bremen

Ich habe mir mal die Mühe gemacht, die Aufgaben zusammenzuschreiben, die mir noch eingefallen sind.
Sicherlich lässt sich die Klausur dadurch nicht lösen, aber man bekommt nochmal einen schönen Eindruck, was aktuell gefragt wird.

Hilfsmittel waren zwei Zettel an der Klausur mit
  • * vector - Infos,
    * string - Infos und
    *Priorität der Operatoren
Zeit 180 min.

Sieben Detailfragen mit Unterfragen (insg 20 Pkt.)
1.
- Vier-Variablentypen: Wo werden diese verwendet?
- Beispiel einer Klassen-Variablen notieren
... (black-out)
5. int-Array jeweils auf Stack und Heap anlegen.
Warum kann auf beide per arrayName[2] zugegriffen werden?
6. Wann ist ein einfacher Kopierkonstruktor für ein Object (Bsp. Bruch) nicht ausreichend?
7. Drei Vorteile der Objektorientierung


Drei Komplexfragen, davon zwei zu lösen (jeweils 20 Pkt.)
I.)
es ging um die Generierung von TAN's (mit Hilfe von rand()) und deren Überprüfung bei der Eingabe
Gegeben war ein Beispielcode aus einem Programm zum erzeugen von Lotto-Zahlen (wg. rand()))

II.)
Thema:
Anlegen von Familien-Mitgliedern in einem Stammbaum.

Dazu eine Klasse Mitglieder, die die Familien-Mitglieder darstellten mit folgenden Attributen:
  • * name, vorname, gebDatum, sterbeDatum (alle string), ignorieren(bool)( um bei der Ausgabe nicht berücksichtigt zu werden)
    * Konstruktor mit Parametern und einem Default-Parameter
    * operator << zur Ausgabe
    Dazu eine Klasse Stammbaum, die die einzelnen Mitglieder in einem vector<Mitglieder> aufnahm.
    * Methoden: - finde: finden beim name/vorname
    - hinzu: fügt dem vector neues Mitglied hinzu
    * operator << zur Ausgabe aller Mitglieder
Kleine Schmankerl:
  • * wenn ignorieren == true, dann keine Ausgabe des Mitglieds
    * wenn sterbedatum == "", dann Ausgabe "lebt wohl noch"
Ausgabeformat war anhand einer Beispielausgabe zu realisieren.
III.)
Thema:
Abbildung einer Firmenstruktur anhand eines gegebenen UML-Diagramms

Vier Klassen
1. Person:
  • * proteced string name
    * Konstruktor mit Parameter name; außerdem Inkrement von anzahl
    * method int getAnzahl();
    * operator <<
    * Klassen-Variable anzahl, um alle Mitarbeiter zu zählen
2. Mitarbeiter: Unterklasse zu Person
  • * Konstruktor mit Parameter name und noch einem Parameter (weiss nicht mehr)
    * operator <<
3. Abteilung
  • * string name
    * Konstruktor mit name
    * vector<Mitarbeiter> personal
    * methoden hinzu(Mitabeiter&), finde(name) & bool istAbteilung(name) (oder so ähnlich)
    * operator <<
4. Firma
  • * string name
    * vector<Abteilung> abteilungen
    * operator <<
Ausgabeformat war anhand einer Beispielausgabe zu realisieren.

Vielleicht hat noch jemand Ergänzungen zu den Detailfragen, da hab' ich einen Kopf wie ein Sieb gehabt. Mit denen kann man ja schon fast die Grundlage für das Bestehen legen...

Gruß,
Rumtata
monday55
Forums-Profi
Forums-Profi
Beiträge: 158
Registriert: 27.06.08 10:08
Wohnort: Berlin
Kontaktdaten:

anbei ein paar Ergänzungen zu den Detailaufgabe, die Komplexaufgaben sind super beschrieben, gutes Gedächnis :-) Hab auch die beiden OOP genommen


Sieben Detailfragen mit Unterfragen (insg 20 Pkt.)
1.
- Vier-Variablentypen: Wo werden diese verwendet?

# lokale Variablen
# globale Variablen
# Membervariablen
# Klassenvariablen
- Beispiel einer Klassen-Variablen notieren
# ich habs so gemacht
class asdf {
public:
static int asdf; // Deklaration
};
int asdf::asdf = 1; //Definition + Initialisierung


2. Was ist der Unterschied/Vorteil bei Aufruf der Ausgabemethode
wenn man statt asdf(foobar), folgendes nutzt:
- asdf(foobar&)
- asdf(const foobar&)

3. Programmieren sie ein Programmfragment
es ist gegeben ein Array int umsatz[100];
- Das den Gesamtumsatz ermittelt
- Das den Mittelumsatz ermittelt, Tage an dehnen der Umsatz = 0 ist sollen nicht berücksichtigt werden

4. Erklären was this und was ist *this


5. int-Array jeweils auf Stack und Heap anlegen.
- Man sollte außerdem Typ und Wert der beiden erklären
Warum kann auf beide per arrayName[2] zugegriffen werden?

6. Wann ist ein einfacher Kopierkonstruktor für ein Object (Bsp. Bruch) nicht ausreichend?

7. Drei Vorteile der Objektorientierung
Antworten