Array
-
Dumme Frage!
Wie soll das ungefähr ausschauen?Komm jetzt nicht drauf!
-
Hallo
Nydro schrieb:
Dumme Frage!
Wie soll das ungefähr ausschauen?Komm jetzt nicht drauf!
Was meinst du? Du schreibst eine Klasse mit den Namen Person und gibst diese alle Variabeln und Methoden die du brauchst (Name, Geburtstag, Anschrift, Telefon,...) und dann legst du ein array mit mehreren Personen an.
chrische
-
Nydro schrieb:
Dumme Frage!
Wie soll das ungefähr ausschauen?Komm jetzt nicht drauf!
du hast deine klasse person:
class person { private: string name; string vorname; int geburtsdatum; public: person (string name, string vorname, int geburtsadatum); ~person(); }; person::person(string n, string v, int g) { n=name; v=vorname; g=geburtsdatum; }und dann machst du ein array davon:
person array[100];oder eben ueber std::vector<person> oder aehnliches...
eine klasse ist eine einheit. eine person ist ein abgeschlossenes etwas. ob es jetzt 100 oder eine million personen gibt ist der person egal. im prinzip kennt eine person doch sowieso keine anderen personen. eine person ist also auch super gluecklich wenn sie ganz alleine sit.
das konzept dass man nun mehrere personen haben kann ist etwas dass die person nichts angeht. hierfuehr brauchen wir "controller" die feststellen "aha, es gibt mehrere personen, um genauzusein gibt es 100. ich will alle personen kennen".
dann haben wir mit diesem "controller" eine komplett neue einheit, die im prinzip groesstenteils unabhaengig von den einzelnen personen funktioniert - es findet zumindest keine kommunikation zwischen dem controller und den personen statt:
person controller[100];
klingt jetzt etwas hochtrabend ein array "controller" zu nennen, aber du solltest diesen gedankengang verstehen lernen, diese trennung der einzelnen einheiten und wie sie mit einander interagieren...
-
Meint ihr so?
class person { private: string name; string vorname; int geburtsdatum; public: person (string name, string vorname, int geburtsadatum); ~person(); }; person::person(string n, string v, int g) { n=name; v=vorname; g=geburtsdatum; } int main () { person personen [100]Ich bekomme da aber immer eine Fehlermeldung!
Cannot find default constructor ti initialize array element of type person !!!!Gibts da irgendwo ein Programm als Beispiel?
Irgendwie blicke ich nicht mehr durch!
-
Hallo
Wenn du ein array erstellen willst, brauchst du auch einen Standardc'tor. Also schreibe noch einen, der Parameter erwartet. Das nennt man dann überladen.
chrische
-
Okay Danke!
Bin jetzt schon weiter gekommen!
Aber wie mache ich das jetzt mit dem Zeiger? Damit ich die Daten ins Array schreiben kann?
Wo schreibe ich das jetzt hin?
int wert[MAX]; for(i=0; i<MAX; i++) { wert[i] = 0; }Bekomme jetzt die Fehlermeldung "Structure required on left side of. or. *"
Danke schonmal im voraus!
-
Hallo
Kannst du mal dazu sagen, wo du die Fehlermeldung bekommst und außerdem ist in deinem Abschnitt i nicht definiert (deklariert - ich verwechsele es immer)
for(unsigned int i=0; i< MAX; ++i)wäre besser.
chrische
-
Nydro schrieb:
int wert[ MAX ]; for( unsigned int i = 0; i < MAX; i++ ) { wert[ i ] = 0; }Bekomme jetzt die Fehlermeldung: "Structure required on left side of . or *"
Entweder hab' ich ein Problem mit meinen Augen, oder in deinem Code ist wirklich weder ein '.' oder '*'...
Greetz, Swordfish
-
Werde das Prog mal ausbessern!
-
mitarbeiter *testmitarbeiter = new mitarbeiter[ 500 ];Du legst hier ein Array von mitarbeiter an. Die *testmitarbeiter bekommt die Adresse des ersten neu erstellten mitarbeiters.
Ein index beim zugriff auf testmitarbeiter wäre angebracht, denn wie soll dein Compiler wissem, welchen der 500 mitarbeiter du meinst? Also:
testmitarbeiter[ irgendein_index ].name_eingabe(na); testmitarbeiter[ irgendein_index ].vorname_eingabe(); testmitarbeiter[ irgendein_index ].urlaubs_anspruch(); testmitarbeiter[ irgendein_index ].resturlaub_berechnung();achja, lösch bitte deine testmitarbeiter, wenn du sie nicht mehr benötigst:
delete [] testmitarbeiter;Greetz, Swordfish
-
#include <string.h>auch daran wirst du wenig freude haben, wenn du die std::string benutzen willst. der notwendige header dafür ist
#include <string>achtung, verwechslungsgefahr: <string> ist nicht das 'moderne' gegenstück zu string.h, welches in C die funktionen für C-style strings enthält; dafür gibt es den header <cstring>
-
Frage!
Wie Liste ich aller Personen auf?personen[i].ausgabe_daten();Es sind z.B. 5 Personen gespeicher!
Und ich mmöchte, dass alle ausgegeben werden!
Geht das irgendwie mit i--??
Danke!
-
Hallo
Benutz doch einfach eine Schleife:
for(unsingned int i=0; i<5; ++i) personen[i].ausgabe_daten();chrische
-
geht das nicht anders?
ich soll daten bis 500 anlegen können!
Aber er soll mir nur die ausgeben, die auch vorhanden sind!z.B. mein i = 100 Einträge! Jetzt soll er mir die 100 ausgeben und nicht bis 500, da sie noch leer sind!
-
Hier mein Beispiel!
switch(eingabe) { case 1: { i++; personen[i].eingabe_daten(); break; } case 3: { cout<<"Bitte geben Sie den Index des Mitarbeiters ein!"<<endl; cin>>index; personen[index].ausgabe_daten(); system("Pause"); break; } case 4: { { personen[i].ausgabe_daten(); } break; }
-
Poste mal den komletten Sourcecode!
Greetz, Swordfish
-
Benutz doch einfach eine vector, dann haste alle deine Probleme gelöst.
-
Leider kenne ich mich noch nicht so gut aus!
Hier mein Prog!
Die Auflistung aller Mitarbeiter funktioniert immer noch nicht!

Könntet ihr mir da mal weiterhelfen?
Wie mache ich das mit dem Datum?
Aufgabe:
Jeder Mitarbeiter hat pro Jahr 30 Urlaubstage. Mitarbeiter, die zum 01.01, des laufenden Kalenderjahrs das 50 Lebensjahr vollendet haben, erhalten 32 Tage.Man kann es als struct machen, aber da kenn ich mich noch nicht so gut aus!
Und wie lösche ich einen Mitarbeiter?
delete Mitarbeiter []; ???
Danke!
-
wie ist denn Datum definiert?
-
Ganz normal z.B. 25.06.2006 !!