<?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[Projekt Fuhrparkverwaltung]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich muss bis Dienstag ein Projekt realisieren und habe leider keine Ahnung von C++. Es geht dabei um eine Fuhrparkverwaltung bestehend aus Fahraufträgen, Fahrzeugen und Fahrern. Fahrauftrag soll die Basisklasse sein und die anderen beiden Klassen sollen von dieser abgeleitet sein.</p>
<p>Attribute:<br />
Fahrzeug: ID, Marke, Modell, erforderliche Führerscheinklasse, Datum der nächsten Hauptuntersuchung, Zuladung, Fahrzeugzustand, Reparaturauftrag(bool)<br />
Fahrer: ID, Verfügbarkeit(bool), Führerscheinklasse, Vorname, Name</p>
<p>Und nun das wichtige:<br />
Ein Fahrzeug kann einem Fahrer nur zugeordnet werden, wenn die erforderliche Füherscheinklasse beim Fahrer vorhanden ist.<br />
Ein Fahrer kann einem Fahrauftrag nur zugeordnet werden, wenn der Fahrer verfügbar ist und die maximale Zuladung des Fahrzeugs nicht überschritten wurde.</p>
<p>Bisher hab ich folgendes gemacht:<br />
4 Klassen angelegt: CFahrauftrag, CFahrzeug, CFahrer, CMain</p>
<p>in der CMain habe ich ein Menü generiert, das beim Auswählen der einzelnen Menüpunkte nur die Methoden aus den anderen Klassen aufrufen soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
#include &lt;string&gt;
#include &quot;CFahrzeug.h&quot;
#include &quot;CFahrauftrag.h&quot;
#include &quot;CFahrer.h&quot;

using namespace std;

