000
12.01.2008, 15:45 Uhr
~Forelle
Gast
|
Hallo ich habe vorhin folgende aufgabenstellung bekommen. erstmal zu mir bin 19 und gehe auf eine berufsschule und mache dort meine ausblidung zum informationstechnischen assistent.
aufgabenstellung :
Es soll ein Programm z.B. Klasse "Adressen" erzeugt weden, welches aus einer Header Datei mit den entsprechenden Datenelementen und Methoden besteht ("adressen.h"). Aus einer Quelldatei z.B. adressen.cpp, die die Methoden, Funktionen und Konstruktoren/Destruktor... erzeugt. Eine Quelldatei z.B. adressen_main.cpp, welche das Hauptprogramm enthält.
Eigenschaften: Adresse bestehend aus Stadt char-Vektor Strasse char-Vektor Telefonnummer char-Vektor
Methoden: Adresse(const char *stadt, const char *strasse, const char *tel); ~Adresse(); void setAdr(const char *stadt, const char *strasse, const char *tel); void putAdr();
Default-Konstruktor: Der für die ersten zwei Strings xxxxx erzeugr und für den letzten String oooooo.
Meldung des Konstruktors: Es wird ein Objekt fuer die Stadt ..... erzeugt. Dies ist das ... -te Objekt.
Meldung des Destruktors: Es wurde der Destruktor fuer die Stadt... aufgerufen. Es verbleiben noch ... Objekte, Nach der formatierten Bildschirmausgabe mit putAdr() wird die Programmausführung angehalten und mit der Return-Taste wieder freigegeben.
Zu Testzwecken sollen 4 (vier) objekte vom Typ Adresse erzeugt werden. Dabei könnten Sie folgende Unterscheidungen mir einbauen: - globale Objekte - lokale Objekte - lokale Objekte in eine Funktion, die von main aufgerufen wird ______________________________________________________________ hab nun schon ein bisschen programmiert aber bekomme probleme bei dem konstruktor / destruktor hab eine dreiteilung programmiert bis jetzt :
main.cpp :
C++: |
#include "adressen.h"
int main() {
string w="ja";
do { cout <<"---- Objekt 1 ----" <<endl; cout <<endl; cout <<endl;
adressen qwe; cout <<"stadt: "; qwe.setstadt(); cout << "" <<endl;
cout <<"PLZ: "; qwe.setplz(); cout << "" <<endl;
cout <<"Strasse: "; qwe.setstrasse(); cout << "" <<endl;
cout <<"telefon: "; qwe.settelefon(); cout << "" <<endl;
cout << "Stadt: "<< qwe.getstadt() << endl; cout << "Postleitzahl: "<< qwe.getplz() << endl; cout << "Strasse: "<< qwe.getstrasse() << endl; cout << "Telefon: "<< qwe.gettelefon() << endl;
cout <<endl; cout <<endl;
cout <<"---- Objekt 2 ----" <<endl; cout <<endl; cout <<endl;
adressen zwei; cout <<"stadt: "; zwei.setstadt(); cout << "" <<endl;
cout <<"PLZ: "; zwei.setplz(); cout << "" <<endl;
cout <<"Strasse: "; zwei.setstrasse(); cout << "" <<endl;
cout <<"telefon: "; zwei.settelefon(); cout << "" <<endl;
cout << "Stadt: "<< zwei.getstadt() << endl; cout << "Postleitzahl: "<< zwei.getplz() << endl; cout << "Strasse: "<< zwei.getstrasse() << endl; cout << "Telefon: "<< zwei.gettelefon() << endl;
cout <<endl; cout <<endl;
cout <<"---- Objekt 3 ----" <<endl; cout <<endl; cout <<endl;
adressen drei; cout <<"stadt: "; drei.setstadt(); cout << "" <<endl;
cout <<"PLZ: "; drei.setplz(); cout << "" <<endl;
cout <<"Strasse: "; drei.setstrasse(); cout << "" <<endl;
cout <<"telefon: "; drei.settelefon(); cout << "" <<endl;
cout << "Stadt: "<< drei.getstadt() << endl; cout << "Postleitzahl: "<< drei.getplz() << endl; cout << "Strasse: "<< drei.getstrasse() << endl; cout << "Telefon: "<< drei.gettelefon() << endl;
cout <<endl; cout <<endl;
cout << "Programm wiederholen ?(ja/Ja fuer wiederholung) \n"; cin >> w; } while (w=="ja"||w=="Ja"); return 0; }
|
adressen.h :
C++: |
#include <iostream> #include <string> using namespace std;
class adressen { public:
adressen(const char *stadt, const char *strasse, const char *tel); adressen(); ~adressen(){ anzahl--; }
static int anzahl;
string gettelefon(); void settelefon();
string getstadt(); void setstadt();
string getplz(); void setplz();
string getstrasse(); void setstrasse();
private: string stadt; string telefon; string strasse; string plz;
};
|
adressen.cpp
C++: |
#include "adressen.h"
adressen::adressen(const char *stadt, const char *strasse, const char *tel) : stadt(stadt); strasse(strasse); tel(tel); { ++anzahl; // ++x sollte man x++ vorziehen wenn kein Mißverständis daraus // resultieren kann, auch wenn das hier egal ist da es ein integraler // datentyp ist, kann es spätestens bei Objekten durchaus messbare // Unterschiede geben (++x arbeitet ohne Kopie, x++ mit einer temporären // Kopie). } // ...
string adressen::getstadt() { return stadt; }
void adressen::setstadt() { cin >> stadt; }
string adressen::getplz() { return plz; } void adressen::setplz() { cin >> plz; }
string adressen::getstrasse() { return strasse; } void adressen::setstrasse() { cin >> strasse; }
string adressen::gettelefon() { return telefon; }
void adressen::settelefon() { cin >> telefon; }
|
|