<?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[Semesterprojekt]]></title><description><![CDATA[<p>Hallo Leute,<br />
2 Kollegen und ich mache gerade ein Projekt im Fach Informatik. Wir sollen ein Spiel entwickeln, wir haben uns für ein Quiz/ Lernspiel entschieden. Wir dachten uns das wir die Fragen 5 mal richtig beantworten müssen bis sie endgültig gelöscht werden können bzw. man sie kann. Wir dachten uns das wir sie dann durch 5 Kategorien laufen lassen. Diese 5 Kategorien müssen dann zunehmend seltener vorkommen. Zum Beispiel kommen die Fragen die man noch gar nicht richtig beantworte hat bzw. in der 1. Kategorie sind zu 40% vorkommen, die in der 2. zu 25%, die in der 3. zu 20% usw. Bis sie dann endgültig nach der 5. Kategorie gelöscht werden.</p>
<p>Unser Problem ist es jetzt die Fragen in die jeweiligen Kategorien zuverschieben und dann durch einen Zufallsgenerator auszusuchen. Den Zufallsgenerator haben wir. Wir bräuchten jetzt einen Idee wie wir die Fragen verschieben.</p>
<p>Ich hoffe das ist etwas zu verstehen <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>PS. Wir sind nichts Könner <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>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322797/semesterprojekt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 16:35:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322797.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Jan 2014 10:30:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 10:30:31 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
2 Kollegen und ich mache gerade ein Projekt im Fach Informatik. Wir sollen ein Spiel entwickeln, wir haben uns für ein Quiz/ Lernspiel entschieden. Wir dachten uns das wir die Fragen 5 mal richtig beantworten müssen bis sie endgültig gelöscht werden können bzw. man sie kann. Wir dachten uns das wir sie dann durch 5 Kategorien laufen lassen. Diese 5 Kategorien müssen dann zunehmend seltener vorkommen. Zum Beispiel kommen die Fragen die man noch gar nicht richtig beantworte hat bzw. in der 1. Kategorie sind zu 40% vorkommen, die in der 2. zu 25%, die in der 3. zu 20% usw. Bis sie dann endgültig nach der 5. Kategorie gelöscht werden.</p>
<p>Unser Problem ist es jetzt die Fragen in die jeweiligen Kategorien zuverschieben und dann durch einen Zufallsgenerator auszusuchen. Den Zufallsgenerator haben wir. Wir bräuchten jetzt einen Idee wie wir die Fragen verschieben.</p>
<p>Ich hoffe das ist etwas zu verstehen <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>PS. Wir sind nichts Könner <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>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375742</guid><dc:creator><![CDATA[dariusrobert]]></dc:creator><pubDate>Tue, 07 Jan 2014 10:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 10:37:38 GMT]]></title><description><![CDATA[<p>Ich würde vorschlagen, pro Kategorie einen Vector zu nehmen und dann die Fragen einfach von einem Vector in den anderen zu verschieben. Hört sich nicht so kompliziert an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375744</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Tue, 07 Jan 2014 10:37:38 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 11:16:15 GMT]]></title><description><![CDATA[<p>Vielen Dank schon mal.<br />
Wie sieht das denn ungefähr aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375749</guid><dc:creator><![CDATA[dariusrobert]]></dc:creator><pubDate>Tue, 07 Jan 2014 11:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 11:26:21 GMT]]></title><description><![CDATA[<p>dariusrobert schrieb:</p>
<blockquote>
<p>Vielen Dank schon mal.<br />
Wie sieht das denn ungefähr aus?</p>
</blockquote>
<p>Du legst z.B. Vectoren von Strings an die die Fragen speichern z.B. so</p>
<pre><code>std::vector&lt;std::string&gt; Kategorie1;
Kategorie1.emplace_back(&quot;Was ist die Hauptstadt von Deutschland?&quot;);
</code></pre>
<p>Wenn es wirklich kompfortabel sein soll, lest ihr die Fragen am besten aus einer Datei ein. Zum stellen der Fragen itteriert ihr mit einem Iterator über einen vector. Damit könnt ihr dann das aktuelle Element gegebenenfalls in einen andern Vector verschieben.</p>
<p>Ich habe allerdings den Eindruck, ihr solltet euch noch mal dringend mit den Grundlagen von C++ beschäftigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375751</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Tue, 07 Jan 2014 11:26:21 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 11:25:50 GMT]]></title><description><![CDATA[<p>Wobei mir gerade einfällt. Ihr speichert am besten ein Pair von Strings, da ihr ja auch die zugehörige Antwort braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375752</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Tue, 07 Jan 2014 11:25:50 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 11:36:05 GMT]]></title><description><![CDATA[<p>Da stimmen wir dir alle zu!!! Nur ist dafür keine Zeit mehr <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>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375753</guid><dc:creator><![CDATA[dariusrobert]]></dc:creator><pubDate>Tue, 07 Jan 2014 11:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 13:04:56 GMT]]></title><description><![CDATA[<p>dariusrobert schrieb:</p>
<blockquote>
<p>Da stimmen wir dir alle zu!!! Nur ist dafür keine Zeit mehr <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>
</blockquote>
<p>lol, das ganze programm sollte einen weniger als einen tag kosten, nicht zu dritt ein semester.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375776</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 07 Jan 2014 13:04:56 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 17:52:04 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>Wobei mir gerade einfällt. Ihr speichert am besten ein Pair von Strings, da ihr ja auch die zugehörige Antwort braucht.</p>
</blockquote>
<p>Hab irgendwo mal gehört, dass man in C++ sowas wie OOP einigermaßen umsetzen kann. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2375865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375865</guid><dc:creator><![CDATA[am besten]]></dc:creator><pubDate>Tue, 07 Jan 2014 17:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 18:19:50 GMT]]></title><description><![CDATA[<p>Jo also um euch etwas zu motivieren, das ist auf jeden Fall schaffbar, wenn ihr das dann habt, könnt ihr versuchen das mit einer Grafikbibliothek (Bsp: SFML) grafisch umzusetzen, macht bestimmt auch Spaß und ist ein bisschen mehr zu tun <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>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375867</guid><dc:creator><![CDATA[hardware]]></dc:creator><pubDate>Tue, 07 Jan 2014 18:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 19:16:22 GMT]]></title><description><![CDATA[<p>Wie wäre es mit enum? ( c++11 )</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

class Question
{
public:
    enum progress { stage1, stage2, stage3, stage4, stage5 };

    explicit Question( const std::string&amp; q, const std::string&amp; a, progress p) : questionText(a), answerText(a), currentStage(p)
    {}

    std::string question() const { return questionText; }

    std::string answer() const { return answerText; }

    progress stage() const { return currentStage; }

    void changeStage( progress p ) { currentStage = p; }

private:
    const std::string questionText;

    const std::string answerText;

    progress currentStage;
};

int main()
{
    std::vector&lt; Question &gt; questions =
    {
        Question( &quot;foo&quot;, &quot;bar&quot;,     Question::progress::stage1 ),
        Question( &quot;blabla&quot;, &quot;lala&quot;, Question::progress::stage1 ),
        Question( &quot;tata&quot;, &quot;blub&quot;,   Question::progress::stage1 )
    };
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2375875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375875</guid><dc:creator><![CDATA[exploit126]]></dc:creator><pubDate>Tue, 07 Jan 2014 19:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 19:21:55 GMT]]></title><description><![CDATA[<p>dariusrobert schrieb:</p>
<blockquote>
<p>2 Kollegen und ich mache gerade ein Projekt im Fach Informatik.</p>
</blockquote>
<p>Finde ich jetzt ehrlich gesagt etwas anspruchslos. Was sind denn da für Anforderungen? Ich hoff mal, ihr wollt das nicht als Studienarbeit verkaufen. Was wir damals als Studienarbeit hatten, war wahrscheinlich paar hundert mal mehr Aufwand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375876</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Tue, 07 Jan 2014 19:21:55 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 19:22:37 GMT]]></title><description><![CDATA[<p>exploit126 schrieb:</p>
<blockquote>
<p>Wie wäre es mit enum? ( c++11 )</p>
</blockquote>
<p>Gefällt mir nicht. Wir wissen zwar nicht genau, wie das Programm aussehen soll, aber vermutlich möchte man doch die Fragekategorie als Eigenschaft eines Containers (und damit indirekt der da drin enthaltenen Fragen) haben, nicht als Eigenschaft der Frage selbst. Denn dann kann man leicht alle Fragen einer Kategorie erhalten, was in diesem Beispiel hingegen mit sehr viel Sucharbeit verbunden wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375877</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 07 Jan 2014 19:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Tue, 07 Jan 2014 22:24:37 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>exploit126 schrieb:</p>
<blockquote>
<p>Wie wäre es mit enum? ( c++11 )</p>
</blockquote>
<p>Gefällt mir nicht. Wir wissen zwar nicht genau, wie das Programm aussehen soll, aber vermutlich möchte man doch die Fragekategorie als Eigenschaft eines Containers (und damit indirekt der da drin enthaltenen Fragen) haben, nicht als Eigenschaft der Frage selbst. Denn dann kann man leicht alle Fragen einer Kategorie erhalten, was in diesem Beispiel hingegen mit sehr viel Sucharbeit verbunden wäre.</p>
</blockquote>
<p>Um genau zu sein sind die Kategorien nicht sinnig: Es bildet nur die &quot;Karteikastenmethode&quot; nach, eine gute Methode, wenn man keinen PC hat. Aber mit PC kann man die 5 Kästen ersetzen durch einen double pro Vokabelsatz die Kästen fließend gestalten, bei Nichtwissen einen Punkt Abzug oder Punkte halbieren oder so und bei Wissen einen Punkt dazu, noch kleinen Rinbuffer dazu, damit zwischen dem Wiederholen einer Frage mindestens 7 (hängt von der Person ab) andere sind, und das Prog schlägt jeden einfachen Karteikasten, was den Spaß und den Lernerfolg angeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375929</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 07 Jan 2014 22:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Wed, 08 Jan 2014 10:00:09 GMT]]></title><description><![CDATA[<p>Erstmal vielen Dank,<br />
wir sind angehende Wirtschaftsingenieure :)das erklärt glaub ich schon einiges...</p>
<p>Wenn das so schnell für euch geht könntet ihr ja eins Schreiben <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="😉"
    /><br />
da kann man sich bestimmt auch iwie auf eine Aufwandsentschädigung enigen.</p>
<p>wir sind hier nämlich am verzweifeln <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2375957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375957</guid><dc:creator><![CDATA[dariusrobert]]></dc:creator><pubDate>Wed, 08 Jan 2014 10:00:09 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Wed, 08 Jan 2014 12:18:43 GMT]]></title><description><![CDATA[<p>Von Karteikästchen und Kategorien mal abgesehen. Angenommen ihr habt alle Frgen in einem vector und jede Frage hat ein Gewicht:</p>
<p>Hier <a href="http://www.electricmonk.nl/log/2009/12/23/weighted-random-distribution/" rel="nofollow">http://www.electricmonk.nl/log/2009/12/23/weighted-random-distribution/</a> sind ein paar Vorschläge, wie man dann gewichtete Stichproben nehmen kann.</p>
<p>Mit C++11 bietet sich - wenn mich nicht alles täuscht - die discrete_distribution an.</p>
<p>Z.B.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;random&gt;
#include &lt;map&gt;
#include &lt;algorithm&gt;

// aus N3551:
std::default_random_engine&amp; global_urng(){
  static std::default_random_engine u{};
  return u;
}
// dto.
void randomize(){
  static std::random_device rd{};
  global_urng().seed(rd());
}

struct question{
  int id_;
  int w_; // weight
};

using qvec = std::vector&lt;question&gt;;

qvec::iterator get_next_question(qvec&amp; v){
  // alle mit 0 gewichtet oder v.empty()?
  if(std::all_of(begin(v), end(v), [](const question&amp; q){
	return q.w_==0;
      }))
    return end(v);
  // ein Vektor mit den Gewichten der einzelnen Fragen
  std::vector&lt;double&gt; weights(v.size());
  std::transform(begin(v), end(v), begin(weights), [](const question&amp; q){
      return static_cast&lt;double&gt;(q.w_);
    });
  std::discrete_distribution&lt;int&gt; dist{begin(weights), end(weights)};
  // jetzt eine Ziehung machen und den entsprechenden Iterator zurueckgeben
  return next(begin(v),(dist(global_urng())));
}

int main(){
  randomize();
  qvec questions = {
    {0,  0},
    {1,  5},
    {2, 20},
    {3, 20},
    {4, 50},
    {5, 50},
    {6, 20},
    {7, 20},
    {8,  5},
    {9,  0}
  };
  std::map&lt;int,int&gt; m;
  for(int i=0; i&lt; 10000; ++i){
    auto q = get_next_question(questions);
    if(q!=end(questions))
      m[q-&gt;id_]++;
  }
  for(const auto&amp; mm : m)
    std::cout &lt;&lt; mm.first &lt;&lt; &quot;: &quot; &lt;&lt; mm.second &lt;&lt; '\n';
}
</code></pre>
<p>Zeit um wenigstens ein wenig C++ zu lernen muss noch sein... <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>dariusrobert schrieb:</p>
<blockquote>
<p>wir sind angehende Wirtschaftsingenieure :)das erklärt glaub ich schon einiges...</p>
</blockquote>
<p>Nee, was soll das erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375977</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Wed, 08 Jan 2014 12:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Wed, 08 Jan 2014 12:57:50 GMT]]></title><description><![CDATA[<p>Furble Wurble schrieb:</p>
<blockquote>
<p>dariusrobert schrieb:</p>
<blockquote>
<p>wir sind angehende Wirtschaftsingenieure :)das erklärt glaub ich schon einiges...</p>
</blockquote>
<p>Nee, was soll das erklären?</p>
</blockquote>
<p>halb Wirtschaftler, halb Ingenieur, aber nichts richtig *duckundweg*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2375989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2375989</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Wed, 08 Jan 2014 12:57:50 GMT</pubDate></item><item><title><![CDATA[Reply to Semesterprojekt on Wed, 08 Jan 2014 15:59:20 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>Furble Wurble schrieb:</p>
<blockquote>
<p>dariusrobert schrieb:</p>
<blockquote>
<p>wir sind angehende Wirtschaftsingenieure :)das erklärt glaub ich schon einiges...</p>
</blockquote>
<p>Nee, was soll das erklären?</p>
</blockquote>
<p>halb Wirtschaftler, halb Ingenieur, aber nichts richtig *duckundweg*</p>
</blockquote>
<p>Zu kniestig, um Geld fürs Egineering auszugeben, aber zu ungenau, um ordentlich Wirtschaft zu betreiben <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="😃"
    /> *duckundhinterherrenn*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376031</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 08 Jan 2014 15:59:20 GMT</pubDate></item></channel></rss>