int main()
{
	//Objekte der drei Hauptklassen erstellen
	CFahrzeug fahrzeug = CFahrzeug();
	CFahrauftrag auftrag = CFahrauftrag();
	CFahrer fahrer = CFahrer();

	//Eingabestring
	string eingabe;

	// while(true)
	{
		system(&quot;cls&quot;);
		cout &lt;&lt; &quot;Menue:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;----------------------------------------&quot; &lt;&lt; endl;

		cout &lt;&lt; &quot;Fahrauftraege:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;1. Anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;2. Hinzufuegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;3. Zugehoerigen Fahrer festlegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;4. Bearbeiten&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Fahrzeuge:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;5. Anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;6. Verfuegbare anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;7. Tuev-Status anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;8. Tuev-Pruefung veranlassen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;9. Reparaturauftrag veranlassen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;10. Hinzufuegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;11. Bearbeiten&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Fahrer:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;12. Anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;13. Verfuegbare anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;14. Hinzufuegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;15. Zugehoeriges Fahrzeug festlegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;16. Bearbeiten&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Allgemein:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;17. Daten aus Textdatei lesen (oeffnen)&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;18. Daten in Textdatei schreiben (speichern)&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;b. Beenden&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;----------------------------------------&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Bitte Menuepunkt auswaehlen: &quot;;
		cin &gt;&gt; eingabe;

		//Auswertung der Eingabe
		switch(eingabe[0])
		{	
			//1. Alle Fahrauftraege anzeigen
			case '1':
				// auftrag.zeigeListe();
				break;

			//2. Fahrauftrag hinzufügen
			case '2':
				// auftrag.speicherNeuenDatensatz();
				break;

			//3. Zugehoerigen Fahrer festlegen
			case '3':
				// auftrag.setzeFahrer(fahrer.getFahrerListe());
				break;

			//4. Fahrauftrag bearbeiten
			case '4':
				// auftrag.aenderFahrauftragZustand();
				break;

			//5. Alle Fahrzeuge anzeigen
			case '5':
				fahrzeug.zeigeListe();
				break;

			//6. Verfuegbare Fahrzeuge anzeigen
			case '6':
				// fahrzeug.zeigeVerfuegbareFahrzeuge();
				break;

			//7. Tuev-Status anzeigen
			case '7':
				// fahrzeug.zeigeTuevStatus();
				break;

			//8. Tuev-Pruefung veranlassen
			case '8':
				// fahrzeug.veranlasseTuevPruefung();
				break;

			//9. Reparaturauftrag veranlassen
			case '9':
				// fahrzeug.veranlasseReparatur();
				break;

			//10. Fahrzeug hinzufügen
			case '10':
				// fahrzeug.speicherNeuenDatensatz();
				break;

			//11. Fahrzeug bearbeiten
			case '11':
				// fahrzeug.bearbeiteFahrzeug();
				break;

			//12. Alle Fahrer anzeigen
			case '12':
				// fahrer.zeigeListe();
				break;

			//13. Verfuegbare Fahrer anzeigen
			case '13':
				// fahrer.zeigeVerfuegbareFahrer();
				break;

			//14. Fahrer hinzufuegen
			case '14':
				// fahrer.speicherNeuenDatensatz();
				break;

			//15. Zugehoeriges Fahrzeug festlegen
			case '15':
				// fahrer.zuweisungAuftrag(fahrer.getFahrauftragListe());
				break;

			//16. Fahrer bearbeiten
			case '16':
				// fahrer.bearbeiteFahrer();
				break;

			//17. Daten aus Textdatei lesen (oeffnen)
			case '17':
				// lesen();
				break;

			//18. Daten in Textdatei schreiben (speichern)
			case '18':
				// schreiben();
				break;

			//b. Beenden
			case 'b':
				system(&quot;cls&quot;);
				cout &lt;&lt; &quot;Vielen Dank fuer die Benutzung dieses Programms&quot; &lt;&lt; endl &lt;&lt; endl;
				break;	
		}
	}
}
</code></pre>
<p>Hier ist auch schon mein erstes Problem. Wie kann ich beim Beenden das Konsolenfenster schließen?</p>
<p>Mein zweites Problem ist etwas größer. Wir sollen den Code ja möglichst komplett in C++ schreiben. Die Daten der Fahraufträge, Fahrzeuge und Fahrer sollen in 3 Textdateien gespeichert werden.<br />
Ich habe mir also überlegt einen Vector zu benutzen, da das auch viele meiner Kollegen gemacht haben.</p>
<p>Meine erste Aufgabe ist jetzt, die Daten aus der Textdatei zu laden (ich habe selbst welche reingeschrieben / Die Attibute sind durch ; getrennt).<br />
Diese sollen in einen Vektor geladen werden und später wieder formatiert ausgegeben werden. Auch will ich sie einzeln manipulieren können.</p>
<p>Daszu habe ich mir folgendes überlegt: (steht in der CFahrzeug)</p>
<pre><code class="language-cpp">//DatenstromObjekt erstellen (Datei öffnen)
	ifstream myfile;
	myfile.open (&quot;fahrzeuge.txt&quot;);

	//Datei Zeilenweise auslesen und Datensätze in Liste schreiben
	while(!myfile.eof())
	{
		//Zeile einlesen
		getline(myfile, zeile);

		CFahrzeug *auto1 = new CFahrzeug();
		// Erstes Trennzeichen suchen
		size_t i = zeile.find(&quot;;&quot;);

		auto1-&gt;fahrzeugId = zeile.substr(0, i);
//Schleife verlassen, wenn Ende erreicht
		if (zeile.size() == 0)
			break;

		//Objekt in Liste speichern
		FahrzeugVektor.push_back(auto1);
</code></pre>
<p>Wie kann ich das realisieren. Wahrscheinlich nicht mit Adressen, da das Zeug ja später an einer anderen Stelle im Hauptspicher stehen kann. Wie kann ich in einer Schleife die Attribute in den Vektor einlesen und nachher wieder darauf zugreifen.</p>
<p>Ich wär über ein wenig Hilfe sehr dankbar!</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175434/projekt-fuhrparkverwaltung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 04:00:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175434.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Mar 2007 13:36:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Projekt Fuhrparkverwaltung on Sat, 10 Mar 2007 13:39:35 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich muss bis Dienstag ein Projekt realisieren und habe leider keine Ahnung von C++. Es geht dabei um eine Fuhrparkverwaltung bestehend aus Fahraufträgen, Fahrzeugen und Fahrern. Fahrauftrag soll die Basisklasse sein und die anderen beiden Klassen sollen von dieser abgeleitet sein.</p>
<p>Attribute:<br />
Fahrzeug: ID, Marke, Modell, erforderliche Führerscheinklasse, Datum der nächsten Hauptuntersuchung, Zuladung, Fahrzeugzustand, Reparaturauftrag(bool)<br />
Fahrer: ID, Verfügbarkeit(bool), Führerscheinklasse, Vorname, Name</p>
<p>Und nun das wichtige:<br />
Ein Fahrzeug kann einem Fahrer nur zugeordnet werden, wenn die erforderliche Füherscheinklasse beim Fahrer vorhanden ist.<br />
Ein Fahrer kann einem Fahrauftrag nur zugeordnet werden, wenn der Fahrer verfügbar ist und die maximale Zuladung des Fahrzeugs nicht überschritten wurde.</p>
<p>Bisher hab ich folgendes gemacht:<br />
4 Klassen angelegt: CFahrauftrag, CFahrzeug, CFahrer, CMain</p>
<p>in der CMain habe ich ein Menü generiert, das beim Auswählen der einzelnen Menüpunkte nur die Methoden aus den anderen Klassen aufrufen soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
#include &lt;string&gt;
#include &quot;CFahrzeug.h&quot;
#include &quot;CFahrauftrag.h&quot;
#include &quot;CFahrer.h&quot;

using namespace std;

int main()
{
	//Objekte der drei Hauptklassen erstellen
	CFahrzeug fahrzeug = CFahrzeug();
	CFahrauftrag auftrag = CFahrauftrag();
	CFahrer fahrer = CFahrer();

	//Eingabestring
	string eingabe;

	// while(true)
	{
		system(&quot;cls&quot;);
		cout &lt;&lt; &quot;Menue:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;----------------------------------------&quot; &lt;&lt; endl;

		cout &lt;&lt; &quot;Fahrauftraege:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;1. Anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;2. Hinzufuegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;3. Zugehoerigen Fahrer festlegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;4. Bearbeiten&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Fahrzeuge:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;5. Anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;6. Verfuegbare anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;7. Tuev-Status anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;8. Tuev-Pruefung veranlassen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;9. Reparaturauftrag veranlassen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;10. Hinzufuegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;11. Bearbeiten&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Fahrer:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;12. Anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;13. Verfuegbare anzeigen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;14. Hinzufuegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;15. Zugehoeriges Fahrzeug festlegen&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;16. Bearbeiten&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Allgemein:&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;17. Daten aus Textdatei lesen (oeffnen)&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;18. Daten in Textdatei schreiben (speichern)&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;b. Beenden&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;----------------------------------------&quot; &lt;&lt; endl &lt;&lt; endl;

		cout &lt;&lt; &quot;Bitte Menuepunkt auswaehlen: &quot;;
		cin &gt;&gt; eingabe;

		//Auswertung der Eingabe
		switch(eingabe[0])
		{	
			//1. Alle Fahrauftraege anzeigen
			case '1':
				// auftrag.zeigeListe();
				break;

			//2. Fahrauftrag hinzufügen
			case '2':
				// auftrag.speicherNeuenDatensatz();
				break;

			//3. Zugehoerigen Fahrer festlegen
			case '3':
				// auftrag.setzeFahrer(fahrer.getFahrerListe());
				break;

			//4. Fahrauftrag bearbeiten
			case '4':
				// auftrag.aenderFahrauftragZustand();
				break;

			//5. Alle Fahrzeuge anzeigen
			case '5':
				fahrzeug.zeigeListe();
				break;

			//6. Verfuegbare Fahrzeuge anzeigen
			case '6':
				// fahrzeug.zeigeVerfuegbareFahrzeuge();
				break;

			//7. Tuev-Status anzeigen
			case '7':
				// fahrzeug.zeigeTuevStatus();
				break;

			//8. Tuev-Pruefung veranlassen
			case '8':
				// fahrzeug.veranlasseTuevPruefung();
				break;

			//9. Reparaturauftrag veranlassen
			case '9':
				// fahrzeug.veranlasseReparatur();
				break;

			//10. Fahrzeug hinzufügen
			case '10':
				// fahrzeug.speicherNeuenDatensatz();
				break;

			//11. Fahrzeug bearbeiten
			case '11':
				// fahrzeug.bearbeiteFahrzeug();
				break;

			//12. Alle Fahrer anzeigen
			case '12':
				// fahrer.zeigeListe();
				break;

			//13. Verfuegbare Fahrer anzeigen
			case '13':
				// fahrer.zeigeVerfuegbareFahrer();
				break;

			//14. Fahrer hinzufuegen
			case '14':
				// fahrer.speicherNeuenDatensatz();
				break;

			//15. Zugehoeriges Fahrzeug festlegen
			case '15':
				// fahrer.zuweisungAuftrag(fahrer.getFahrauftragListe());
				break;

			//16. Fahrer bearbeiten
			case '16':
				// fahrer.bearbeiteFahrer();
				break;

			//17. Daten aus Textdatei lesen (oeffnen)
			case '17':
				// lesen();
				break;

			//18. Daten in Textdatei schreiben (speichern)
			case '18':
				// schreiben();
				break;

			//b. Beenden
			case 'b':
				system(&quot;cls&quot;);
				cout &lt;&lt; &quot;Vielen Dank fuer die Benutzung dieses Programms&quot; &lt;&lt; endl &lt;&lt; endl;
				break;	
		}
	}
}
</code></pre>
<p>Hier ist auch schon mein erstes Problem. Wie kann ich beim Beenden das Konsolenfenster schließen?</p>
<p>Mein zweites Problem ist etwas größer. Wir sollen den Code ja möglichst komplett in C++ schreiben. Die Daten der Fahraufträge, Fahrzeuge und Fahrer sollen in 3 Textdateien gespeichert werden.<br />
Ich habe mir also überlegt einen Vector zu benutzen, da das auch viele meiner Kollegen gemacht haben.</p>
<p>Meine erste Aufgabe ist jetzt, die Daten aus der Textdatei zu laden (ich habe selbst welche reingeschrieben / Die Attibute sind durch ; getrennt).<br />
Diese sollen in einen Vektor geladen werden und später wieder formatiert ausgegeben werden. Auch will ich sie einzeln manipulieren können.</p>
<p>Daszu habe ich mir folgendes überlegt: (steht in der CFahrzeug)</p>
<pre><code class="language-cpp">//DatenstromObjekt erstellen (Datei öffnen)
	ifstream myfile;
	myfile.open (&quot;fahrzeuge.txt&quot;);

	//Datei Zeilenweise auslesen und Datensätze in Liste schreiben
	while(!myfile.eof())
	{
		//Zeile einlesen
		getline(myfile, zeile);

		CFahrzeug *auto1 = new CFahrzeug();
		// Erstes Trennzeichen suchen
		size_t i = zeile.find(&quot;;&quot;);

		auto1-&gt;fahrzeugId = zeile.substr(0, i);
//Schleife verlassen, wenn Ende erreicht
		if (zeile.size() == 0)
			break;

		//Objekt in Liste speichern
		FahrzeugVektor.push_back(auto1);
</code></pre>
<p>Wie kann ich das realisieren. Wahrscheinlich nicht mit Adressen, da das Zeug ja später an einer anderen Stelle im Hauptspicher stehen kann. Wie kann ich in einer Schleife die Attribute in den Vektor einlesen und nachher wieder darauf zugreifen.</p>
<p>Ich wär über ein wenig Hilfe sehr dankbar!</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242844</guid><dc:creator><![CDATA[cHucKy51]]></dc:creator><pubDate>Sat, 10 Mar 2007 13:39:35 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt Fuhrparkverwaltung on Sun, 11 Mar 2007 11:22:59 GMT]]></title><description><![CDATA[<p>Kann mir keiner helfen? Ist wirklich dringend...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243252</guid><dc:creator><![CDATA[cHucKy51]]></dc:creator><pubDate>Sun, 11 Mar 2007 11:22:59 GMT</pubDate></item></channel></rss>