Frage zur Ausgabe



  • hallo Leute,
    ich habe eine Aufgabe,die ich zum Teil gelöst habe,aber bei der Aufgabenstellung es muss nur ausgeben wenn es sich nicht um ein leeres Objekt im Array handlet . ich füge das Programm zu .im voraus bedanke ich mich für eure Hilfe .
    #include<iostream>
    using namespace std;

    class cFunkMast{
    private://Eigenschaften der Klasse cFunkMast
    int Anzahl_Antennen;
    int Reichweite;
    double Hoehe;
    double geopos;
    public://Konstruktorn der Kalsse cFunkMast
    cFunkMast();//StandarKonstruktor Deklaration
    cFunkMast(int an_ant,int rw,double h,double gp);// Deklaration Konstruktor mit Parametern
    /* Funkmasten(int an_ant=0,int rw=0,double h=0.0,double gp=0.0){
    Anzahl_Antennen=an_ant;
    Reichweite=rw;
    Hoehe=h;
    geopos=gp;
    }*/
    ~cFunkMast();
    //Metoden der Klasse cFunkMast
    void print();
    };
    //Definition der Konstruktoren
    cFunkMast::cFunkMast(){
    Anzahl_Antennen=0;
    Reichweite=0;
    Hoehe=0.0;
    geopos=0.0;
    }
    cFunkMast::cFunkMast(int an_ant,int rw,double h,double gp){
    Anzahl_Antennen=an_ant;
    Reichweite=rw;
    Hoehe=h;
    geopos=gp;
    }
    cFunkMast::~cFunkMast(){
    cout<<"Objekt wird zerstoert:"<<endl;
    }
    void cFunkMast::print(){//Methode Der klasse cFunkMast die für die Ausgaeb zuständig ist
    cout<<"|\t"<<Anzahl_Antennen<<"\t|\t"<< Reichweite<<"\t|\t"<<Hoehe<<"\t|\t"<<geopos<<"\t|"<<endl;
    }

    int main(){
    //Instanzierung und InitilaisierungsListe der 8 ersten Objekten
    cFunkMast objekt[100]={ cFunkMast(1,30,7.56,38.76),
    cFunkMast(3,23,7.56,38.76),
    cFunkMast(6,23,5.54,33.72),
    cFunkMast(8,30,7.87,32.76),
    cFunkMast(9,30,2.96,33.55),
    cFunkMast(5,30,23.76,37.436),
    cFunkMast(11,30,10.56,38.46),
    cFunkMast(21,30,9.56,38.06),
    };
    cout<<"\t*** -----\t\tFunkmasten-Register\t\t----- ***\t"<<endl;
    cout<<"| Antennenzahl | Leistung | Hoehe | Position |"<<endl;

    for(int i=0;i<100;i++){/*Hier muss was implementiert werden um die Ausgabe der befüllten Elmente auszugeben.d.h.ohne die Initialisierung des Konstruktors auszugeben*/
    objekt[i].print();
    }
    return 0;
    }



  • Ich würde ja statt eines Arrays einen std::vector verwenden - der weiß wenigstens, wieviele Elemente er hat.

    PS: cpp-Tags sind hilfreich für dich und die Leute, denen du hier deinen Code vorsetzt 😉



  • Edit:
    Hab das ganze mal auf Vordermann gebracht. Da war so einiges Verbesserungswürdig :).

    #include <iostream>
    #include <vector>
    
    class cFunkMast
    {
    public:
        cFunkMast()
            : m_numAntennas(0), m_range(0), m_height(0), m_geopos(0)
        {}
    
        cFunkMast(int an_ant,int rw,double h,double gp)
            : m_numAntennas(an_ant), m_range(rw), m_height(h), m_geopos(gp)
        {}
    
        ~cFunkMast()
        {}
    
        void print()
        {
            std::cout << "|\t" << m_numAntennas << "\t|\t" << m_range << "\t|\t" << m_height << "\t|\t" << m_geopos << std::endl;
        }
    
    private:
        int m_numAntennas;
        int m_range;
        double m_height;
        double m_geopos;
    };
    
    int main()
    {
        std::vector<cFunkMast> vec;
        vec.push_back(cFunkMast(1,30,7.56,38.76));
        vec.push_back(cFunkMast(3,23,7.56,38.76));
        // ....
    
        std::cout<<"\t***   -----\t\tFunkmasten-Register\t\t-----   ***\t" << std::endl;
        std::cout<<"| Antennenzahl  |    Leistung   |     Hoehe     |    Position   |" << std::endl;
    
        for ( int i=0;i<vec.size();i++)
        {
            vec[i].print();
        }
    }
    

Anmelden zum Antworten