[Hilfe erbeten] Vektor einer Klasse --> PROBLEM GELÖST



  • Zum Gruße,

    im Zuge eines Programmierkurses sitze ich an einem Programm welches mich zu Verzweiflung treibt.

    Ziel des Programmes soll folgendes sein:

    Tankstellenprogramm
    ___________________

    Es soll ein Programm geschrieben werden welches nach einer Eingabe von n Tankstellen fragt. Um eine Tankstelle zu definieren gibt es 2 Werte:

    string Adresse
    float Benzinpreis

    die gemeinsam mit einer Eingabe() und Ausgabe() Funktion in einer Klasse Tankstelle definiert sind.

    Hier der Code des Programmes:

    tankstelle.h

    #include <iostream>
    #include <string>
    #include <vector>
    #include <fstream>
    using namespace std;
    
    class Tankstelle
    {
    	public:
    	string Adresse;
    	float Benzinpreis;
    
    	void Eingabe();
    	void Ausgabe();
    };
    

    tankstelleflt.cc (die Eingabe/Ausgabe Funktionen)

    #include<iostream>
    #include<string>
    #include<vector>
    #include<fstream>
    #include "tankstelle.h"
    using namespace std;
    
    void Tankstelle::Eingabe()
    {
    
    	cout<<"Geben Sie die Adresse ein: \n";
    	cin>>Adresse;
    
    	cout<<"Geben Sie den Benzinpreis der Tankstelle "<<Adresse<<" ein:\n";
    	cin>>Benzinpreis;
    
    	cout<<endl;
    
    }
    void Tankstelle::Ausgabe()
    {
    	cout<<Adresse<<" hat Preis: "<<Benzinpreis<<endl;
    }
    

    und das Hauptprogramm

    #include <iostream>
    #include <string>
    #include <vector>
    #include <fstream>
    #include "tankstelle.h"
    using namespace std;
    
    int main()
    {
    	int anzahl;
    	vector<Tankstelle> tankstellen;
    
    	cout<<"Wieviele Eingaben wollen Sie taetigen?\n";
    	cin>>anzahl;
    	tankstellen.resize(anzahl);
    
    	for(int i=1;i<anzahl+1;i++)
    	{
    		tankstellen.Adresse[i]; //???
    	}
    
    	for(int j=1;j<anzahl+1;j++)
    	{
    
    		tankstellen.Adresse[j](); //???
    	}
    	return 0;
    }
    

    In diesem Hauptprogramm liegt mein Problem an dem ich ettlicheStunden zehre.
    Wir sollten die Klasse Tankstelle durch einen Vektor definieren. Nur weiss ich leider nicht wie ich nun weiter vorgehen soll um die Zielstellung zu erfüllen.

    Könnte mir einer helfen das Programm lauffähig zu machen? Ich verzweifele langsam und mir gehen die Ideen aus.

    LG
    Matar



  • So z.B.:

    for(int i=0; i < tankstellen.size(); ++i)
    {
        tankstellen[i].Eingabe();
    }
    


  • Danke für die schnelle Antwort, ich teste es fix 🙂

    EDIT:

    Ich fass es nicht! Es klappt, Heureka.
    Ich habe unzählige Varianten probiert .. u.a. auch

    tankstelle.Eingabe()
    

    hab nur immer [i] vergessen. Ich kann dir nicht genug danken!

    LG
    Matar



  • oder so

    #include <iostream>
    #include <string>
    #include <vector>
    #include <fstream>
    using namespace std;
    
    class Tankstelle
    {
        public:
        string Adresse;
        float Benzinpreis;
    
        void Eingabe();
        void Ausgabe();
    };
    
    void Tankstelle::Eingabe()
    {
    
        cout<<"Geben Sie die Adresse ein: \n";
        cin>>Adresse;
    
        cout<<"Geben Sie den Benzinpreis der Tankstelle "<<Adresse<<" ein:\n";
        cin>>Benzinpreis;
    
        cout<<endl;
    
    }
    void Tankstelle::Ausgabe()
    {
        cout<<Adresse<<" hat Preis: "<<Benzinpreis<<endl;
    }
    
    int main()
    {
        int anzahl;
        vector<Tankstelle> tankstellen;
    
        cout<<"Wieviele Eingaben wollen Sie taetigen?\n";
        cin>>anzahl;
        tankstellen.resize(anzahl);
    
        for(int i=0;i<anzahl;i++)
        {
            tankstellen[i].Adresse = "daheim"; //???
        }
        for(int i=0;i<anzahl;i++)
        {
            cout<<tankstellen[i].Adresse<<endl; //???
        }
    
        return 0;
    
    }
    


  • Auch dir Firefighter gilt meiin herzlichster Dank!

    LG
    Matar


Anmelden zum Antworten