<?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[Hilfe bei C++ Studienarbeit]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin totaler C++ Neuling und hab leider nur in Java Erfahrungen.<br />
Jetzt muss ich eine im Fach C++ eine Studienarbeit machen und komm<br />
nicht mehr weiter.<br />
Die Aufgabe ist ein Crosslauf zu erstellen, mit den Funktionen,<br />
wo ich Läufer anlegen, anzeigen lassen kann und anschließend noch ein<br />
paar andere Funktionen ausführen kann.</p>
<p>Leider scheitert mein Programm schon nach der Eingabe der Läufer.<br />
Weiß jemand wieso?<br />
Mein Ziel ist es mit der Funktion anlegen, die eingegebenen Daten in den Konstruktor zu schreiben und somit ein Objekt zu erzeigen. Aber hab<br />
ich keine Ahnung, was ich fasch mache.</p>
<pre><code>#include &lt;iostream&gt;
#include&lt;string&gt;
using namespace std;

class Laeufer{

private:
	int startnr;
	string nachname;
	string vorname;
	int alter;
	char geschlecht;
	double zeit;
	bool vereinzug;
	string vereinname;

public:
	void anlegen(void);
	Laeufer(){}

	Laeufer(string nac, string vorn, int alt, char gesch, bool verz)
	{
		nachname = nac;
		vorname = vorn;
		alter = alt;
		geschlecht = gesch;
		vereinzug = verz;

	}
	~Laeufer(){}

};
void Laeufer::anlegen(){
	cout &lt;&lt; &quot;Bitte geben Sie den Nachnamen ein&quot; &lt;&lt; endl;
	cin &gt;&gt; nachname;
	cout &lt;&lt; &quot;Bitte geben Sie den Vornamen ein&quot; &lt;&lt; endl;
	cin &gt;&gt; vorname;
	cout &lt;&lt; &quot;Bitte geben Sie das Alter ein&quot; &lt;&lt; endl;
	cin &gt;&gt; alter;
	cout &lt;&lt; &quot;Bitte geben Sie das Geschlecht ein&quot; &lt;&lt; endl;
	cin &gt;&gt; geschlecht;
	cout &lt;&lt; &quot;Bitte geben Sie die Vereinszugehörigkeit  ein&quot; &lt;&lt; endl;
	cin &gt;&gt; vereinzug;
}

void main(void){

Laeufer la[500];

 int eingabe; 
     cout &lt;&lt; &quot;Das ist ein Crosslaufverwaltungsprogramm.&quot; &lt;&lt; endl; 
     cout &lt;&lt; &quot;Kontoverwaltung:&quot; &lt;&lt; endl; 
do { 
	 char menue;
     cout &lt;&lt; &quot;1 = Läufer anlegen\n&quot;; 
     cout &lt;&lt; &quot;2 = Auflistung aller Läufer\n&quot;; 
     cout &lt;&lt; &quot;3 = Berchnung der Startgebühr\n&quot;; 
     cout &lt;&lt; &quot;4 = Lauf ist beendet, Eingabe der Ergebnisse\n&quot;; 
     cout &lt;&lt; &quot;5 = Anzeige der Ergebnisse je Kategorie\n&quot;; 
     cout &lt;&lt; &quot;6 = Programm beenden\n&quot; &lt;&lt; endl; 
     cout &lt;&lt; &quot;Geben Sie bitte Ihre Wahl ein: &quot;; 
     cin &gt;&gt; eingabe;
     switch(eingabe) 
	 {	
	case 1: 
          for(int i=0; i &lt; 500; i++){     
				la[i].anlegen(); 
		cout &lt;&lt;&quot;Wollen Sie einen weiteren Teilnehmer eingeben? [J/N]: &quot;;
           cin  &gt;&gt; menue;
           cout &lt;&lt;endl;

           if (menue == 'N' || menue == 'n')
           {
             break;
           } 
				}
			break;

	case 6:
		cout &lt;&lt; &quot;Das Programm wurde beendet&quot; &lt;&lt; endl;
		break;
	 }

	}
	while(eingabe);

	 system(&quot;pause&quot;);

}
</code></pre>
<p>Könnte mir bitte jemand helfen.<br />
Außerdem weiß ich z.b. gar nicht ob man z.b. die Klasse Laeufer in einen Header auslagert.</p>
<p>Schöne Grüße<br />
Martini</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183800/hilfe-bei-c-studienarbeit</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 10:28:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183800.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Jun 2007 19:37:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:37:25 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin totaler C++ Neuling und hab leider nur in Java Erfahrungen.<br />
Jetzt muss ich eine im Fach C++ eine Studienarbeit machen und komm<br />
nicht mehr weiter.<br />
Die Aufgabe ist ein Crosslauf zu erstellen, mit den Funktionen,<br />
wo ich Läufer anlegen, anzeigen lassen kann und anschließend noch ein<br />
paar andere Funktionen ausführen kann.</p>
<p>Leider scheitert mein Programm schon nach der Eingabe der Läufer.<br />
Weiß jemand wieso?<br />
Mein Ziel ist es mit der Funktion anlegen, die eingegebenen Daten in den Konstruktor zu schreiben und somit ein Objekt zu erzeigen. Aber hab<br />
ich keine Ahnung, was ich fasch mache.</p>
<pre><code>#include &lt;iostream&gt;
#include&lt;string&gt;
using namespace std;

