<?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[Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2]]></title><description><![CDATA[<p>Hallo.</p>
<p>Grobe Fehler sind, soweit ich es prüfen konnte, keine mehr drin.</p>
<p>Aber:</p>
<p>Was ist daran sehr unschön bzw. kompliziert gelöst?</p>
<p>Was mich am meisten stört ist die Benutzerverifikation. Sollte mein Programm für mehr als 3 User arbeiten, hätte ich für jeden ein weiteres else if...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt;

using namespace std;

struct konto
{
	string User;
	string Pin;
	int Kontostand;
};

void show(int*);
void give(int*);
void choose(int*);

int main() 
{
	konto a, b, c;
	a.User = &quot;Tim&quot;;
	a.Pin = &quot;1&quot;;
	a.Kontostand = 1000;
	b.User = &quot;Karl&quot;;
	b.Pin = &quot;2&quot;;
	b.Kontostand = 2000;
	c.User = &quot;Hugo&quot;;
	c.Pin = &quot;3&quot;;
	c.Kontostand = 3000;
	Anmeldung:
	string User;
	cout&lt;&lt;&quot;Benutzername: &quot;;
	cin&gt;&gt;User;
	string Pin;
	cout&lt;&lt;&quot;PIN: &quot;;
	cin&gt;&gt;Pin;
	if(User == a.User &amp;&amp; Pin == a.Pin)
	{
		choose(&amp;a.Kontostand);
	}
	else if(User == b.User &amp;&amp; Pin == b.Pin)
	{
		choose(&amp;b.Kontostand);
	}
	else if(User == c.User &amp;&amp; Pin == c.Pin)
	{
		choose(&amp;c.Kontostand);
	}
	else
	{
		cout&lt;&lt;&quot;\nFehler bei der Anmeldung!!!\n\n&quot;;
	}
	goto Anmeldung;
	cin.clear(); cin.ignore(cin.rdbuf()-&gt;in_avail()); cin.get();
}

void show(int* money)
{
	cout&lt;&lt;&quot;\nIhr aktueller Kontostand ist: &quot;&lt;&lt;*money&lt;&lt;&quot; Euro \n\n&quot;;
}
void give(int* money)
{
	int out;
	outagain:
	cout&lt;&lt;&quot;\nBitte geben Sie den gew\201nschten Auszahlungsbetrag ein: &quot;;
	cin&gt;&gt;out;
	if(*money-out &lt; 0)
	{
		cout&lt;&lt;&quot;\nDer gew\204hlte Betrag ist nicht verf\201gbar!!! \n&quot;;
		goto outagain;
	}
	else
	{
	*money-=out;
	cout&lt;&lt;&quot;\nIhnen wurden &quot;&lt;&lt;out&lt;&lt;&quot; Euro ausgezahlt.&quot;;
	show(money);
	}
}
void choose(int* money)
{
	cout&lt;&lt;&quot;\nBitte treffen Sie eine Auswahl: \n1 = Kontostand \n2 = Auszahlung \n3 = Neuanmeldung\n\nAuswahl:&quot;;
	int Auswahl;
	cin&gt;&gt;Auswahl;
	if(Auswahl == 1)
	{
		show(money);
	}
	else if(Auswahl == 2)
	{
		give(money);
	}
	else if(Auswahl == 3)
	{
		cout&lt;&lt;&quot;\n&quot;;
	}
	else
	{
		cout&lt;&lt;&quot;\nAuswahl nicht m\224glich!!!\n\n&quot;;
	}
}
</code></pre>
<p>Dank und Gruß, SchlippSchlapp</p>
<p>P.S. Sollte man den Quelltext nur als Link verknüpfen?<br />
Gibt es eine Forumsordnung die ich nicht finde?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268051/bitte-quelltext-prüfen-highcore-de-anhang-a-aufgabe-2</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 04:46:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268051.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Jun 2010 12:34:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 12:35:27 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Grobe Fehler sind, soweit ich es prüfen konnte, keine mehr drin.</p>
<p>Aber:</p>
<p>Was ist daran sehr unschön bzw. kompliziert gelöst?</p>
<p>Was mich am meisten stört ist die Benutzerverifikation. Sollte mein Programm für mehr als 3 User arbeiten, hätte ich für jeden ein weiteres else if...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt;

using namespace std;

struct konto
{
	string User;
	string Pin;
	int Kontostand;
};

void show(int*);
void give(int*);
void choose(int*);

int main() 
{
	konto a, b, c;
	a.User = &quot;Tim&quot;;
	a.Pin = &quot;1&quot;;
	a.Kontostand = 1000;
	b.User = &quot;Karl&quot;;
	b.Pin = &quot;2&quot;;
	b.Kontostand = 2000;
	c.User = &quot;Hugo&quot;;
	c.Pin = &quot;3&quot;;
	c.Kontostand = 3000;
	Anmeldung:
	string User;
	cout&lt;&lt;&quot;Benutzername: &quot;;
	cin&gt;&gt;User;
	string Pin;
	cout&lt;&lt;&quot;PIN: &quot;;
	cin&gt;&gt;Pin;
	if(User == a.User &amp;&amp; Pin == a.Pin)
	{
		choose(&amp;a.Kontostand);
	}
	else if(User == b.User &amp;&amp; Pin == b.Pin)
	{
		choose(&amp;b.Kontostand);
	}
	else if(User == c.User &amp;&amp; Pin == c.Pin)
	{
		choose(&amp;c.Kontostand);
	}
	else
	{
		cout&lt;&lt;&quot;\nFehler bei der Anmeldung!!!\n\n&quot;;
	}
	goto Anmeldung;
	cin.clear(); cin.ignore(cin.rdbuf()-&gt;in_avail()); cin.get();
}

void show(int* money)
{
	cout&lt;&lt;&quot;\nIhr aktueller Kontostand ist: &quot;&lt;&lt;*money&lt;&lt;&quot; Euro \n\n&quot;;
}
void give(int* money)
{
	int out;
	outagain:
	cout&lt;&lt;&quot;\nBitte geben Sie den gew\201nschten Auszahlungsbetrag ein: &quot;;
	cin&gt;&gt;out;
	if(*money-out &lt; 0)
	{
		cout&lt;&lt;&quot;\nDer gew\204hlte Betrag ist nicht verf\201gbar!!! \n&quot;;
		goto outagain;
	}
	else
	{
	*money-=out;
	cout&lt;&lt;&quot;\nIhnen wurden &quot;&lt;&lt;out&lt;&lt;&quot; Euro ausgezahlt.&quot;;
	show(money);
	}
}
void choose(int* money)
{
	cout&lt;&lt;&quot;\nBitte treffen Sie eine Auswahl: \n1 = Kontostand \n2 = Auszahlung \n3 = Neuanmeldung\n\nAuswahl:&quot;;
	int Auswahl;
	cin&gt;&gt;Auswahl;
	if(Auswahl == 1)
	{
		show(money);
	}
	else if(Auswahl == 2)
	{
		give(money);
	}
	else if(Auswahl == 3)
	{
		cout&lt;&lt;&quot;\n&quot;;
	}
	else
	{
		cout&lt;&lt;&quot;\nAuswahl nicht m\224glich!!!\n\n&quot;;
	}
}
</code></pre>
<p>Dank und Gruß, SchlippSchlapp</p>
<p>P.S. Sollte man den Quelltext nur als Link verknüpfen?<br />
Gibt es eine Forumsordnung die ich nicht finde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906313</guid><dc:creator><![CDATA[SchlippSchlapp]]></dc:creator><pubDate>Thu, 03 Jun 2010 12:35:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 12:39:36 GMT]]></title><description><![CDATA[<p>a) KEIN GOTO VERWENDEN<br />
b) std::vector anschauen<br />
c) konto einen Konstruktor verpassen<br />
d) diesen nutzen beim Befüllen von b)<br />
e) über den vector iterieren beim kontrollieren<br />
f) das ganze konto weitergeben, nicht nur den betrag, erlaubt auch die person mit namen anzusprechen<br />
g)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906315</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 03 Jun 2010 12:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 14:42:27 GMT]]></title><description><![CDATA[<p>Vielen Dank erstmal.</p>
<p>zu a): goto ist echt unbeliebt (anscheinend aufgrund seiner Fehleranfälligkeit) ^^</p>
<p>Den Rest habe ich verstanden, da ich aber erst das Onine-Tutorial &quot;Programmieren in C++: Einführung&quot; durch habe, ist mir vektor noch unbekannt (Ich sehe es mir natürlich gerne an).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906378</guid><dc:creator><![CDATA[SchlippSchlapp]]></dc:creator><pubDate>Thu, 03 Jun 2010 14:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 15:03:29 GMT]]></title><description><![CDATA[<p>Bei der unteren Auswahl schau noch mal in dein Tutorial wegen switch - case -break <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="😉"
    /></p>
<p>Schleifen: do - while oder nur while solltest du auch noch mal üben, dann sollt das goto entbehrlich sein.</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906386</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 03 Jun 2010 15:03:29 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 17:35:40 GMT]]></title><description><![CDATA[<p>Wenn ich es wie folgt mache, dann meckert er wegen des Zeigers (error C2450: switch-Ausdruck des Typs 'int *' nicht zulässig).<br />
Ich hatte eigentlich kein switch benutzt, weil switch nur mit char und int arbeitet.</p>
<pre><code class="language-cpp">void choose(int* money)
{
	cout&lt;&lt;&quot;\nBitte treffen Sie eine Auswahl: \n1 = Kontostand \n2 = Auszahlung \n3 = Neuanmeldung\n\nAuswahl:&quot;;
	int Auswahl;
	cin&gt;&gt;Auswahl;
	switch(money)
	{
	case 1:
		show(money);
		break;
	case 2:
		give(money);
		break;
	case 3:
		cout&lt;&lt;&quot;\n&quot;;
		break;
	default:
		cout&lt;&lt;&quot;\nAuswahl nicht m\224glich!!!\n\n&quot;;
		break;
}
</code></pre>
<p>Zeile 29 habe ich jetzt einfach durch</p>
<pre><code class="language-cpp">while(1)
	{
</code></pre>
<p>ersetzt und in Zeile 52 die Schleife geschlossen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906461</guid><dc:creator><![CDATA[SchlippSchlapp]]></dc:creator><pubDate>Thu, 03 Jun 2010 17:35:40 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 17:39:10 GMT]]></title><description><![CDATA[<p>Wieso switchst du money und nicht Auswahl?<br />
switch mag zwar performant sein, aber die Übersichtlichkeit erhöht es selten oder nie, wie du vielleicht merkst.<br />
So ist es doch deutlich übersichtlicher:</p>
<pre><code class="language-cpp">if (Auswahl==1)show(money);
    else if (Auswahl==2)give(money);
    else if (Auswahl==3)cout&lt;&lt;&quot;\n&quot;;
    else cout&lt;&lt;&quot;\nAuswahl nicht m\224glich!!!\n\n&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1906466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906466</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 03 Jun 2010 17:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 17:42:13 GMT]]></title><description><![CDATA[<p>Dann musste du dir das Kapitel mit int und char auch noch mal ansehen. <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="😉"
    /></p>
<p>Hier ein Link:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-916613.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-916613.html</a></p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906468</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 03 Jun 2010 17:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 17:53:57 GMT]]></title><description><![CDATA[<p>Sollte genauer lesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Schau wegen switch in dein Tutorial Kap. 4.1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906471</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 03 Jun 2010 17:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 18:18:44 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23889">@Athar</a></p>
<p>...einfach nur ein Fehler...</p>
<p>@ f.-th.</p>
<p>Danke für die genauen Tipps (du machst dir sogar die Mühe und stimmst sie auf mein Tutorial ab). Switch habe ich eigentlich schon verstanden ^^.<br />
Es ging bei deinem Hinweis doch hoffentlich nur um den von Athar beschriebenen Fehler oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906481</guid><dc:creator><![CDATA[SchlippSchlapp]]></dc:creator><pubDate>Thu, 03 Jun 2010 18:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 18:36:00 GMT]]></title><description><![CDATA[<p>Der Grund warum dein switch nicht klappt, ist weil du beim switch oben keinen int sondern einen int* also einen Pointer auf int reinschmeißt. Du könntest es ganz einfach lösen, indem du monex dereferenzierst, also mit</p>
<pre><code class="language-cpp">switch(*money)
{
...
}
</code></pre>
<p>Zumal ich nicht wirklich verstehe warum du also Funktionsargument Pointer nimmst. Willst du dir dadurch das Kopieren der Argumente sparen? Dann hätte es eine const-Referenz auch getan, also</p>
<pre><code class="language-cpp">void choose(const int&amp; money)
{
...
}
</code></pre>
<p>Für solche Beispiele sind Referenzen denke ich besser als Pointer.</p>
<p>Das ist nur das was mir noch aufgefallen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906484</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Thu, 03 Jun 2010 18:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 19:05:39 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12071">@Max3000</a></p>
<p>Bei dem switch hätte ich einfach nur Auswahl, also den richtigen Wert, einfügen sollen, dann hätte alles geklappt.</p>
<p>Da die referenzierte Variable geändert werden soll funktioniert doch const nicht oder?<br />
Eine einfache Referenz könnte ich aber anscheinend verwenden.</p>
<p>Zu deiner Frage warum ich das tue: Ich finde Zeiger sehr sympatisch gegenüber Referenzen.</p>
<p>Wenn ich einer Funktion eine Referenz gebe und diese dann weitergegeben wird und das dann noch 20x passiert, dann stelle ich mir da eine endlose Schlange an Verknüpfungen auf Verknüpfungen vor (auch wenn das eventuell nicht so ist).<br />
Wenn ich hingegen eine Adresse weitergebe, dann bleibt das immer die selbe.</p>
<p>Und ja, es geht in der Programmierung vermutlich nicht um persönliche Präferenzen, sondern eher um sinnvoll und nützlich.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Dank und Gruß, SchlippSchlapp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906498</guid><dc:creator><![CDATA[SchlippSchlapp]]></dc:creator><pubDate>Thu, 03 Jun 2010 19:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 19:17:24 GMT]]></title><description><![CDATA[<p>Du weißt schon, dass eine Referenz intern auch nur ein Zeiger ist? Naja, rhetorische Frage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Edit: da du jetzt keine Performanzsorgen mehr haben musst: nimm Zeiger für optionale Argumente (d.h. dürfen auch NULL sein) und Referenzen für Pflichtargumente.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906500</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 03 Jun 2010 19:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 19:19:34 GMT]]></title><description><![CDATA[<p>Du wirst meine Sympathie auch nicht mit irgendwelchen, an den Haaren herbeigezogenen, Pseudo-Fakten brechen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Edit: Danke für den Verwendungshinweis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906504</guid><dc:creator><![CDATA[SchlippSchlapp]]></dc:creator><pubDate>Thu, 03 Jun 2010 19:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 19:29:39 GMT]]></title><description><![CDATA[<p>Naja, wenn du einen C++ - Kompiler schreiben müsstest, wie würdest du Referenzen implementieren? Da Zeiger ein von CPUs nativ unterstütztes Konzept sind und Referenzen sich wie automatisch selbst-dereferenzierende Zeiger verhalten, ist die Implementierung durch Zeiger naheliegend. Das fanden die Entwickler der existierenden C++ - Compiler auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906513</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 03 Jun 2010 19:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bitte Quelltext prüfen - highcore.de Anhang A Aufgabe 2 on Thu, 03 Jun 2010 19:55:40 GMT]]></title><description><![CDATA[<p>Ich wollte jetzt auch keine Grundsatzdiskutsion zu Referenzen vs. Pointern anfangen. War nicht meine Absicht, sorry :D.</p>
<p>Hat beides wie gesagt Vor- und Nachteile.<br />
Mit Referenzen kann man meiner Meinung nach halt weniger falsch machen ;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1906521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1906521</guid><dc:creator><![CDATA[Max3000]]></dc:creator><pubDate>Thu, 03 Jun 2010 19:55:40 GMT</pubDate></item></channel></rss>