<?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[Personen Editor.. wer kann helfen?]]></title><description><![CDATA[<p>Aufgabenstellung:</p>
<p>• Nachdem die ganze PERSONEN.DAT Datei eingelesen worden ist, geben Sie nun<br />
dem Benutzer die Möglichkeit, einen Personendatensatz zu suchen.<br />
• Schreiben Sie hierzu eine Funktion, die den Nachnamen einer Person abfragt<br />
und den zugehörigen Datensatz im Array sucht.<br />
• Wenn die Person gefunden worden ist, wird sie angezeigt, sonst sollte die<br />
Funktion eine kurze Meldung ausgeben.<br />
• Rufen Sie diese Suchfunktion innerhalb einer Schleife auf.<br />
• Damit der Benutzer abbrechen kann, soll er als Namen das Wort „exit“<br />
eingeben.<br />
• Die Funktion sucht dann nicht nach einer Person mit diesem Namen, sondern<br />
das Programm soll beendet werden.</p>
<p>Ich wär seeehr dankbar für Lösungsvorschläge! :xmas2:</p>
<p>[/cpp]</p>
<p>#include &lt;cstdio&gt;<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>struct person {<br />
int alter;<br />
char vorname[20];<br />
char nachname[20];<br />
};</p>
<p>void eingabe(struct person *);<br />
void einlesen(struct person *, FILE *);<br />
void ausgabe(struct person *);<br />
bool suchen(struct person *, short);<br />
void bearbeiten(struct person *);</p>
<p>const short PERSONENZAHL = 4;</p>
<p>int main() {<br />
struct person personen[PERSONENZAHL];<br />
FILE *input = fopen (&quot;PERSONEN.DAT&quot;, &quot;r&quot;);<br />
if (!input) {<br />
cout &lt;&lt; &quot;Konnte PERSONEN.DAT nicht oeffnen!&quot; &lt;&lt; endl;<br />
return 2;<br />
}<br />
for (short x = 0; x &lt; PERSONENZAHL; x++) {<br />
einlesen(&amp;personen[x], input);<br />
}<br />
while ( suchen(personen, PERSONENZAHL) )<br />
; // nichts machen<br />
getchar();<br />
return 0;<br />
}</p>
<p>void eingabe (struct person *pp) {<br />
printf (&quot;\nBitte geben Sie die Daten zu einer Person ein!&quot;);<br />
printf (&quot;\nVorname der Person: &quot;);<br />
scanf (&quot;%s&quot;,pp-&gt;vorname);<br />
printf (&quot;\nNachname der Person: &quot;);<br />
scanf (&quot;%s&quot;,pp-&gt;nachname);<br />
printf (&quot;\nAlter der Person: &quot;);<br />
scanf (&quot;%s&quot;, pp-&gt;alter);<br />
}</p>
<p>void einlesen (struct person *pp, FILE * file) {<br />
char zeile[100];</p>
<p>fgets(zeile, 100, file);<br />
zeile[strlen(zeile) - 1] = '\0';<br />
strcpy(pp-&gt;vorname, zeile);<br />
fgets(zeile, 100, file);<br />
zeile[strlen(zeile) - 1] = '\0';<br />
strcpy(pp-&gt;nachname, zeile);<br />
fgets(zeile, 100, file);<br />
zeile[strlen(zeile) - 1] = '\0';<br />
pp-&gt;alter = atoi(zeile);<br />
}</p>
<p>void ausgabe(struct person *pp) {<br />
cout &lt;&lt; &quot;Vorname = &quot; &lt;&lt; pp-&gt;vorname &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Nachname = &quot; &lt;&lt; pp-&gt;nachname &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Alter = &quot; &lt;&lt; pp-&gt;alter &lt;&lt; endl;<br />
}</p>
<p>bool suchen(struct person *personen, short anzahl) {<br />
bool gefunden = false;<br />
cout &lt;&lt; &quot;Geben Sie den Namen der gesuchten Person ein (exit beendet): &quot;;<br />
char suchname[20];<br />
cin &gt;&gt; suchname;<br />
if (strcmp(suchname, &quot;exit&quot;) == 0)<br />
return false; // fertig, beenden<br />
for (short index = 0; index &lt; anzahl; index++) {<br />
if (strcmp(personen[index].nachname, suchname) == 0) {<br />
gefunden = true;<br />
ausgabe(&amp;personen[index]);<br />
bearbeiten(&amp;personen[index]);<br />
}<br />
}<br />
if (!gefunden)<br />
cout &lt;&lt; &quot;Person mit diesem Namen existiert nicht!&quot; &lt;&lt; endl;<br />
return true; // weitersuchen</p>
<p>}</p>
<p>void bearbeiten(struct person *pp) {<br />
short wahl;<br />
do {<br />
cout &lt;&lt; &quot;Wollen Sie die Daten dieser Person bearbeiten? 0=nein, 1=ja: &quot;;<br />
cin &gt;&gt; wahl;<br />
} while (wahl &lt; 0 || wahl &gt; 1);<br />
if (wahl == 1)<br />
eingabe(pp);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199750/personen-editor-wer-kann-helfen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 19:18:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199750.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Dec 2007 18:08:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Personen Editor.. wer kann helfen? on Thu, 06 Dec 2007 18:08:57 GMT]]></title><description><![CDATA[<p>Aufgabenstellung:</p>
<p>• Nachdem die ganze PERSONEN.DAT Datei eingelesen worden ist, geben Sie nun<br />
dem Benutzer die Möglichkeit, einen Personendatensatz zu suchen.<br />
• Schreiben Sie hierzu eine Funktion, die den Nachnamen einer Person abfragt<br />
und den zugehörigen Datensatz im Array sucht.<br />
• Wenn die Person gefunden worden ist, wird sie angezeigt, sonst sollte die<br />
Funktion eine kurze Meldung ausgeben.<br />
• Rufen Sie diese Suchfunktion innerhalb einer Schleife auf.<br />
• Damit der Benutzer abbrechen kann, soll er als Namen das Wort „exit“<br />
eingeben.<br />
• Die Funktion sucht dann nicht nach einer Person mit diesem Namen, sondern<br />
das Programm soll beendet werden.</p>
<p>Ich wär seeehr dankbar für Lösungsvorschläge! :xmas2:</p>
<p>[/cpp]</p>
<p>#include &lt;cstdio&gt;<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>struct person {<br />
int alter;<br />
char vorname[20];<br />
char nachname[20];<br />
};</p>
<p>void eingabe(struct person *);<br />
void einlesen(struct person *, FILE *);<br />
void ausgabe(struct person *);<br />
bool suchen(struct person *, short);<br />
void bearbeiten(struct person *);</p>
<p>const short PERSONENZAHL = 4;</p>
<p>int main() {<br />
struct person personen[PERSONENZAHL];<br />
FILE *input = fopen (&quot;PERSONEN.DAT&quot;, &quot;r&quot;);<br />
if (!input) {<br />
cout &lt;&lt; &quot;Konnte PERSONEN.DAT nicht oeffnen!&quot; &lt;&lt; endl;<br />
return 2;<br />
}<br />
for (short x = 0; x &lt; PERSONENZAHL; x++) {<br />
einlesen(&amp;personen[x], input);<br />
}<br />
while ( suchen(personen, PERSONENZAHL) )<br />
; // nichts machen<br />
getchar();<br />
return 0;<br />
}</p>
<p>void eingabe (struct person *pp) {<br />
printf (&quot;\nBitte geben Sie die Daten zu einer Person ein!&quot;);<br />
printf (&quot;\nVorname der Person: &quot;);<br />
scanf (&quot;%s&quot;,pp-&gt;vorname);<br />
printf (&quot;\nNachname der Person: &quot;);<br />
scanf (&quot;%s&quot;,pp-&gt;nachname);<br />
printf (&quot;\nAlter der Person: &quot;);<br />
scanf (&quot;%s&quot;, pp-&gt;alter);<br />
}</p>
<p>void einlesen (struct person *pp, FILE * file) {<br />
char zeile[100];</p>
<p>fgets(zeile, 100, file);<br />
zeile[strlen(zeile) - 1] = '\0';<br />
strcpy(pp-&gt;vorname, zeile);<br />
fgets(zeile, 100, file);<br />
zeile[strlen(zeile) - 1] = '\0';<br />
strcpy(pp-&gt;nachname, zeile);<br />
fgets(zeile, 100, file);<br />
zeile[strlen(zeile) - 1] = '\0';<br />
pp-&gt;alter = atoi(zeile);<br />
}</p>
<p>void ausgabe(struct person *pp) {<br />
cout &lt;&lt; &quot;Vorname = &quot; &lt;&lt; pp-&gt;vorname &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Nachname = &quot; &lt;&lt; pp-&gt;nachname &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Alter = &quot; &lt;&lt; pp-&gt;alter &lt;&lt; endl;<br />
}</p>
<p>bool suchen(struct person *personen, short anzahl) {<br />
bool gefunden = false;<br />
cout &lt;&lt; &quot;Geben Sie den Namen der gesuchten Person ein (exit beendet): &quot;;<br />
char suchname[20];<br />
cin &gt;&gt; suchname;<br />
if (strcmp(suchname, &quot;exit&quot;) == 0)<br />
return false; // fertig, beenden<br />
for (short index = 0; index &lt; anzahl; index++) {<br />
if (strcmp(personen[index].nachname, suchname) == 0) {<br />
gefunden = true;<br />
ausgabe(&amp;personen[index]);<br />
bearbeiten(&amp;personen[index]);<br />
}<br />
}<br />
if (!gefunden)<br />
cout &lt;&lt; &quot;Person mit diesem Namen existiert nicht!&quot; &lt;&lt; endl;<br />
return true; // weitersuchen</p>
<p>}</p>
<p>void bearbeiten(struct person *pp) {<br />
short wahl;<br />
do {<br />
cout &lt;&lt; &quot;Wollen Sie die Daten dieser Person bearbeiten? 0=nein, 1=ja: &quot;;<br />
cin &gt;&gt; wahl;<br />
} while (wahl &lt; 0 || wahl &gt; 1);<br />
if (wahl == 1)<br />
eingabe(pp);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1416053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1416053</guid><dc:creator><![CDATA[xyz2007]]></dc:creator><pubDate>Thu, 06 Dec 2007 18:08:57 GMT</pubDate></item><item><title><![CDATA[Reply to Personen Editor.. wer kann helfen? on Thu, 06 Dec 2007 18:25:05 GMT]]></title><description><![CDATA[<p>[quote=&quot;xyz2007&quot;]Ich wär seeehr dankbar für Lösungsvorschläge! :xmas2:<br />
Wo hängts denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1416060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1416060</guid><dc:creator><![CDATA[betman]]></dc:creator><pubDate>Thu, 06 Dec 2007 18:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to Personen Editor.. wer kann helfen? on Thu, 06 Dec 2007 18:32:07 GMT]]></title><description><![CDATA[<p>[quote=&quot;betman&quot;]</p>
<p>xyz2007 schrieb:</p>
<blockquote>
<p>Ich wär seeehr dankbar für Lösungsvorschläge! :xmas2:<br />
Wo hängts denn?</p>
</blockquote>
<p>Wenn ich die Datei &quot;PERSONEN.DAT&quot; in denselben Ordner hinzufüge (mit Namen drin) dann kommt bei mir eine Endlosschlaufe wenn ich einen Namen richtig eingegeben habe :-S</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1416068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1416068</guid><dc:creator><![CDATA[xyz2007]]></dc:creator><pubDate>Thu, 06 Dec 2007 18:32:07 GMT</pubDate></item><item><title><![CDATA[Reply to Personen Editor.. wer kann helfen? on Thu, 06 Dec 2007 19:06:46 GMT]]></title><description><![CDATA[<p>Mal ne Frage: Soll das C++/C oder ein Mix von beiden sein???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1416093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1416093</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Thu, 06 Dec 2007 19:06:46 GMT</pubDate></item></channel></rss>