Programm richtig??



  • Hi, ich habe mir jetzt das Thema Listen angeeignet und wollte wissen ob man dieses Programm als Listenprogramm bezeichnen kann und ob es noch Verbesserungsvorschläge gibt???

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class CListe
    {
    public:
    	char	   Name[50];
    	CListe*  next;
    	void	   Eingabe();
    	void	   Ausgabe();
    };
    
    void CListe::Eingabe()
    {
    	cout<<"Bitte Namen eingeben: ";
    	cin>>Name;
    }
    
    void CListe::Ausgabe()
    {
    	cout<<"Die eingegebenen Namen: "<<Name<<endl;
    }
    
    int main()
    {
    	CListe* neu;
    	neu=new CListe;
    	neu->Eingabe();
    	neu->next;
    	neu->next=new CListe;
    	neu->next->Eingabe();
    	neu->next->next=new CListe;
    	neu->next->next->Eingabe();
    	neu->next->next->Ausgabe();
    	delete neu->next->next;
    	neu->next->Ausgabe();
    	delete neu->next;
    	neu->Ausgabe();
    	delete neu;
    	return 0;
    }
    

    Danke im voraus.... 😉 😉 😉



  • Du hast Eingabe- und Ausgabemethoden für deine Klasse.
    Zeit, die verwalteten Daten (Name) nach außen hin abzusichern. (nicht public)



  • Danke, habe ich jetzt gemacht. Gäbe es noch mehr Verbesserungsvorschläge, bezüglich der main Funktion??



  • deine klasse sollte Knoten heißen und da muß noch ne klasse Liste drumherum.

    class Liste{
       Knoten* anfang;
       ...
    };
    


  • TheBest schrieb:

    Danke, habe ich jetzt gemacht. Gäbe es noch mehr Verbesserungsvorschläge, bezüglich der main Funktion??

    int main() 
    { 
        CListe neu;
        neu.Eingabe();
        neu.Eingabe();
        neu.Eingabe();
        while(!neu.IstLeer()){
           neu.Ausgabe();
           neu.HauWegDenLetzten();
        }
        return 0; 
    }
    


  • Hi volkard! Ich habe das mit der 2. Klasse nicht so richtig verstanden. Was würde mir die 2. Klasse bringen??

    Ich habe es erstmal so weit wie möglich geändert...

    class CListe
    {
    private:
    	char	Name[50];
    public:
    	CListe*	next;
    	void	Eingabe();
    	void	Ausgabe();
    	bool	IstLeer();
    	void	HauWegDenLetzten();
    };
    
    void CListe::Eingabe()
    {
    	cout<<"Bitte Namen eingeben: ";
    	cin>>Name;
    }
    
    void CListe::Ausgabe()
    {
    	cout<<"Die eingegebenen Namen: "<<Name<<endl;
    }
    
    bool CListe::IstLeer()
    {
    	if(next!=......)  //wie könnte ich das am besten lösen??
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    
    void CListe::HauWegDenLetzten()
    {
    	delete next;
    }
    
    int main()
    {
    	CListe neu;
        neu.Eingabe();
        neu.Eingabe();
        neu.Eingabe();
        while(!neu.IstLeer())
    	{
           neu.Ausgabe();
           neu.HauWegDenLetzten();
        }
    }
    

Anmelden zum Antworten