<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Personendatenbank]]></title><description><![CDATA[<p>Ich bin grade dabei eine (sehr einfache) Personendatenbank zu schreiben. Diese sieht bisher wie folgt aus:</p>
<p>class Person<br />
{public:<br />
Person(char*n,char*m, int p): art(p) {strncpy(name,n,39); strncpy(datum,m,30);} //Konstruktor<br />
~Person() {} //Destruktor<br />
void zeigePerson();<br />
private:<br />
char name[40];<br />
char datum[30];<br />
int art;<br />
};</p>
<p>void Person::zeigePerson()<br />
{<br />
cout &lt;&lt; &quot;\nName: &quot; &lt;&lt; name<br />
&lt;&lt; &quot;\nGeburtsdatum: &quot; &lt;&lt; datum<br />
&lt;&lt; &quot;\nTyp(0=Student,1=Mitarbeiter):&quot; &lt;&lt; art;<br />
}</p>
<p>class Student: public Person<br />
{private:<br />
int matnr;<br />
public:<br />
Student(char*n,char*m,int p, int a)<br />
:Person(n,m,p),matnr(a) {}; //Konstruktor<br />
~Student() {} //Destruktor<br />
void zeigeStudent();<br />
};</p>
<p>void Student::zeigeStudent()<br />
{<br />
Person::zeigePerson();<br />
cout &lt;&lt; &quot;\nMatrikelnummer:&quot; &lt;&lt; matnr;<br />
}</p>
<p>class Mitarbeiter: public Person<br />
{private:<br />
int persnr;<br />
public:<br />
Mitarbeiter(char*n,char*m,int p, int b)<br />
:Person(n,m,p),persnr(b) {}; //Konstruktor<br />
~Mitarbeiter() {};<br />
void zeigeMitarbeiter();<br />
};</p>
<p>void Mitarbeiter::zeigeMitarbeiter()<br />
{<br />
Person::zeigePerson();<br />
cout &lt;&lt; &quot;\nPersonalnummer:&quot; &lt;&lt; persnr;<br />
}</p>
<p>wobei int p (0 oder 1) für Student oder Mitarbeiter steht.</p>
<p>Nun möchte ich die Personen,Studenten und Mitarbeiter in Vektoren speichern, weiß jedoch nicht wie ich dies machen soll/kann. Desweiteren möchte ich Methoden schreiben, welche Filterungen vornehmen, z.B. Methoden, welche alle Studenten, oder alle Mitarbeiter ausgeben, auch hier harpert es. Und dann möchte ich noch Operatoren einfügen &gt;,&lt;,==, ebenfalls für alle drei Klassen, mit welchen ich Geburtsdatum bzw Matrikelnummer/Personalnummer vergleiche. Wenn mir irgendjemand in einem Punkt davon helfen könnte, wäre ich sehr dankebar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187583/personendatenbank</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 18:15:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187583.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Jul 2007 13:18:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Personendatenbank on Sat, 21 Jul 2007 13:18:41 GMT]]></title><description><![CDATA[<p>Ich bin grade dabei eine (sehr einfache) Personendatenbank zu schreiben. Diese sieht bisher wie folgt aus:</p>
<p>class Person<br />
{public:<br />
Person(char*n,char*m, int p): art(p) {strncpy(name,n,39); strncpy(datum,m,30);} //Konstruktor<br />
~Person() {} //Destruktor<br />
void zeigePerson();<br />
private:<br />
char name[40];<br />
char datum[30];<br />
int art;<br />
};</p>
<p>void Person::zeigePerson()<br />
{<br />
cout &lt;&lt; &quot;\nName: &quot; &lt;&lt; name<br />
&lt;&lt; &quot;\nGeburtsdatum: &quot; &lt;&lt; datum<br />
&lt;&lt; &quot;\nTyp(0=Student,1=Mitarbeiter):&quot; &lt;&lt; art;<br />
}</p>
<p>class Student: public Person<br />
{private:<br />
int matnr;<br />
public:<br />
Student(char*n,char*m,int p, int a)<br />
:Person(n,m,p),matnr(a) {}; //Konstruktor<br />
~Student() {} //Destruktor<br />
void zeigeStudent();<br />
};</p>
<p>void Student::zeigeStudent()<br />
{<br />
Person::zeigePerson();<br />
cout &lt;&lt; &quot;\nMatrikelnummer:&quot; &lt;&lt; matnr;<br />
}</p>
<p>class Mitarbeiter: public Person<br />
{private:<br />
int persnr;<br />
public:<br />
Mitarbeiter(char*n,char*m,int p, int b)<br />
:Person(n,m,p),persnr(b) {}; //Konstruktor<br />
~Mitarbeiter() {};<br />
void zeigeMitarbeiter();<br />
};</p>
<p>void Mitarbeiter::zeigeMitarbeiter()<br />
{<br />
Person::zeigePerson();<br />
cout &lt;&lt; &quot;\nPersonalnummer:&quot; &lt;&lt; persnr;<br />
}</p>
<p>wobei int p (0 oder 1) für Student oder Mitarbeiter steht.</p>
<p>Nun möchte ich die Personen,Studenten und Mitarbeiter in Vektoren speichern, weiß jedoch nicht wie ich dies machen soll/kann. Desweiteren möchte ich Methoden schreiben, welche Filterungen vornehmen, z.B. Methoden, welche alle Studenten, oder alle Mitarbeiter ausgeben, auch hier harpert es. Und dann möchte ich noch Operatoren einfügen &gt;,&lt;,==, ebenfalls für alle drei Klassen, mit welchen ich Geburtsdatum bzw Matrikelnummer/Personalnummer vergleiche. Wenn mir irgendjemand in einem Punkt davon helfen könnte, wäre ich sehr dankebar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329746</guid><dc:creator><![CDATA[Th3-DuKe]]></dc:creator><pubDate>Sat, 21 Jul 2007 13:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to Personendatenbank on Sat, 21 Jul 2007 14:22:15 GMT]]></title><description><![CDATA[<p>Nja ... am einfachsten legst du ein Interface an und nimmst das dann als Ausgangstype bei der std::vector Deklarierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329806</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 21 Jul 2007 14:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to Personendatenbank on Sat, 21 Jul 2007 14:53:51 GMT]]></title><description><![CDATA[<p>Th3-DuKe schrieb:</p>
<blockquote>
<p>Person(char*n,char*m, int p): art(p) {strncpy(name,n,39); strncpy(datum,m,30);} //Konstruktor<br />
~Person() {} //Destruktor</p>
</blockquote>
<p>Warum schreibst du schwachsinnige Kommentare für Konstruktor und Destruktor, aber über die Parameter n, m und p verlierst du kein Wort? In zwei Wochen wirst du immer noch wissen dass das Konstruktor und Destruktor sind, aber n, m und p sind so sinnlos benannt, dass du keine Ahnung haben wirst was die bedeuten sollen.</p>
<blockquote>
<p>char name[40];<br />
char datum[30];</p>
</blockquote>
<p>Wenn du schon in C++ programmierst, verwende std::string statt antiquierter C-Relikte wie char[] und strncpy.</p>
<blockquote>
<p>int art;</p>
</blockquote>
<blockquote>
<p>wobei int p (0 oder 1) für Student oder Mitarbeiter steht.</p>
</blockquote>
<pre><code>enum Klassifizierung
{
    STUDENT,
    MITARBEITER
};
</code></pre>
<p>Verwende diesen Typ statt int und du musst nichts mehr erklären und dir keine kontextfreien Zahlen mehr merken.</p>
<blockquote>
<p>Nun möchte ich die Personen,Studenten und Mitarbeiter in Vektoren speichern, weiß jedoch nicht wie ich dies machen soll/kann.</p>
</blockquote>
<p>Im wesentlichen so:</p>
<pre><code class="language-cpp">std::vector&lt;Person&gt; personenVector;
personenVector.push_back(einePerson);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1329825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329825</guid><dc:creator><![CDATA[*******]]></dc:creator><pubDate>Sat, 21 Jul 2007 14:53:51 GMT</pubDate></item><item><title><![CDATA[Reply to Personendatenbank on Sat, 21 Jul 2007 16:10:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class IPerson
{
public:
	IPerson(const type&amp; type) : m_type(type) {}
	virtual IPerson() = 0;

public:
	type get_type() const { return m_type; }

public:
	virtual void show() { std::cout &lt;&lt; m_name &lt;&lt; &quot;\n&quot; &lt;&lt; &quot;Geburtsdatum: &quot; &lt;&lt; m_bday &lt;&lt; &quot;\nType: &quot; &lt;&lt; m_type &lt;&lt; std::endl; }

protected:
	std::string		m_name;
	std::time_t		m_bday;

	enum type
	{
		T_STUDENT,
		T_EMPLOYEE,
		T_UNKNOWN
	} m_type;
};
</code></pre>
<p>sowas z.B. als Ausgangspunkt ...</p>
<pre><code class="language-cpp">std::vector&lt;IPerson*&gt; m_database;
</code></pre>
<p>...</p>
<pre><code class="language-cpp">class Student : public IPerson
{
    Student() : IPerson(T_STUDENT) {}
};

Student obj_one;
m_database.push_back(&amp;obj_one);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1329875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329875</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 21 Jul 2007 16:10:37 GMT</pubDate></item><item><title><![CDATA[Reply to Personendatenbank on Sat, 21 Jul 2007 16:36:34 GMT]]></title><description><![CDATA[<p>Hmm mal schaun ob ich das hinbekomme. Bin halt nicht grad der Programiercrack. Aber ich versuch mich mal daran. Danke schonmal dafür. Und falls ihr noch weitere Idden habt, immer her damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329894</guid><dc:creator><![CDATA[Th3-DuKe]]></dc:creator><pubDate>Sat, 21 Jul 2007 16:36:34 GMT</pubDate></item></channel></rss>