<?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[x Objekte erstellen - Wie??]]></title><description><![CDATA[<p>Ich arbeite grade mit einem Freund an einem Programm.<br />
Wir sind auf das Problem gestossen dass wir in einer Textdatei Informationen über mehrere Autos haben. Jede Zeile steht für ein Auto.<br />
Wir haben die Anzahl der Zeilen und somit die Anzahl der Autos ermittelt.</p>
<p>Jetzt müssen wir aber so viele Objekte erstellen, wie die Anzahl der Autos ist.<br />
Ziel ist es dass wir die ganzen Objekte irgendwie in einer verkretteten Liste abspeichern und von dort aus ein Auto löschen/editieren können.</p>
<p>Das Problem ist die speicherplatzreservierung für die Objekte und das einlesen der Objekte in die Verkettete Liste. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Wie sollen wir das lösen?</p>
<p>Hier mal unsere Basisclasse für die Autos (falls es Hilft):</p>
<pre><code class="language-cpp">class ClassCar
{
private:
    short int Status;
    float CostPerWeekDay;
    float CostPerWeekFinalDay;
    float FlatMileageRate;
    float BasicChargePerDay;
    char CarName[50];
    char CarBrand[50];

public:
    //Pointer use of List
    ClassCar *ptn;

    // Get.Set-&gt;Status
    float GetStatus()
    {   return(Status); }
    void SetStatus(float fkt_Status)
    {   Status = fkt_Status;    }

    // Get.Set-&gt;CostPerWeekDay
    float GetCostPerWeekDay()
    {   return(CostPerWeekDay); }
    void SetCostPerWeekDay(float fkt_CostPerWeekDay)
    {   CostPerWeekDay = fkt_CostPerWeekDay;    }

    // Get.Set-&gt;CostPerWeekFinalDay
    float GetCostPerWeekFinalDay()
    {   return(CostPerWeekFinalDay);    }
    void SetCostPerWeekFinalDay(float fkt_CostPerWeekFinalDay)
    {   CostPerWeekFinalDay = fkt_CostPerWeekFinalDay;  }

    // Get.Set-&gt;FlatMileageRate
    float GetFlatMileageRate()
    {   return(FlatMileageRate);    }
    void SetFlatMileageRate(float fkt_FlatMileageRate)
    {   FlatMileageRate = fkt_FlatMileageRate;  }

    // Get.Set-&gt;BasicChargePerDay
    float GetBasicChargePerDay()
    {   return(BasicChargePerDay);  }
    void SetBasicChargePerDay(float fkt_BasicChargePerDay)
    {   BasicChargePerDay = fkt_BasicChargePerDay;  }

    // Get.Set-&gt;CarName
    void SetCarName(void)
    {   printf(&quot;Type in the cars name: &quot;); gets(this-&gt;CarName);  }
    char * GetCarName(char *n)
    {   strcpy(n,CarName); return(CarName); }

    // Get.Set-&gt;CarBrand
    char * GetCarBrand(char *n)
    {   strcpy(n,CarBrand); return(CarBrand);   }

    // Write All Data on HDD
    void WriteToDisk()
    {   FILE * FilePointer;
        short int exists = 0;
        if((FilePointer = fopen(&quot;test.txt&quot;,&quot;r&quot;)) == NULL)
        {   exists++;   }

        FilePointer = fopen(&quot;test.txt&quot;,&quot;a+&quot;);
        //cout &lt;&lt; this-&gt;Status;
        if (exists == 0)
        {   fprintf(FilePointer, &quot;\n&quot;); }
        fprintf(FilePointer, &quot;%d,&quot;, Status);
        fprintf(FilePointer, &quot;%s,&quot;, CarName);
        fprintf(FilePointer, &quot;%s,&quot;, CarBrand);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekFinalDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, FlatMileageRate);
        fprintf(FilePointer, &quot;%.2f&quot;, BasicChargePerDay);
        fclose(FilePointer);

    }

    void InputCarsDetails(void)
    {
    cout &lt;&lt; &quot;Type in the Cars Brand: &quot;;
    gets(this-&gt;CarBrand);
    cout &lt;&lt; &quot;Type in the Cars Name: &quot;;
    cin &gt;&gt; this-&gt;CarName;
    cout &lt;&lt; &quot;Whats the Cost Per Weekday: &quot;;
    cin &gt;&gt; this-&gt;CostPerWeekDay;
    cout &lt;&lt; &quot;Whats the Cost Per Week Finalday: &quot;;
    cin &gt;&gt; this-&gt;CostPerWeekFinalDay;
    cout &lt;&lt; &quot;Whats the Basic Charge Per Day: &quot;;
    cin &gt;&gt; this-&gt;BasicChargePerDay;
    cout &lt;&lt; &quot;Whats the Flat Mileage Rate: &quot;;
    cin &gt;&gt; this-&gt;FlatMileageRate;
    cout &lt;&lt; &quot;Whats the &quot; &lt;&lt; this-&gt;CarBrand &lt;&lt; &quot; &quot; &lt;&lt;  this-&gt;CarName &lt;&lt; &quot; Status: &quot;;
    cin &gt;&gt; this-&gt;Status;
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/35476/x-objekte-erstellen-wie</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 18:22:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/35476.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Mar 2003 11:26:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to x Objekte erstellen - Wie?? on Sun, 16 Mar 2003 11:26:00 GMT]]></title><description><![CDATA[<p>Ich arbeite grade mit einem Freund an einem Programm.<br />
Wir sind auf das Problem gestossen dass wir in einer Textdatei Informationen über mehrere Autos haben. Jede Zeile steht für ein Auto.<br />
Wir haben die Anzahl der Zeilen und somit die Anzahl der Autos ermittelt.</p>
<p>Jetzt müssen wir aber so viele Objekte erstellen, wie die Anzahl der Autos ist.<br />
Ziel ist es dass wir die ganzen Objekte irgendwie in einer verkretteten Liste abspeichern und von dort aus ein Auto löschen/editieren können.</p>
<p>Das Problem ist die speicherplatzreservierung für die Objekte und das einlesen der Objekte in die Verkettete Liste. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Wie sollen wir das lösen?</p>
<p>Hier mal unsere Basisclasse für die Autos (falls es Hilft):</p>
<pre><code class="language-cpp">class ClassCar
{
private:
    short int Status;
    float CostPerWeekDay;
    float CostPerWeekFinalDay;
    float FlatMileageRate;
    float BasicChargePerDay;
    char CarName[50];
    char CarBrand[50];

public:
    //Pointer use of List
    ClassCar *ptn;

    // Get.Set-&gt;Status
    float GetStatus()
    {   return(Status); }
    void SetStatus(float fkt_Status)
    {   Status = fkt_Status;    }

    // Get.Set-&gt;CostPerWeekDay
    float GetCostPerWeekDay()
    {   return(CostPerWeekDay); }
    void SetCostPerWeekDay(float fkt_CostPerWeekDay)
    {   CostPerWeekDay = fkt_CostPerWeekDay;    }

    // Get.Set-&gt;CostPerWeekFinalDay
    float GetCostPerWeekFinalDay()
    {   return(CostPerWeekFinalDay);    }
    void SetCostPerWeekFinalDay(float fkt_CostPerWeekFinalDay)
    {   CostPerWeekFinalDay = fkt_CostPerWeekFinalDay;  }

    // Get.Set-&gt;FlatMileageRate
    float GetFlatMileageRate()
    {   return(FlatMileageRate);    }
    void SetFlatMileageRate(float fkt_FlatMileageRate)
    {   FlatMileageRate = fkt_FlatMileageRate;  }

    // Get.Set-&gt;BasicChargePerDay
    float GetBasicChargePerDay()
    {   return(BasicChargePerDay);  }
    void SetBasicChargePerDay(float fkt_BasicChargePerDay)
    {   BasicChargePerDay = fkt_BasicChargePerDay;  }

    // Get.Set-&gt;CarName
    void SetCarName(void)
    {   printf(&quot;Type in the cars name: &quot;); gets(this-&gt;CarName);  }
    char * GetCarName(char *n)
    {   strcpy(n,CarName); return(CarName); }

    // Get.Set-&gt;CarBrand
    char * GetCarBrand(char *n)
    {   strcpy(n,CarBrand); return(CarBrand);   }

    // Write All Data on HDD
    void WriteToDisk()
    {   FILE * FilePointer;
        short int exists = 0;
        if((FilePointer = fopen(&quot;test.txt&quot;,&quot;r&quot;)) == NULL)
        {   exists++;   }

        FilePointer = fopen(&quot;test.txt&quot;,&quot;a+&quot;);
        //cout &lt;&lt; this-&gt;Status;
        if (exists == 0)
        {   fprintf(FilePointer, &quot;\n&quot;); }
        fprintf(FilePointer, &quot;%d,&quot;, Status);
        fprintf(FilePointer, &quot;%s,&quot;, CarName);
        fprintf(FilePointer, &quot;%s,&quot;, CarBrand);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekFinalDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, FlatMileageRate);
        fprintf(FilePointer, &quot;%.2f&quot;, BasicChargePerDay);
        fclose(FilePointer);

    }

    void InputCarsDetails(void)
    {
    cout &lt;&lt; &quot;Type in the Cars Brand: &quot;;
    gets(this-&gt;CarBrand);
    cout &lt;&lt; &quot;Type in the Cars Name: &quot;;
    cin &gt;&gt; this-&gt;CarName;
    cout &lt;&lt; &quot;Whats the Cost Per Weekday: &quot;;
    cin &gt;&gt; this-&gt;CostPerWeekDay;
    cout &lt;&lt; &quot;Whats the Cost Per Week Finalday: &quot;;
    cin &gt;&gt; this-&gt;CostPerWeekFinalDay;
    cout &lt;&lt; &quot;Whats the Basic Charge Per Day: &quot;;
    cin &gt;&gt; this-&gt;BasicChargePerDay;
    cout &lt;&lt; &quot;Whats the Flat Mileage Rate: &quot;;
    cin &gt;&gt; this-&gt;FlatMileageRate;
    cout &lt;&lt; &quot;Whats the &quot; &lt;&lt; this-&gt;CarBrand &lt;&lt; &quot; &quot; &lt;&lt;  this-&gt;CarName &lt;&lt; &quot; Status: &quot;;
    cin &gt;&gt; this-&gt;Status;
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/258956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/258956</guid><dc:creator><![CDATA[Peter Piksa]]></dc:creator><pubDate>Sun, 16 Mar 2003 11:26:00 GMT</pubDate></item><item><title><![CDATA[Reply to x Objekte erstellen - Wie?? on Sun, 16 Mar 2003 12:41:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Original erstellt von &lt;Peter Piksa&gt;:<br />
<strong>Ziel ist es dass wir die ganzen Objekte irgendwie in einer verkretteten Liste abspeichern und von dort aus ein Auto löschen/editieren können.</strong></p>
</blockquote>
<p>Wieso dann keine 'std::list&lt;Auto&gt; autos' erstellen und dann da die Datei einlesen. Oder eben alles von Hand machen, was auch nicht wirklich viel mehr Tipperei ist.</p>
<p>[Vor jede Klasse 'Class' zu schreiben ist ziemlicher Unfug, weil 'class' steht ja genau ein Wort davor :).]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/258957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/258957</guid><dc:creator><![CDATA[Daniel E.]]></dc:creator><pubDate>Sun, 16 Mar 2003 12:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to x Objekte erstellen - Wie?? on Wed, 19 Oct 2005 20:46:13 GMT]]></title><description><![CDATA[<p>wenn ihr die anzahl der einträge bereits habt, dann könnt ihr speicher für die objekte so anlegen:</p>
<pre><code>ptn=new ClassCar[n];
</code></pre>
<p>das erzeugt einen zeiger auf ein c-array aus n elementen vom typ ClassCar. den speicher könnt ihr bei bedarf mit</p>
<pre><code>delete[] ptn;
</code></pre>
<p>wieder freigeben.</p>
<p>besser wäre hier aber wirklich ein stl-vector (falls das für die schule sein sollte und ihr vectoren bereits durchgenommen habt ;))</p>
<p>PS: euer code für WriteToDisk() ist ein bißchen haarig. besser wäre es so:</p>
<pre><code class="language-cpp">void WriteToDisk()
    if(FILE *FilePointer = fopen(&quot;test.txt&quot;,&quot;a&quot;))
    // warum wollt ihr denn nicht, daß die datei neu erzeugt wird,
    // falls sie noch nicht existiert???
    {
        fprintf(FilePointer, &quot;%d,&quot;, Status);
        fprintf(FilePointer, &quot;%s,&quot;, CarName);
        fprintf(FilePointer, &quot;%s,&quot;, CarBrand);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekFinalDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, FlatMileageRate);
        fprintf(FilePointer, &quot;%.2f&quot;, BasicChargePerDay);

        // das zeilenende wird natürlich ans zeilenende gesetzt ;)
        fprintf(FilePointer, &quot;\n&quot;);

        fclose(FilePointer);
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/896577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896577</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Wed, 19 Oct 2005 20:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to x Objekte erstellen - Wie?? on Thu, 20 Oct 2005 05:43:46 GMT]]></title><description><![CDATA[<p>Konfusius schrieb:</p>
<blockquote>
<p>PS: euer code für WriteToDisk() ist ein bißchen haarig. besser wäre es so:</p>
<pre><code class="language-cpp">void WriteToDisk()
    if(FILE *FilePointer = fopen(&quot;test.txt&quot;,&quot;a&quot;))
    // warum wollt ihr denn nicht, daß die datei neu erzeugt wird,
    // falls sie noch nicht existiert???
    {
        fprintf(FilePointer, &quot;%d,&quot;, Status);
        fprintf(FilePointer, &quot;%s,&quot;, CarName);
        fprintf(FilePointer, &quot;%s,&quot;, CarBrand);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, CostPerWeekFinalDay);
        fprintf(FilePointer, &quot;%.2f,&quot;, FlatMileageRate);
        fprintf(FilePointer, &quot;%.2f&quot;, BasicChargePerDay);

        // das zeilenende wird natürlich ans zeilenende gesetzt ;)
        fprintf(FilePointer, &quot;\n&quot;);

        fclose(FilePointer);
    }
}
</code></pre>
</blockquote>
<p>Und den könnte man sogar noch zu einer einzelnen Anweisung zusammenbauen:</p>
<pre><code class="language-cpp">fprintf(FilePointer,&quot;%d,%s,%s,%.2f,%.2f,%.2f,%.2f\n&quot;, Status, CarName, CostPerWeekDay, CostPerWeekFinalDay, FlatMileageRate, BasicChargePerDay);
</code></pre>
<p>Oder du verwendest gleich fstreams für die Ausgabe:</p>
<pre><code class="language-cpp">ofstream ofile(&quot;test.txt&quot;,ios::append/*??*/)
if(ofile)
  ofile&lt;&lt;Status&lt;&lt;&quot;,&quot;&lt;&lt;CarName&lt;&lt; ... &lt;&lt; endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/896688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/896688</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 20 Oct 2005 05:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to x Objekte erstellen - Wie?? on Fri, 21 Oct 2005 08:09:21 GMT]]></title><description><![CDATA[<p>Leute...der Thread ist uralt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/897422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/897422</guid><dc:creator><![CDATA[...........]]></dc:creator><pubDate>Fri, 21 Oct 2005 08:09:21 GMT</pubDate></item></channel></rss>