<?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[Frage zur Projekt gestalltung?!]]></title><description><![CDATA[<p>Guten Abend allerseits,</p>
<p>ich habe mir vor genommen, jetzt viel mehr mit Klassen zu arbeiten, um so mein Quelltext besser zu gestalten. Nun will ich ein neues Projekt starten und zwar will ich eine Klasse basteln mit der ich ein Linien-Diagramm in ein Fenster malen kann.</p>
<p>Ich habe schon folgenden Ansatz gemacht (ich male mir meistens immer erst alles so als Skizze aufs Papier <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>So sollte das Diagramm ausschaun:</p>
<pre><code>(Fenster in das das Diagramm gezeichnet werden soll)
+---------------------------------------------------------+
|+--------------------------------++---------------------++
||      Titel des Diagramm        ||                     ||
|+--------------------------------+|                     ||
|                                  |                     ||
|   ^+----------------------------+|  Eineige Infos aus  ||
|   ||                            ||    dem Diagramm     ||
|   ||                            ||                     ||
|   ||                            ||                     ||
|   ||    Das Diagramm selbst     |+---------------------+|
|   ||                            |+---------------------+|
|   ||                            ||                     ||
|   |+----------------------------+|       Legende       ||
|   +-----------------------------&gt;|                     ||
|   (Achsen mit Einteilung)        |                     ||
|                                  +---------------------+|  
+---------------------------------------------------------+
</code></pre>
<p>Soweit so gut, es ist klar zu sehen was rein soll:<br />
<em>- Titel des Diagramms<br />
- Ein paar kleine Infos die man auf einen Blick sehen soll<br />
- Die Legende<br />
- Das Diagramm selber<br />
- Die Achsen, mit Einteilung</em></p>
<p>An dieser Stelle kommen mir doch aber schon einige Fragen:<br />
- Sollte ich eine große Klasse bilden, die ich mit allen Membern die ich benötige, füttere?</p>
<p><strong>oder</strong></p>
<p>- Sollte ich mehre &quot;kleine&quot; Klassen bilden, z.B. eine für das Ausrichten aller Rechtecke( also wie oben in der Skizze zu sehen ist: Titel, Legende ect. ), eine für das Neuberechnen der Einteilung, eine für die Legende, für die Infos, für den Title und schließlich für das Diagramm bild. Und letzt endlich erbt eine Klasse - sagen wir &quot;CLineChart&quot; - alle diese kleinen Klassen und arbeitet mit ihnen ?!</p>
<p>Also ganz ehrlich ich würde sehr gerne nach dem zweiten Verfahren arbeiten, aber ich kann mir im Moment noch nicht ganz vorstellen wie ich dann alles mit der &quot;CLineChart&quot; Klasse abarbeiten soll?!</p>
<p>Also ich hoffe ihr habt mein Problem etwas erkannt und könnt mir hier auch helfen, ich möchte das ganze auch soweit es geht Objekt orientiert gestalten.</p>
<p>Für eure Hilfe schon mal: Danke!</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200711/frage-zur-projekt-gestalltung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 07:10:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200711.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Dec 2007 19:00:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Tue, 18 Dec 2007 19:00:47 GMT]]></title><description><![CDATA[<p>Guten Abend allerseits,</p>
<p>ich habe mir vor genommen, jetzt viel mehr mit Klassen zu arbeiten, um so mein Quelltext besser zu gestalten. Nun will ich ein neues Projekt starten und zwar will ich eine Klasse basteln mit der ich ein Linien-Diagramm in ein Fenster malen kann.</p>
<p>Ich habe schon folgenden Ansatz gemacht (ich male mir meistens immer erst alles so als Skizze aufs Papier <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>So sollte das Diagramm ausschaun:</p>
<pre><code>(Fenster in das das Diagramm gezeichnet werden soll)
+---------------------------------------------------------+
|+--------------------------------++---------------------++
||      Titel des Diagramm        ||                     ||
|+--------------------------------+|                     ||
|                                  |                     ||
|   ^+----------------------------+|  Eineige Infos aus  ||
|   ||                            ||    dem Diagramm     ||
|   ||                            ||                     ||
|   ||                            ||                     ||
|   ||    Das Diagramm selbst     |+---------------------+|
|   ||                            |+---------------------+|
|   ||                            ||                     ||
|   |+----------------------------+|       Legende       ||
|   +-----------------------------&gt;|                     ||
|   (Achsen mit Einteilung)        |                     ||
|                                  +---------------------+|  
+---------------------------------------------------------+
</code></pre>
<p>Soweit so gut, es ist klar zu sehen was rein soll:<br />
<em>- Titel des Diagramms<br />
- Ein paar kleine Infos die man auf einen Blick sehen soll<br />
- Die Legende<br />
- Das Diagramm selber<br />
- Die Achsen, mit Einteilung</em></p>
<p>An dieser Stelle kommen mir doch aber schon einige Fragen:<br />
- Sollte ich eine große Klasse bilden, die ich mit allen Membern die ich benötige, füttere?</p>
<p><strong>oder</strong></p>
<p>- Sollte ich mehre &quot;kleine&quot; Klassen bilden, z.B. eine für das Ausrichten aller Rechtecke( also wie oben in der Skizze zu sehen ist: Titel, Legende ect. ), eine für das Neuberechnen der Einteilung, eine für die Legende, für die Infos, für den Title und schließlich für das Diagramm bild. Und letzt endlich erbt eine Klasse - sagen wir &quot;CLineChart&quot; - alle diese kleinen Klassen und arbeitet mit ihnen ?!</p>
<p>Also ganz ehrlich ich würde sehr gerne nach dem zweiten Verfahren arbeiten, aber ich kann mir im Moment noch nicht ganz vorstellen wie ich dann alles mit der &quot;CLineChart&quot; Klasse abarbeiten soll?!</p>
<p>Also ich hoffe ihr habt mein Problem etwas erkannt und könnt mir hier auch helfen, ich möchte das ganze auch soweit es geht Objekt orientiert gestalten.</p>
<p>Für eure Hilfe schon mal: Danke!</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422802</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Tue, 18 Dec 2007 19:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Tue, 18 Dec 2007 19:46:12 GMT]]></title><description><![CDATA[<p>Mein Bauchgefühl empfiehlt folgendes:</p>
<p>Eine Klasse &quot;Diagramm&quot; welche die <em>Daten</em> eines Diagrammes beschreibt. Also ein &quot;char* titel&quot;, ein &quot;int farbe&quot;, eine Funktion &quot;virtual float evaluateAtPoint( float point )&quot;, ...</p>
<p>Und dann ganz viele Klassen welche einen Teil eines Diagramm-Objektes anzeigen können.<br />
- TitelPanel, zeigt z.B. den String &quot;Diagramm -&gt; titel&quot; an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
- InfoPanel<br />
- DiagrammPanel<br />
- ...</p>
<p>Schlussendlich ein &quot;FensterPanel&quot; welches alles zusammenkittet. Nicht durch Vererbung, sondern durch ganz einfach Referenzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422819</guid><dc:creator><![CDATA[JBeni]]></dc:creator><pubDate>Tue, 18 Dec 2007 19:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Tue, 18 Dec 2007 20:33:26 GMT]]></title><description><![CDATA[<p>also es scheint mir des du willst das ich meine zweiten vorschlag nehme nur rueckwerts ausuebe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422838</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Tue, 18 Dec 2007 20:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Tue, 18 Dec 2007 21:28:24 GMT]]></title><description><![CDATA[<p>So kann man es auch sagen <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="🤡"
    /></p>
<p>Ich weiss nicht wie gut du programmierst, wenn dir das also alles zu trivial vorkommt, dann wirf mir ein Keks nach...</p>
<p>Folgende zwei Dinge sind IMHO für dein Problem wichtig:<br />
- Trennung zwischen Daten und Darstellung, am Besten wäre es, wenn die Daten nicht wissen wie und wo sie dargestellt werden (das erhöht schlussendlich die Übersicht).<br />
- Komposition anstelle von Vererbung, ist in diesem Fall ja auch irgendwie logisch: ein Fenster <em>hat</em> einen Titel und eine Legende, aber es <em>ist nicht</em> ein Titel und eine Legende.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422863</guid><dc:creator><![CDATA[JBeni]]></dc:creator><pubDate>Tue, 18 Dec 2007 21:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Tue, 18 Dec 2007 21:45:17 GMT]]></title><description><![CDATA[<p>aber wieso sollte ich dann extra noch eine klasse schreiben, die dafuer zustaendig ist den Titel anzuzeigen?<br />
Dnn könnte ich doch genauso gut in der Klasse Diagramm eine Methode dafuer schreiben?, womit wir dann wieder bei meiner ersten Variante sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422866</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Tue, 18 Dec 2007 21:45:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Tue, 18 Dec 2007 22:56:40 GMT]]></title><description><![CDATA[<p>Für ein derart kleines Programm ist es vielleicht übertrieben, überhaupt OOP anzuwenden. Aber du wolltest es ja mal ausprobieren <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>Wenn du nur ein Element darstellen müsstest, würde ich dir recht geben. Aber ich zähle bereits jetzt mindestens 5 Dinge die du zeichnen willst.<br />
- Einiges davon wird sich nicht in 10 Zeilen Code unterbringen lassen. Wenn du alles in eine Klasse quetschst, wird es dann bald unübersichtlich.<br />
- Es macht nichts, kleine Klassen zu haben. Solange eine Klasse etwas neues macht, hat sie eine Existenzberechtigung.<br />
- Und du willst das wohl auch noch irgendwie ausrichten (so dass die Panels sich nicht gegenseitig überlagern), da ist eine Abstraktion &quot;ordne Rechtecke an&quot; anstelle von &quot;Ordne A, B, C, D, E-Panels an&quot; wohl passend. Mit ein bisschen Vererbung und mehreren Klassen ist das kein Problem.<br />
- Und es ist eine gute Übung</p>
<p>Du könntest z.B. das TitelPanel, LegendenPanel, ... von einer Basisklasse &quot;Panel&quot; ableiten, und in Panel definierst du Dinge wie Position und Grösse.</p>
<p>Codemässig würdest du das folgendermassen benutzen :</p>
<pre><code class="language-cpp">class Panel{
  int x, y, width, height;
  Diagramm* diagramm;
}
class TitelPanel : Panel{...}
class LegendePanel : Panel{...}
</code></pre>
<pre><code class="language-cpp">// das Diagramm wird irgendwann mal definiert
Diagramm* diagramm = ...
// die Panels herstellen
Panel* titel = new TitelPanel();
Panel* legende = new LegendePanel();
...
// Die Panels verteilen
titel-&gt;setLocation( 0, 0 );
titel-&gt;setSize( 100, 20 );
legende-&gt;setLocation( 100, 50 );
legende-&gt;setSize( 50, 10 );

...
// Panels sagen, was sie anzuzeigen haben
titel-&gt;setDiagramm( diagramm );
legende-&gt;setDiagramm( diagramm );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1422886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422886</guid><dc:creator><![CDATA[JBeni]]></dc:creator><pubDate>Tue, 18 Dec 2007 22:56:40 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Wed, 19 Dec 2007 05:30:50 GMT]]></title><description><![CDATA[<p>hmm hoert sich gut an ich werds mal ausprobieren.<br />
Eins noch zur Basis Klasse Panel. Ich würde dort eine Methode dri erstellen die das ausrichten der Rechtecke automatisch übernihmt, also der Benutzer gibts einen Prozentwert an wo auf dem Hauptfenster sich alles befinden soll und eine Funktionen, nennen wir sie halt AutoAdjusting( ), richtet dan bei Aufruf alles aus, logisch die kommt bei WM_SIZE bzw WM_SIZING rein.</p>
<p>oder</p>
<p>Sollte ich einfach nur eine Methode in der Basisklasse schreiben, die x, y, width, heigth des Rechtecks setzt und alle Daten ausserhalb der Klasse berechnet werden?</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422915</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 19 Dec 2007 05:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Wed, 19 Dec 2007 08:06:44 GMT]]></title><description><![CDATA[<p>Nimm die Variante, welche dir besser gefällt. IMHO sind beide Varianten gleichwertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422955</guid><dc:creator><![CDATA[JBeni]]></dc:creator><pubDate>Wed, 19 Dec 2007 08:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Projekt gestalltung?! on Wed, 19 Dec 2007 11:00:26 GMT]]></title><description><![CDATA[<p>Ich denke ich werde es erstmal mit der zweiten versuchen.</p>
<p>Meld mich dann sicher noch mal hier, wenn was unklar ist. Danke erst einmal.</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423050</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Wed, 19 Dec 2007 11:00:26 GMT</pubDate></item></channel></rss>