<?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[Programmhilfe]]></title><description><![CDATA[<p>Hier die Aufgabenstellung:</p>
<p>Entwickeln Sie ein C/C++-Programm,<br />
in dem eine Personenklasse gemäß<br />
Klassendiagramm entwickelt wird. Die<br />
Klassendefinition befindet sich in einer<br />
Header-Datei, die Applikation in einer<br />
cpp-Datei. In der cpp-Datei werden<br />
drei Personen instanziiert. Zwei<br />
Personen heiraten. Dies ist aber nur<br />
möglich, diese Personen nicht<br />
verheiratet sind. Der Versuch der<br />
dritten Person m3, eine von zwei<br />
verheiraten Personen zu heiraten,<br />
muss scheitern. Die beiden<br />
verheirateten Personen lassen sich<br />
scheiden, dabei ist unerheblich, wer<br />
die Scheidung wünscht. Danach kann<br />
die dritte Person erfolgreich eine der<br />
ersten beiden Personen heiraten.<br />
Heirat ist nur möglich, wenn die<br />
Partner verschiedengeschlechtlich<br />
sind. Hierzu ist die Klasse um das<br />
Attribut (Objekt-Variable) char<br />
geschlecht zu erweitern.<br />
Weiterhin soll eine statische Klassen-<br />
Variable static int personenZaehler<br />
vorgesehen werden, die neu angelegte<br />
Instanzen hochzaehlt.<br />
Die Instanziierung und Aktivitäten der<br />
Personen sind in einer cpp-Datei<br />
namens appliP.cpp und die<br />
Klassendefinition in einer Datei<br />
namens Person.h unterzubringen.<br />
In der Klassenfunktion vorstellen() wird<br />
der Name der Person unf ggf. der<br />
Name des (Ehe-)Partners angezeigt.<br />
Anmerkung: Aus Gründen der<br />
Einfachheit sind Konstruktoren und<br />
Destruktoren nicht im Diagramm<br />
dargestellt. Der Schwerpunkt der<br />
Aufgabe liegt in der Gestaltung der<br />
Klassenfunktionen heiraten(...) und<br />
scheiden(). Sie sind verantwortlich für<br />
die Einhaltung der o. g. Regeln.<br />
Zerstören Sie bei Programmende alle<br />
Instanzen mit delete.</p>
<p>&quot;Da ich noch nicht so fähig bin bin ich erst bis dahin gekommen:&quot; Würde mich freuen wenn ihr ein paar Ideen habt. Natürlich auch Kritik.</p>
<p>Hier das Programm soweit wie ich bisher gekommen bin:</p>
<p>#include&lt;iostream&gt;<br />
#include&lt;string&gt;</p>
<p>using namespace std;</p>
<p>class CPerson{<br />
string name;<br />
string nachname;<br />
CPerson * partner;<br />
static int z1; //Klassenvariable<br />
int z; //Objektvariable</p>
<p>public:<br />
CPerson(string n,string m){<br />
cout&lt;&lt;&quot;Neue Instanz...&quot;&lt;&lt;endl;<br />
name = n;<br />
nachname = m;<br />
partner = NULL;<br />
z1++; //Klassenvariable<br />
z=z1;<br />
}</p>
<p>void vorstellen(){<br />
cout&lt;&lt;&quot;Hallo ich bin Objekt &quot;&lt;&lt; z &lt;&lt;&quot; &quot;&lt;&lt;name&lt;&lt;nachname;<br />
if(partner !=NULL)<br />
cout&lt;&lt;&quot;, mein Partner ist &quot;<br />
&lt;&lt;partner-&gt;name<br />
&lt;&lt;partner-&gt;nachname<br />
&lt;&lt;endl;</p>
<p>}//vorstellen</p>
<p>void partnern(CPerson &amp;p){<br />
cout&lt;&lt;&quot;\n&quot;;<br />
this-&gt;partner = &amp;p;<br />
partner-&gt;partner = this;</p>
<p>}//partnern</p>
<p>};//CPerson</p>
<p>int CPerson::z1 = 0;</p>
<p>int main(){</p>
<p>CPerson p1(&quot;Ingeborg&quot;,&quot; Von der Knutsen\n&quot;);<br />
p1.vorstellen();</p>
<p>CPerson p2(&quot;Alfred&quot;,&quot; Hitchacker\n&quot;);<br />
p2.vorstellen();</p>
<p>CPerson p3(&quot;Thomas&quot;,&quot; Heck\n&quot;);<br />
p3.vorstellen();</p>
<p>p1.partnern(p2);<br />
p1.vorstellen();<br />
p2.vorstellen();</p>
<p>cout&lt;&lt;endl;<br />
getchar();<br />
return 0;<br />
}//main</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145434/programmhilfe</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 04:16:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145434.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Apr 2006 19:26:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programmhilfe on Thu, 27 Apr 2006 19:26:42 GMT]]></title><description><![CDATA[<p>Hier die Aufgabenstellung:</p>
<p>Entwickeln Sie ein C/C++-Programm,<br />
in dem eine Personenklasse gemäß<br />
Klassendiagramm entwickelt wird. Die<br />
Klassendefinition befindet sich in einer<br />
Header-Datei, die Applikation in einer<br />
cpp-Datei. In der cpp-Datei werden<br />
drei Personen instanziiert. Zwei<br />
Personen heiraten. Dies ist aber nur<br />
möglich, diese Personen nicht<br />
verheiratet sind. Der Versuch der<br />
dritten Person m3, eine von zwei<br />
verheiraten Personen zu heiraten,<br />
muss scheitern. Die beiden<br />
verheirateten Personen lassen sich<br />
scheiden, dabei ist unerheblich, wer<br />
die Scheidung wünscht. Danach kann<br />
die dritte Person erfolgreich eine der<br />
ersten beiden Personen heiraten.<br />
Heirat ist nur möglich, wenn die<br />
Partner verschiedengeschlechtlich<br />
sind. Hierzu ist die Klasse um das<br />
Attribut (Objekt-Variable) char<br />
geschlecht zu erweitern.<br />
Weiterhin soll eine statische Klassen-<br />
Variable static int personenZaehler<br />
vorgesehen werden, die neu angelegte<br />
Instanzen hochzaehlt.<br />
Die Instanziierung und Aktivitäten der<br />
Personen sind in einer cpp-Datei<br />
namens appliP.cpp und die<br />
Klassendefinition in einer Datei<br />
namens Person.h unterzubringen.<br />
In der Klassenfunktion vorstellen() wird<br />
der Name der Person unf ggf. der<br />
Name des (Ehe-)Partners angezeigt.<br />
Anmerkung: Aus Gründen der<br />
Einfachheit sind Konstruktoren und<br />
Destruktoren nicht im Diagramm<br />
dargestellt. Der Schwerpunkt der<br />
Aufgabe liegt in der Gestaltung der<br />
Klassenfunktionen heiraten(...) und<br />
scheiden(). Sie sind verantwortlich für<br />
die Einhaltung der o. g. Regeln.<br />
Zerstören Sie bei Programmende alle<br />
Instanzen mit delete.</p>
<p>&quot;Da ich noch nicht so fähig bin bin ich erst bis dahin gekommen:&quot; Würde mich freuen wenn ihr ein paar Ideen habt. Natürlich auch Kritik.</p>
<p>Hier das Programm soweit wie ich bisher gekommen bin:</p>
<p>#include&lt;iostream&gt;<br />
#include&lt;string&gt;</p>
<p>using namespace std;</p>
<p>class CPerson{<br />
string name;<br />
string nachname;<br />
CPerson * partner;<br />
static int z1; //Klassenvariable<br />
int z; //Objektvariable</p>
<p>public:<br />
CPerson(string n,string m){<br />
cout&lt;&lt;&quot;Neue Instanz...&quot;&lt;&lt;endl;<br />
name = n;<br />
nachname = m;<br />
partner = NULL;<br />
z1++; //Klassenvariable<br />
z=z1;<br />
}</p>
<p>void vorstellen(){<br />
cout&lt;&lt;&quot;Hallo ich bin Objekt &quot;&lt;&lt; z &lt;&lt;&quot; &quot;&lt;&lt;name&lt;&lt;nachname;<br />
if(partner !=NULL)<br />
cout&lt;&lt;&quot;, mein Partner ist &quot;<br />
&lt;&lt;partner-&gt;name<br />
&lt;&lt;partner-&gt;nachname<br />
&lt;&lt;endl;</p>
<p>}//vorstellen</p>
<p>void partnern(CPerson &amp;p){<br />
cout&lt;&lt;&quot;\n&quot;;<br />
this-&gt;partner = &amp;p;<br />
partner-&gt;partner = this;</p>
<p>}//partnern</p>
<p>};//CPerson</p>
<p>int CPerson::z1 = 0;</p>
<p>int main(){</p>
<p>CPerson p1(&quot;Ingeborg&quot;,&quot; Von der Knutsen\n&quot;);<br />
p1.vorstellen();</p>
<p>CPerson p2(&quot;Alfred&quot;,&quot; Hitchacker\n&quot;);<br />
p2.vorstellen();</p>
<p>CPerson p3(&quot;Thomas&quot;,&quot; Heck\n&quot;);<br />
p3.vorstellen();</p>
<p>p1.partnern(p2);<br />
p1.vorstellen();<br />
p2.vorstellen();</p>
<p>cout&lt;&lt;endl;<br />
getchar();<br />
return 0;<br />
}//main</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046706</guid><dc:creator><![CDATA[Maurice13166]]></dc:creator><pubDate>Thu, 27 Apr 2006 19:26:42 GMT</pubDate></item><item><title><![CDATA[Reply to Programmhilfe on Thu, 27 Apr 2006 21:44:38 GMT]]></title><description><![CDATA[<p>Sieht doch schon ganz anständig aus. Eine Frage: Wieso übergibst du die Namen-Strings mit Space am Anfang und \n am Ende? Das gehört nicht zum Namen, sollte also auch nicht gespeichert werden. Wenn du eine neue Zeile willst, dann musst du die eben einfach bei der Ausgabe anhängen. Aber sowas abzuspeichern, führt dann später zu Problemen wenn man das Programm ändern muss.<br />
Beim partnern fehlt noch die Abfrage, ob beide noch keinen Partner haben. Ebenso eine Abfrage, ob das Geschlecht des Objekts ungleich des Geschlechts des zu Heiratenden ist. Zur Festlegung des Geschlechts wirst du wohl am besten eine zusätzliche Variable einführen und diese beim Instanziere gleich mit übergeben.<br />
Scheiden ist dann analog, erst prüfen, ob man mit der Person, von der geschieden werden soll, überhaupt verheiratet ist, dann gleich die beiden Pointer auf Null setzen.<br />
Destruktor mit delete fehlt noch, laut Angabe wird er gefordert.<br />
Und die Klassendefinition kommt in eine extra .h-Datei, die Methoden der Klasse (also heiraten(..), scheiden(), vorstellen()) kommt in die appliP.cpp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046783</guid><dc:creator><![CDATA[codekasper]]></dc:creator><pubDate>Thu, 27 Apr 2006 21:44:38 GMT</pubDate></item><item><title><![CDATA[Reply to Programmhilfe on Thu, 27 Apr 2006 21:44:26 GMT]]></title><description><![CDATA[<p>aus versehen selbst zitiert statt editiert, sry...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046786</guid><dc:creator><![CDATA[codekasper]]></dc:creator><pubDate>Thu, 27 Apr 2006 21:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Programmhilfe on Fri, 28 Apr 2006 13:13:12 GMT]]></title><description><![CDATA[<p>So, bin dran und versuche es heute noch hinzubekommen dann stelle ich es nochmal rein. Aber schon mal vielen Dank für deine Tipps</p>
<p>Gruß maurice</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047084</guid><dc:creator><![CDATA[maurice13166]]></dc:creator><pubDate>Fri, 28 Apr 2006 13:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Programmhilfe on Fri, 28 Apr 2006 13:23:55 GMT]]></title><description><![CDATA[<blockquote>
<p>[...] die Klassendefinition in einer Datei namens Person.h unterzubringen. [...]</p>
</blockquote>
<p>Ich finde den permanenten Gebrauch der Möglichkeit, dass sich Methoden auch in Headerdateien definieren lassen, nicht gut. Würde man alle Methoden so definieren würde der Quelltext schnell sehr chaotisch aussehen.</p>
<p>Vielleicht ist aber auch dem Autor der Aufgabenstellung der Unterschied zwischen Deklaration und Definition nicht bewusst gewesen.</p>
<p>Ich würde dir raten eine Datei person.h (man beachte die Groß- / Kleinschreibung des Dateinamens <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) für die Deklaration und eine Datei person.cpp für die Definition / Implemenatation zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047089</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 28 Apr 2006 13:23:55 GMT</pubDate></item></channel></rss>