Ferseher als Objekt
-
Hi bin neuling in programirung, Ich muß ein programm erstellen , das einen Ferseher als Objekt abbildet, es soll nur die lautstärke und programm geändert werden, wenn der an ist, und soll aus geschaltet gehen.
Ich weiß nicht wo ich anfangen soll, bitte um hilfe.
-
Hallo
class Fernseher { public: void Fernseher(void); void Fernseher(bool Zustand) {Power = Zustand;} void ~Fernsher(void); void Anschalten(void) {Power = true;} void Ausschalten(void){Power = false;} private: unsigned int Lautstärke; unsigned int Programm; bool Power; };Das ist ungetestet und soll dir mal einen Gedankenschub bringen.
chrische
-
Hi
Als Neuling kannst du es nicht wissen, aber das gehört eher in das WinAPI-Forum.
Wie soll denn der Fernseher abgebildet werden? Als Bild in einem Fenster? Mit Knöpfen drunter, wo du an/aus/hin/her-schalten kannst?
Da du das Programm schreiben "musst", schätze ich mal, dass das eine Aufgabe für die Schule oder Uni ist. Jedenfalls solltest du dann erstmal die Grundlagen erlernen. Also wie man ein ganz einfaches Windows-Programm erstellt, ein Fenster erstellt, wie man im Fenster zeichnet und so.
Das alles gibt es in Tutorials, einfach mal bei Google nach "Winapi Tutorial" suchen. Ist nicht so schwer, les es einfach durch. Und wenn du Fragen hast, kannst du ja noch mal schreiben!Grüße,
Badestrand
-
Wer sagt denn das es ins WinAPI gehört ?
Vllt. auch VCL MFC oder CLI ? Eventuell ist es auch eine Linuxanwendung - aber vermutlich doch eher reine console zur Übung ?
-
Hast ja Recht

Ist so 'ne Macke als WinAPI-ler...
-
"als OBJEKT abbildet" ...
Mit einer Api klappt das nicht, dafür bedarf es einer objektorientierten Programmiersprache o0 ... oder eine die sich, auf welche Art auch immer, so nutzen lässt.
-
Kahino schrieb:
"als OBJEKT abbildet" ...
Mit einer Api klappt das nicht, dafür bedarf es einer objektorientierten Programmiersprache o0 ... oder eine die sich, auf welche Art auch immer, so nutzen lässt.
@Chrische5
Bei dir fehlt die Möglichkeit die Lautstärke und Programm zu ändern :pEDIT: ui sry, habe wohl ausversehen auf Zitieren anstatt auf editieren geklickt

-
Hallo
Kahino schrieb:
@Chrische5
Bei dir fehlt die Möglichkeit die Lautstärke und Programm zu ändern :pchrische5 schrieb:
soll dir mal einen Gedankenschub bringen.
chrische
Ich wollte also nicht alles machen, sondern nur einen Ansatz zeigen.
chrische
-
Knuddlbaer schrieb:
Wer sagt denn das es ins WinAPI gehört ?
Vllt. auch VCL MFC oder CLI ? Eventuell ist es auch eine Linuxanwendung - aber vermutlich doch eher reine console zur Übung ?Ja es ist eine consolen Übung.
-
@Chrischi5
war ja nur ein Scherz, wollte dich nicht irgendwie kritisieren oder dergleichen.
-
Ich hab jetzt so weit gemacht, meint ihr lieg ich richtig ungefähr?
class fernseher { int lautstaerke; int programm; int an; public: void init(); void setlautstaerke(int aendern); void setprogramm(int aendern); void getan(int aendern); void ausgeben(); }; void fernseher::init() { lautstaerke = 10; programm = 1; an = false; } //void fernseher::getan(int aendern) { void fernseher::setlaut(int aendern) { char wahl; if (getan = false){ cout << "Fernseher ist aus"<<endl; } else cout << "Hoch mit +"<<endl; cout << "Runter mit -"<<endl; cout << "Bitte waehlen :"<<endl; cin >>wahl; } void main() {
-
An Stelle von
void fernseher::init()
nimmt man normalerweise den Konstruktor:
fernseher::fernseher()
Der Rückgabetyp von main ist int, nicht void.
Das Herumgefummel mit cout in fernseher::setlaut finde ich zumindest unschön.
Und das hier ist höchstwahrscheinlich nicht, was du haben willst:
if (getan = false){
Edit: Die obige Zeile würde sowieso nicht funktionieren. Selbst wenn du eine Zuweisung haben wolltest, was du nicht willst, kannst du kein false einer Funktion zuweisen.
Edit 2: Beim else-Zweig fehlen die {} und übrigens sollte man Variablen immer so spät wie möglich deklarieren.
-
class fern{ int laut; int prog; int an; public: void init(); void setlaut(int aendern); void setprog(int aendern); void getan (int aendern); void ausgabe(); }; void fern::init() { laut = 10; prog = 1; an = false; } void fern::getan(int aendern) { } void fern::setlaut(int aendern) { } void fern::setprog(int aendern) { }Wie geht es weiter, was und wohin soll ich eintragen, Bitte helft mir.
Lautstärke und Programme schalten nur wenn der fernseher an ist.
-
Hallo
Warum ist an kein bool? Wenn du vergleichen willst, musst du == statt = verwenden und wenn du willst, dass man nur umschakten kann, wenn der Fernseher an ist, dann musst du das halt prüfen:
void fern::setlaut(int aendern) { if(an) laut = aendern; else cout<<"Fernseher ist aus"<<endl; }Das soll nur ein Beispiel sein und du solltest dir überlegen, ob es nicht sinnvoll wäre die Ausgabe über cout nicht außerhalb von fern zu machen und nur ein bool zurückgeben.
bool fern::setlaut(int aendern) { if(an) { laut = aendern; return true; } else return false; }Dann kannste die Ausgabe je nach Rückgabe machen.
chrische
-
Und wenn wir dir schon mal Tipps geben, wäre es nett, wenn du sie auch beachten würdest. Also noch einmal. Das hier:
void init();
und das hier
void fern::init()
durch das hier
fern();
und das hier
fern::fern()
ersetzen.
Im übrigen kann man im Konstruktor eine Initialisiererliste verwenden. Das sähe dann so aus:
fern::fern() : laut (10), prog (1), an (false) {}