class Laeufer{

private:
	int startnr;
	string nachname;
	string vorname;
	int alter;
	char geschlecht;
	double zeit;
	bool vereinzug;
	string vereinname;

public:
	void anlegen(void);
	Laeufer(){}

	Laeufer(string nac, string vorn, int alt, char gesch, bool verz)
	{
		nachname = nac;
		vorname = vorn;
		alter = alt;
		geschlecht = gesch;
		vereinzug = verz;

	}
	~Laeufer(){}

};
void Laeufer::anlegen(){
	cout &lt;&lt; &quot;Bitte geben Sie den Nachnamen ein&quot; &lt;&lt; endl;
	cin &gt;&gt; nachname;
	cout &lt;&lt; &quot;Bitte geben Sie den Vornamen ein&quot; &lt;&lt; endl;
	cin &gt;&gt; vorname;
	cout &lt;&lt; &quot;Bitte geben Sie das Alter ein&quot; &lt;&lt; endl;
	cin &gt;&gt; alter;
	cout &lt;&lt; &quot;Bitte geben Sie das Geschlecht ein&quot; &lt;&lt; endl;
	cin &gt;&gt; geschlecht;
	cout &lt;&lt; &quot;Bitte geben Sie die Vereinszugehörigkeit  ein&quot; &lt;&lt; endl;
	cin &gt;&gt; vereinzug;
}

