mostwanted90
Grünschnabel

Ich habe mal wieder ein c++ Problem.
Die Aufgabenstellung:
In einem Verwaltungsprogramm für eine Firma soll es folgende Personengruppen geben.
-Person: Name,Vorname
-Mitarbeiter: Name,Vorname,Einstellungsjahr, Geburtsjahr,Gehalt,Abteilung
-Chef: Firma, Name,Vorname,Einstellungsjahr,Geburtsjahr, Gehalt, Abteilung
-Kunde: Name,Vorname, Telefonnummer
1, Erstelle für alle Personengruppen eine eigene Klasse
a) mit passenden Konstruktoren und Destruktoren
b) mit einer passenden Ausgaberotine
2, Befülle ein Zeigerarry mit unterschiedlichen Personentypen (Konstruktoren mit Parametern verwenden) und erstelle eine Ausgaberoutine zur Ausgabe der Personen
Hier mein Code für Aufgabe 1 und 2 :
Code:
#include "stdafx.h"
#include <conio.h>
#include <iostream.h>
#include <string.h>
class CPerson
{
public:
CPerson();
CPerson(const char* pName,const char* pVorname);
virtual void Ausgabe();
protected:
char Name[256];
char Vorname[256];
};
CPerson::CPerson()
{
}
CPerson::CPerson(const char* pName,const char* pVorname)
{
strcpy(Vorname, pVorname);
strcpy(Name, pName);
}
void CPerson::Ausgabe()
{
cout <<"Name: " <<Name <<endl <<"Vorname: " <<Vorname <<endl;
}
class CMitarbeiter : public CPerson
{
public:
CMitarbeiter();
CMitarbeiter(const char* pName,const char* pVorname, int pEinstellungsjahr,int pGeburtsjahr, int pGehalt,const char* pAbteilung);
void Ausgabe();
protected:
int Einstellungsjahr;
int Geburtsjahr;
int Gehalt;
char Abteilung[256];
};
CMitarbeiter::CMitarbeiter()
: CPerson(), Einstellungsjahr(2000),Geburtsjahr(00),Gehalt(0)
{
strcpy(Abteilung,"?");
}
CMitarbeiter::CMitarbeiter(const char* pName, const char* pVorname, int pEinstellungsjahr,int pGeburtsjahr, int pGehalt,const char* pAbteilung)
:CPerson(pName,pVorname), Einstellungsjahr(pEinstellungsjahr),Geburtsjahr(pGeburtsjahr),Gehalt(pGehalt)
{
strcpy(Abteilung,pAbteilung);
}
void CMitarbeiter::Ausgabe()
{
CPerson::Ausgabe();
cout<<Abteilung <<endl;
cout<<Einstellungsjahr <<endl;
cout<<Geburtsjahr <<endl;
cout<<Gehalt <<endl;
}
class CChef : public CMitarbeiter
{
public:
CChef();
CChef(const char* pFirma,const char* pName,const char* pVorname, int pEinstellungsjahr,int pGeburtsjahr, int pGehalt,const char* Abteilung);
void Ausgabe();
protected:
char Firma[256];
};
CChef::CChef()
: CMitarbeiter()
{
strcpy(Firma,"?");
}
CChef::CChef(const char* pFirma,const char* pName, const char* pVorname, int pEinstellungsjahr,int pGeburtsjahr, int pGehalt, const char* pAbteilung)
:CMitarbeiter(pName,pVorname,pEinstellungsjahr,pGeburtsjahr,pGehalt,pAbteilung)
{
strcpy(Firma,pFirma);
}
void CChef::Ausgabe()
{
cout<<Firma <<endl;
CMitarbeiter::Ausgabe();
}
class CKunde : public CPerson
{
public:
CKunde();
CKunde(const char* pName,const char* pVorname,int pTelefonnummer);
void Ausgabe();
protected:
int Telefonnummer;
};
CKunde::CKunde()
: CPerson(), Telefonnummer(0)
{
}
CKunde::CKunde(const char* pName, const char* pVorname,int pTelefonnummer)
:CPerson(pName,pVorname),Telefonnummer(pTelefonnummer)
{
}
void CKunde::Ausgabe()
{
CPerson::Ausgabe();
cout<<Telefonnummer <<endl;
}
int main()
{
CPerson Person();
CPerson* pPerson[25];
pPerson[0] =new CPerson("Paul1","Franz1");
pPerson[1] =new CPerson("Paul2","Franz2");
pPerson[2] =new CPerson("Paul3","Franz3");
pPerson[3] = new CMitarbeiter("Gustavadadfadfafd1","Hudadgo",19950,19650,7654890,"od");
pPerson[4] = new CMitarbeiter("Gustaadfafv2","Hugdfado",199540,13241960,7321890,"ad");
pPerson[5] = new CMitarbeiter("Gustav3","Hugo",1990,1960,7890,"USS");
pPerson[6] =new CChef("Bla","Franz1","Joseph",1960,1930,865462,"Geschaeftsfuehrung");
pPerson[7] =new CChef("Bla","Franz2","Joseph",1960,1930,865462,"Geschaeftsfuehrung");
pPerson[8] =new CChef("Bla","Franz3","Joseph",1960,1930,865462,"Geschaeftsfuehrung");
pPerson[9] = new CKunde("Hugo", "Erwin", 12345);
pPerson[10]= new CKunde("Froehlich","Klaus",07347);
pPerson[11]= new CKunde("Hans","Ferharf",07547);
for(int x=0;y<=10;y++)
{
pPerson[y]->Ausgabe();
delete pPerson[y];
}
return 0;
}
Bitte nicht sauer sein wenn die Namen mit euren übereinstimmen.
So nun zu Aufgabe 3:
Erstelle ein Programm zuer Erfassung von den verschiedenen Personentypen und verwende Ausgaberotine von Punkt 2 für die erfassten Personen (ein Zeigearray verwenden)
Ich hab mich schon daran versucht aber wenn ich Zahlen für Gehalt etc eingegeben habe wurde bei der Ausgabe nur irgendein Speicherwert (-98032464) ausgegeben.
habt ihr für Aufgabe 3 eine Idee?
Danke schon einmal im Vorraus
mfg Most
ps: Das ist keine Schulaufgabe etc. D.h. ich ihr müsst nicht für mich Hausaufgaben machen :-D
Diese Aufgabe stammt aus einem C++ Skript von einem Kumpel und das hab ich mir einfach einmal ausgeliehen^^