Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » mein Fernseher mag net :-(

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ]
010
11.05.2009, 19:01 Uhr
ausgtown



das sollen die Methoden sein um die Lautstärke und das Programm zu ändern.... über die sollen die Attribute lautstärke und programm geändert werden

und diese Änderungen sollen nur gehen wenn der Fernseher aktiv ist :-(

aber hast Recht... die beiden Parameter brauch ich wirklich nicht... nur löst das die Fehlermeldungen immer noch nicht auf :-(
ich weiß es ist chaotisch hab aber keine Ahnung wie ich es sonst umsetzen kann

Dieser Post wurde am 11.05.2009 um 19:21 Uhr von ausgtown editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
11.05.2009, 22:23 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wohl am sinnvollsten:

entweder "echtes" C++ oder "echtes" C# schreiben, nicht diesen CLI Quatsch
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
11.05.2009, 22:47 Uhr
ausgtown



ich schreib immer C++ mit VCE

was anderes kann ich nich bzw. lerne ich nicht was willste mir jetzt damit sagen???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
12.05.2009, 19:47 Uhr
ausgtown



ich weiß das ich nicht die beste beim Programmieren bin.... aber ich wills lernen und dazu brauche ich Hilfe.... mit so einer Antwort kann ich leider gar nix anfangen... ich bin Anfänger und ich bin stolz auch das was ich schon kann... aber hier hab ich halt nen Blackout kann so wohl mal passieren....

Es wäre nett wenn mir irgendjemand nochmal weiterhelfen könnte bitte
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
12.05.2009, 20:41 Uhr
0xdeadbeef
Gott
(Operator)


Ich mach das jetzt mal in echtem C++, dieser CLI-Kram ist ja widerlich. Also, ich finge das etwa so an:

C++:
#include <iostream>
#include <string>

class fernseher {
public:
  fernseher();

  void lautstaerke(int);
  void programm   (int);
  void anschalten ();
  void ausschalten();

  int lautstaerke() const;
  int programm   () const;
  bool ist_an    () const;

private:
  int lautstaerke_;
  int programm_;
  bool an_;
};

fernseher::fernseher() : lautstaerke_(10), programm_(2), an_(false) { }

void fernseher::lautstaerke(int l) { lautstaerke_ = l; }
void fernseher::programm   (int p) { programm_    = p; }
void fernseher::anschalten ()      { an_ = true ; }
void fernseher::ausschalten()      { an_ = false; }

int  fernseher::lautstaerke() const { return lautstaerke_; }
int  fernseher::programm   () const { return programm_   ; }
bool fernseher::ist_an     () const { return an_; }

void print(fernseher const &f) {
  std::cout << "An:         " << (f.ist_an() ? "ja" : "nein") << std::endl
            << "Lautstärke: " << f.lautstaerke()              << std::endl
            << "Programm:   " << f.programm   ()              << std::endl;
}

int get_int(std::string const &prompt) {
  int x;

  std::cout << prompt << std::flush;
  std::cin >> x;

  return x;
}

int main() {
  fernseher f;

  if(get_int("Der Fernseher ist momentan ausgeschaltet. Bitte drücken Sie 0, um ihn\n"
             "einzuschalten.\n") == 0) {
    f.anschalten();

    switch(get_int("Der Fernseher ist nun eingeschaltet.\n"
                   "Was wollen Sie tun?\n"
                   "1 - Programm ändern\n"
                   "2 - Lautstärke ändern\n"
                   "3 - Fernseher ausschalten\n")) {
    case 1:
      f.programm(get_int("Neues Programm: "));
      break;
    case 2:
      f.lautstaerke(get_int("Neue Lautstärke: "));
      break;
    case 3:
      f.ausschalten();
      break;
    }
  } else {
    std::cout << "Der Fernseher ist immer noch aus." << std::endl;
  }

  print(f);
}


...beziehungsweise nicht genau so, aber ich wollte dir jetzt nicht gleich mit überladenen Operatoren und Funktionsvorlagen kommen. Anmerkungen habe ich folgende:

Eine eigene Init-Methode scheint mir hier nicht sinnvoll, das kann der Konstruktor erledigen (fernseher::fernseher()).

Ansonsten fällt bei deinem Code auf, dass du den selben Code immer und immer wieder schreibst. Ich halte jede Wette, dass du deine Methoden mindestens teilweise mit Strg-C, Strg-V erstellt hast - das ist denkbar schlechte Praxis. Wenn du dich dabei erwischst, lager den entsprechenden Code in eine eigene Funktion aus - wie etwa oben get_int und print.

In dem Zusammenhang auch anzumerken: Trenne verschiedene Funktionalitäten nach Möglichkeit in verschiedene Codestücke auf, dann kannst du sie flexibler verwenden. Eine Methode, die das Programm wechselt, sollte nur das Programm wechseln, dies aber nicht vom Benutzer erfragen - das ist eine völlig andere Funktionalität. Auf die Art kannst du sie auch benutzen, um zu einem Programm zu wechseln, dass der Benutzer nicht eingegeben hat - zum Beispiel für einen "zurück zum letzten Programm"-Knopf oder etwas in der Art.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 12.05.2009 um 20:54 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
12.05.2009, 21:49 Uhr
ausgtown



das is ja alles ganz lieb gemeint.. aber Konstruktor sagt mir noch nix und mit cout kann ich nix anfangen :-(

wie gesagt ich arbeite mit Visual C++ Express und will das auch mit C++ darin erstellen... alles andere bringt mir nix :-(

und auch wenn es so aussieht NEIN ich habe nicht mit copypaste gearbeitet....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
12.05.2009, 22:14 Uhr
0xdeadbeef
Gott
(Operator)


Das ist C++. Jeder C++-Compiler muss das können. Dein Kram ist C++/CLI, was eine Art Adaptersprache zwischen C++ und der .net-Laufzeitumgebung ist, die wohl wirklich nur der Microsoft-Compiler beherrscht. Möglicherweise noch mono, ich weiß nicht, ob die das unterstützen. Jedenfalls ein fürchterliches Gebilde, das sich nur dann zu benutzen empfiehlt, wenn du echten C++-Code mit .net-Code zusammenbringen musst. Als eigene Sprache ist es kaum zu gebrauchen.

Der Konstruktor ist eine Funktion, die beim Erstellen eines Objekts aufgerufen wird, um es zu initialisieren. Etwa:

C++:
#include <iostream>

class A {
public:
  A() { std::cout << "Konstruktor A::A() aufgerufen" << std::endl; }
};

int main() {
  A a; // Hier wird A::A() aufgerufen
}


im Beispiel oben ist fernseher::fernseher() der Konstruktor von fernseher.

std::cout hat in jedem C++-Buch ganz weit vorne zu stehen, meistens gleich auf der ersten Seite. Es handelt sich um einen Ausgabestrom auf die Standardausgabe (üblicherweise die Konsole, sofern du den Strom nicht umleitest).

C++:
std::cout << x;


schreibt was immer x ist in die Standardausgabe. Das ganze funktioniert mit überladenen Operatoren (was sich in Büchern üblicherweise weiter hinten befindet).
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 12.05.2009 um 22:15 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
13.05.2009, 07:15 Uhr
ausgtown




Zitat von 0xdeadbeef:
Das ist C++. Jeder C++-Compiler muss das können. Dein Kram ist C++/CLI, was eine Art Adaptersprache zwischen C++ und der .net-Laufzeitumgebung ist, die wohl wirklich nur der Microsoft-Compiler beherrscht. Möglicherweise noch mono, ich weiß nicht, ob die das unterstützen. Jedenfalls ein fürchterliches Gebilde, das sich nur dann zu benutzen empfiehlt, wenn du echten C++-Code mit .net-Code zusammenbringen musst. Als eigene Sprache ist es kaum zu gebrauchen.



wie gesagt ich kanns nur auf der Basis wie ich meinen Quelltext aufgebaut habe und nur so arbeitet mein Compiler... es tut mir ja leid wenn ihr das Mist findet... aber ich habe euch deswegen um Hilfe gebeten.... bei meiner letzten Anfrage ging es auch unproblamtisch mit Tipps zu geben, warum diesmal nicht?

Ich will dich nur wissen was ich falsch mache Chaos hin oder her :-(

Also nochmal es geht darum: Eine Klasse Fernseher, mit den Attributen: lautstärke, programm, aktiv (Zustand des Fernsehers)
Zugriff auf die Attribute sollen nur über die Methoden möglich sein und Lautstärke und Programm sollen nur zu ändern gehen, wenn der Fernseher an, also aktiv ist.

Der Quelltext steht auf der 1. Seite. Vielleicht kann ja doch jemand bei dem "Quatsch" helfen. Wäre mir sehr wichtig, weil ich erstmal eines lernen will und dann kann ich das richtig versuchen.

Danke

Bearbeitung von 0xdeadbeef:

quote-Tag repariert.


Dieser Post wurde am 13.05.2009 um 11:19 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
13.05.2009, 16:33 Uhr
Tommix



Wenn Du als Projekttyp Win32 / Win32-Konsolenanwendung wählst, wird 'beef's Code auch von Deinem Compiler verwertet. Aber davon mal abgesehen, mit den Änderungen aus Post 9 hab ich es compiliert gekriegt, ohne syntaktische Fehler.
- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
13.05.2009, 18:30 Uhr
ausgtown



mit welchem Post bitte? sry.. vielleicht hab ich mich verzählt aber das wäre meiner *fragend guckt*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ]     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: