Fernseher Klasse



  • Hallo
    Ich brauche eure Hilfe.
    Dies soll eine Klasse Fernseher werden. Der Fernseher muss eingeschlatet werden, es muss ein Programm geändert werden, die Lautstärke muss verändert werden und der Fernseher muss ausgeschaltet werden. Ich habe ein Problem mit den Attributen, ich weiss nicht was ich da eingeben soll. Woran erkenne ich was ich als Attribut nehmen muss? Ich habe alles unter die Methoden geschrieben.

    [code]
    #include "stdafx.h"
    
    using namespace System;
    // Die Vereinbarung der Klasse
    ref class fernseher {
    	//Attribute
    
    	// Die Methoden
    public:
    	void einschalten(Int32 an);
    	void programmwahl(Int32 auswaehlen);
    	void lautstaerke(Int32 2,3);
    	void ausschalten(Int32 aus);
    	void ausgabe();
    };
    

    [/code]
    Vielen Dank im Voraus



  • Was willst du mit deinen Methoden verändern?

    Genau das sind Attribute. Hier einfach mal etwas (ungetesteten Code).

    Hier dran wird es deutlich (hoffe ich zumindest)

    #include "stdafx.h"
    
    using namespace System;
    // Die Vereinbarung der Klasse
    ref class fernseher {
        //Attribute
    private:
        Boolean power; //den der Fernseher kann entweder an oder aus sein, deswegen verstehe ich nicht warum du Int32 dafür nimmst.
        Int32 laut;
        Int32 programm;
        //Methoden
    public:
        void powerAU(Boolean status);
        void programmwahl(Int32 wahl);
        void lautstaerke(Int32 LStaerke);
        void ausgabe();
    };
    
    void fernseher::powerAU(Boolean status)
    {
        power = status;
        if(!power){ // Gleich if(power == false){
            programm = 0;
            laut = 0;
        }
    }
    void fernseher::programmwahl(Int32 wahl)
    {
        programm = wahl;
    }
    void fernseher::lautstaerke(Int32 LStaerke)
    {
        laut = LStaerke;
    }
    void fernseher::ausgabe()
    {
        Console::WriteLine("Status: {0}\nProgramm: {1}\nLautstärke: {2}", power, wahl, LStaerke);
    }
    

    Hoffe das das jetzt nicht die Lösung für deine Hausaufgabe war
    Gruß
    Rudi G



  • Rudi G schrieb:

    Was willst du mit deinen Methoden verändern?

    Genau das sind Attribute. Hier einfach mal etwas (ungetesteten Code).

    Hier dran wird es deutlich (hoffe ich zumindest)

    #include "stdafx.h"
    
    using namespace System;
    // Die Vereinbarung der Klasse
    ref class fernseher {
        //Attribute
    private:
        Boolean power; //den der Fernseher kann entweder an oder aus sein, deswegen verstehe ich nicht warum du Int32 dafür nimmst.
        Int32 laut;
        Int32 programm;
        //Methoden
    public:
        void powerAU(Boolean status);
        void programmwahl(Int32 wahl);
        void lautstaerke(Int32 LStaerke);
        void ausgabe();
    };
    
    void fernseher::powerAU(Boolean status)
    {
        power = status;
        if(!power){ // Gleich if(power == false){
            programm = 0;
            laut = 0;
        }
    }
    void fernseher::programmwahl(Int32 wahl)
    {
        programm = wahl;
    }
    void fernseher::lautstaerke(Int32 LStaerke)
    {
        laut = LStaerke;
    }
    void fernseher::ausgabe()
    {
        Console::WriteLine("Status: {0}\nProgramm: {1}\nLautstärke: {2}", power, wahl, LStaerke);
    }
    

    Hoffe das das jetzt nicht die Lösung für deine Hausaufgabe war
    Gruß
    Rudi G

    Es ist eine Hausaufgabe. Vielen Dank für Deine Bemühungen, ich werde üben



  • Heinerich schrieb:

    Rudi G schrieb:

    Hoffe das das jetzt nicht die Lösung für deine Hausaufgabe war

    Es ist eine Hausaufgabe.

    @Rudi G
    Tröste dich damit das deine Lösung eh nicht sehr .Net-tig war und es hoffentlich Punktabzüge durch den Lehrer gibt 🙂 Auch wenn ich befürchte dass bei ner Hausaufgabe die Funktionen schon vorgegeben waren, treffen natürlich deine Aussagen was die gewählten Typen angeht zu, aber Programm und Lautstärke sind besser als Properties zu definieren, statt ner Ausgabefunktion sollte man einfach ToString() überschreiben und Power sollte einfach ne parameterlose Methode sein die den internen Zustand toggelt. Im wahren leben übergbist du den Fernseher ja auch nicht ob er angehen oder ausgehen soll 😉



  • Hey Zwergli,

    du hast schon recht ich würde jetzt auch die ganze Klasse anders aufbauen, aber ich weiß das es in dieser Aufgabenstellung nicht gefragt ist/wird. Ich habe das (diesen Kurs) ja auch gemacht, und mein das man zu diesem Zeitpunkt (lektion) noch nichts von Property etc. weiß. (aber genau weiß ich es nicht)

    Das ist eine Übung um die OOP zu erklären.

    Gruß
    Rudi G


Anmelden zum Antworten