void main(void){

Laeufer la[500];

 int eingabe; 
     cout &lt;&lt; &quot;Das ist ein Crosslaufverwaltungsprogramm.&quot; &lt;&lt; endl; 
     cout &lt;&lt; &quot;Kontoverwaltung:&quot; &lt;&lt; endl; 
do { 
	 char menue;
     cout &lt;&lt; &quot;1 = Läufer anlegen\n&quot;; 
     cout &lt;&lt; &quot;2 = Auflistung aller Läufer\n&quot;; 
     cout &lt;&lt; &quot;3 = Berchnung der Startgebühr\n&quot;; 
     cout &lt;&lt; &quot;4 = Lauf ist beendet, Eingabe der Ergebnisse\n&quot;; 
     cout &lt;&lt; &quot;5 = Anzeige der Ergebnisse je Kategorie\n&quot;; 
     cout &lt;&lt; &quot;6 = Programm beenden\n&quot; &lt;&lt; endl; 
     cout &lt;&lt; &quot;Geben Sie bitte Ihre Wahl ein: &quot;; 
     cin &gt;&gt; eingabe;
     switch(eingabe) 
	 {	
	case 1: 
          for(int i=0; i &lt; 500; i++){     
				la[i].anlegen(); 
		cout &lt;&lt;&quot;Wollen Sie einen weiteren Teilnehmer eingeben? [J/N]: &quot;;
           cin  &gt;&gt; menue;
           cout &lt;&lt;endl;

           if (menue == 'N' || menue == 'n')
           {
             break;
           } 
				}
			break;

	case 6:
		cout &lt;&lt; &quot;Das Programm wurde beendet&quot; &lt;&lt; endl;
		break;
	 }

	}
	while(eingabe);

	 system(&quot;pause&quot;);

}
</code></pre>
<p>Könnte mir bitte jemand helfen.<br />
Außerdem weiß ich z.b. gar nicht ob man z.b. die Klasse Laeufer in einen Header auslagert.</p>
<p>Schöne Grüße<br />
Martini</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301606</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:47:09 GMT]]></title><description><![CDATA[<p>Was soll das Programm machen? Was macht es? Was ist der Fehler?</p>
<p>Bei mir geht das Programm nach der ersten eingabe in eine endlosschleife, du müsstest wohl std::cin vor dem einlesen erstmal löschen (nur eine Vermutung).</p>
<p>Den Läufer kannst du auslagern in Header + Quelldatei, ist aber bei dieser Sourcecodegröße nicht nötig.</p>
<p>Nebenbei: Verbesser dein void main() mal in int main()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301615</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:50:38 GMT]]></title><description><![CDATA[<p>Nur mal so beim überfliegen:</p>
<p>Mal ne frage...du willst dass man die vereinszugehörigkeit eingibt<br />
<strong>ABER</strong> dies ist eine <strong>bool</strong> variable..nimmt also nur zwei werte an...<br />
also kann das schon nicht funktionieren...<br />
mach nen string draus oder nen int und es passt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301619</guid><dc:creator><![CDATA[Kuldren]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:55:01 GMT]]></title><description><![CDATA[<p>Hallo darthdespotism,</p>
<p>ich soll ein crosslauf organisieren.</p>
<p>Das Programm soll folgendes leisten:<br />
· Eingabe der Teilnehmerdaten (vorname, nachname, usw...)<br />
· Auflistung der Teilnehmer<br />
· Berechnung der Startgebühren je Läufer, bzw. bei Vereinsangehörigen je Verein<br />
· Nach Durchführung des Laufes: Eingabe der Laufzeit für jeden Teilnehmer<br />
· Anzeigen der Ergebnisse je Kategorie</p>
<p>Ich bin aktuell immer noch beim 1. Punkt. Wenn man mein programm startet, ist es noch möglich die pers. Daten einzugeben. (es wird die methode anlegen aufgerufen), sobald ich aber die vereinzugehörigkeit variable = vereinzug eingebe, dann kommt die endlosschleife.</p>
<p>vereinzug ist eine boolean variable.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301624</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:57:29 GMT]]></title><description><![CDATA[<p>1. es heißt int main - aber das nur nebenbei<br />
2. wenn läufter schon einen konstruktor hat, warum dann nochmal zusätzlich eine funktion &quot;anlegen&quot;? genau dafür ist der doch da <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>du legst am anfang schon ein array von 500 läufern an. verwende lieber einen container dafür und lege läufer tatsächlich nur dann an, wenn du sie auch brauchst.</p>
<p>z.b.</p>
<pre><code class="language-cpp">//in main solltest du dir überlegen, ob du dieses riesige switch-case konstrukt wirklich willst.
list&lt;Laeufer&gt; la;
//...
case 1:
   la.push_back(create_laeufer());

//...
Laeufer* create_laeufer ()
{
    cout &lt;&lt; &quot;Bitte geben Sie den Nachnamen ein&quot; &lt;&lt; endl;
    string nachname;
    cin &gt;&gt; nachname; 
    //...
    return new Laeufer (nachname, vorname, ...);
}
</code></pre>
<p>die klassendefinition in einen eigenen header ist nicht notwendig (v.a. weil du ja jetzt nicht unendlich viel code hast - und im ergebnis ist es das gleiche).</p>
<p>für den konstruktor gibt es elementinitialisierungslisten</p>
<pre><code class="language-cpp">class foo
  int a, b, c;
public:
  foo (int &amp;a_, int &amp;b_, int &amp;c_) : a(a_), b(b_), c(c_) {}
</code></pre>
<p>das problem mit der eingabe war schon öfters mal da. such mal nach cin und clear.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301628</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:57:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#if !defined (WALKER_H__INCLUDED)
#define WALKER_H__INCLUDED

#include &lt;string&gt;

class walker
{
public:
	walker(const std::string&amp; lastname, const std::string&amp; prename, const unsigned short age, const char sex, const bool club_member)
		: m_lastname(lastname), m_prename(prename), m_age(age), m_sex(sex), m_member(club_member), m_time(0.0)
    {
    }

public:
	void	set_start_pos(const unsigned int pos)	{ m_startpos = pos;				}	
	unsigned int	get_start_pos() const			{ return m_startpos;			}

private:
	unsigned int	m_startpos;
	std::string		m_lastname;
	std::string		m_prename;
    unsigned short	m_age;
    char			m_sex;
    double			m_time;
    bool			m_member;
	std::string		m_club;
};

#endif // WALKER_H__INCLUDED
</code></pre>
<p>... muss noch um nen paar getter/setter erweitert werden!</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

unsigned short handle_menu();

template&lt;typename t&gt; t read_type(std::string const &amp;prompt) {
  t result;
  std::istringstream isstr;
  std::string line;

  do {
    std::cout &lt;&lt; prompt &lt;&lt; std::flush;

    std::getline(std::cin, line);

    isstr.clear();
    isstr.str(line);
    isstr &gt;&gt; result;
  } while(!isstr);

  return result;
}

int main()
{
	std::cout &lt;&lt; &quot;Crosslaufverwaltung V0.1BETA&quot; &lt;&lt; std::endl;
	std::vector&lt;walker&gt; walkers;

	unsigned short sel = 0;
	while ((sel = handle_menu()) != 6)
	{
		switch (sel)
		{
 			case 1:
			{
				std::cout &lt;&lt; &quot;Vorname: &quot; &lt;&lt; std::flush;
				std::string prename;
				std::getline(std::cin, prename);
				std::cout &lt;&lt; &quot;Nachname: &quot; &lt;&lt; std::flush;
				std::string lastname;
				std::getline(std::cin, lastname);
				unsigned short age = read_type&lt;unsigned short&gt;(&quot;Alter: &quot;);
				walkers.push_back(walker(lastname, prename, age, 'm', true));
				walkers[walkers.size() - 1].set_start_pos(read_type&lt;unsigned int&gt;(&quot;Startposition: &quot;));
			}break;
		}
	}
}

unsigned short handle_menu()
{
	std::cout &lt;&lt; &quot;Kontoverwaltung: &quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;(1) Laeufer anlegen&quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;(2) Liste der Laeufer&quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;(3) Berchnung der Startgebuehr&quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;(4) Ergebnisseeingabe&quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;(5) Anzeige der Ergebnisse&quot; &lt;&lt; std::endl;
	std::cout &lt;&lt; &quot;(6) Programm beenden&quot; &lt;&lt; std::endl;
	return read_type&lt;unsigned short&gt;(&quot;Auswahl: &quot;);
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301629</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 19:59:38 GMT]]></title><description><![CDATA[<p>das Problem ist, dass ein Läufer ohne Verein starten kann oder eben mit Vereinzugehörigkeit.<br />
Jetzt bin ich so vor gegangen, erstmal die Vereinszugehörigkeit zu prüfen und wenn mit true bestätigt wird, soll der Verein eingegeben werden.</p>
<p>In der Aufgabe steht, wenn ein Verein mit mindestens 3 Läufern startet wird der Startgebühr reduziert.</p>
<p>Das Programm ist noch lange nicht fertig, bloß ich muss erstmal mit Eingabe der persönlichen Daten starten. Bloß warum führt der compiler eine endlosschleife aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301632</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 08 Jun 2007 19:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 20:02:03 GMT]]></title><description><![CDATA[<p>Ich danke euch, ich werd das mal durchdenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301636</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:02:03 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 20:05:31 GMT]]></title><description><![CDATA[<p>Naja wnen du meinen Post überliest dann weißt du nicht wieso er ne endlosschleife drausmacht</p>
<p>also nochmal</p>
<p>vereinzugehörigkeit ist eine bool variable..nimmt also nur zwei werte an...<br />
also kann das schon nicht funktionieren...<br />
mach nen string draus oder nen int und es passt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301639</guid><dc:creator><![CDATA[Kuldren]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:05:31 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 20:14:11 GMT]]></title><description><![CDATA[<p>Alles klar Kuldren, danke es funktioniert.<br />
Nur von der Logik ist es mir nicht klar, wenn ich die bool-variable lasse<br />
und true oder false eingebe, müsste es doch normalerweise auch gehen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301652</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:14:11 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 20:17:18 GMT]]></title><description><![CDATA[<p>Schon mal probiert statt &quot;true&quot; und &quot;false&quot; einfach &quot;1&quot; und &quot;0&quot; einzugeben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301655</guid><dc:creator><![CDATA[Kuldren]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:17:18 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 20:18:02 GMT]]></title><description><![CDATA[<p>Guck dir mal den Ansatz an, wie ich ihn gemacht hab. Ist eigentlich nen bissel einfachser sogar noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301657</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei C++ Studienarbeit on Fri, 08 Jun 2007 20:27:47 GMT]]></title><description><![CDATA[<p>Wird bei mir ein bisschen dauern, bis ich das richtig verstanden hab. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Danke nochmal für die Hilfe, ihr habt mir sehr geholfen.</p>
<p>Schöne Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301663</guid><dc:creator><![CDATA[Martini123]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:27:47 GMT</pubDate></item></channel></rss>