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 ]
000
09.05.2009, 17:48 Uhr
ausgtown



Hallöchen ich brauch mal wieder ein wenig Hilfe, ich hab Tomaten auf den Augen oder ich versteh den Compiler nicht.

Ich wollte gern einen Fernseher programmieren.


Code:

// fernseher.cpp: Hauptprojektdatei.

#include "stdafx.h"

using namespace System;

ref class fernseher{
private:

Int32 lautstaerke;
Int32 programm;
Int32 aktiv;
Int32 einaus;

public:
void fenseherinit();
void fernsehlautstaerke(Int32 aenderung);
void fernsehprogramm(Int32 aenderung);
void ausgabe();
};

void fernseher::fenseherinit(){
    aktiv = 1;
    lautstaerke = 10;
    programm = 2;
}

void fernseher::fernsehlautstaerke(Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche wie laut der Fernseher sein soll: (bitte nur ganze Zahlen eingeben");
    lautstaerke=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
}

void fernseher::fernsehprogramm (Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche welches Programm Sie sehen wollen: (bitte nur ganze Zahlen eingeben");
    programm=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm); }

int main(array<System::String ^> ^args){
    Int32 einaus;
    Int32 menue;
    Console::WriteLine("Der Fernseher ist momentan ausgeschalten. Bitte drücken Sie die 0 um ihn ");
    Console::WriteLine("einzuschalten.");
    einaus=Convert::ToInt32(Console::ReadLine());
    if (einaus = 0){
        fernseher.aktiv == 0;
        Console::WriteLine("Der Fernseher ist nun eingeschalten.");
        Console::WriteLine("Was wollen Sie tun? \n1 - Programm ändern\n2 - Lautstärke ändern\3 - Fernseher ausschalten");
        menue=Convert::ToInt32(Console::ReadLine());
        switch (menue){
        case 1:
            fernsehlautstaerke();
            break;
        case 2:
            fernsehprogramm();
            break;
        case 3:
            fernseher.aktiv == 1;
            break;
        }
    }
    else (einaus !=0){
        fernseher.aktiv == 1;
        Console::WriteLine("Der Fernseher ist noch immer aus.");
    }
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
    return 0;
}




kann mir jemand helfen, wo ich meinen Fehler habe bitte?

Danke vom Schusselchen

Dieser Post wurde am 09.05.2009 um 17:49 Uhr von ausgtown editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.05.2009, 18:08 Uhr
0xdeadbeef
Gott
(Operator)


Es handelt sich hier um C++/CLI, d.h. -> .net-Forum.

-->
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.05.2009, 18:12 Uhr
ausgtown



ops sry...

vielleicht kann ja trotzdem jemand helfen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.05.2009, 21:14 Uhr
ausgtown



ich stells nochma besser rein..war vorher nicht alles zu lesen


Code:

// fernseher.cpp: Hauptprojektdatei.

#include "stdafx.h"

using namespace System;

ref class fernseher{
private:

Int32 lautstaerke;
Int32 programm;
Int32 aktiv;
Int32 einaus;

public:
void fenseherinit();
void fernsehlautstaerke(Int32 aenderung);
void fernsehprogramm(Int32 aenderung);
void ausgabe();
};

void fernseher::fenseherinit(){
    aktiv = 1;
    lautstaerke = 10;
    programm = 2;
}

void fernseher::fernsehlautstaerke(Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche wie laut der
                         Fernseher sein soll: (bitte nur ganze Zahlen eingeben");
    lautstaerke=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
}

void fernseher::fernsehprogramm (Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche welches
                     Programm Sie sehen wollen: (bitte nur ganze Zahlen eingeben");
    programm=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm); }

int main(array<System::String ^> ^args){
    Int32 einaus;
    Int32 menue;
    Console::WriteLine("Der Fernseher ist momentan ausgeschalten.
                                    Bitte drücken Sie die 0 um ihn ");
    Console::WriteLine("einzuschalten.");
    einaus=Convert::ToInt32(Console::ReadLine());
    if (einaus = 0){
        fernseher.aktiv == 0;
        Console::WriteLine("Der Fernseher ist nun eingeschalten.");
        Console::WriteLine("Was wollen Sie tun? \n1 - Programm
                          ändern\n2 - Lautstärke ändern\3 - Fernseher ausschalten");
        menue=Convert::ToInt32(Console::ReadLine());
        switch (menue){
        case 1:
            fernsehlautstaerke();
            break;
        case 2:
            fernsehprogramm();
            break;
        case 3:
            fernseher.aktiv == 1;
            break;
        }
    }
    else (einaus !=0){
        fernseher.aktiv == 1;
        Console::WriteLine("Der Fernseher ist noch immer aus.");
    }
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
    return 0;
}




 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.05.2009, 11:33 Uhr
Tommix



Hallo,
das Grundproblem ist, daß Du den Fernseher erfunden, aber keinen gebaut hast. Will sagen, es gibt keine Klasseninstanz:

C++:
fernseher^ meinFernseher = gcnew fernseher;
meinFernseher->fernseherinit();


etc.

Gruß, Tommix

Dieser Post wurde am 10.05.2009 um 11:34 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.05.2009, 12:02 Uhr
ausgtown



ähm.. öhm.. ok danke das hab ich jetzt eingebaut und natürlich prompt ne neue Fehlermeldung erhalten :-(


Code:

// fernseher.cpp: Hauptprojektdatei.

#include "stdafx.h"

using namespace System;

ref class fernseher{
private:

Int32 lautstaerke;
Int32 programm;
Int32 aktiv;
Int32 einaus;

public:
void fenseherinit();
void fernsehlautstaerke(Int32 aenderung);
void fernsehprogramm(Int32 aenderung);
void ausgabe();
};

void fernseher::fenseherinit(){
    aktiv = 1;
    lautstaerke = 10;
    programm = 2;
}

void fernseher::fernsehlautstaerke(Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche wie laut der
             Fernseher sein soll: (bitte nur ganze Zahlen eingeben");
    lautstaerke=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
}

void fernseher::fernsehprogramm (Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche
              welches Programm Sie sehen wollen: (bitte nur
              ganze Zahlen eingeben");
    programm=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm); }

int main(array<System::String ^> ^args){
    
    fernseher^ meinFernseher = gcnew fernseher;
    meinFernseher->fernseherinit();
    Int32 einaus;
    Int32 menue;
    Console::WriteLine("Der Fernseher ist momentan ausgeschalten.
Bitte drücken Sie die 0 um ihn ");
    Console::WriteLine("einzuschalten.");
    einaus=Convert::ToInt32(Console::ReadLine());
    if (einaus = 0){
        fernseher.aktiv == 0;
        Console::WriteLine("Der Fernseher ist nun eingeschalten.");
        Console::WriteLine("Was wollen Sie tun?
                           \n1 - Programm ändern\n2 - Lautstärke ändern
                            \3 - Fernseher ausschalten");
        menue=Convert::ToInt32(Console::ReadLine());
        switch (menue){
        case 1:
            fernsehlautstaerke();
            break;
        case 2:
            fernsehprogramm();
            break;
        case 3:
            fernseher.aktiv == 1;
            break;
        }
    }
    else (einaus !=0){
        fernseher.aktiv == 1;
        Console::WriteLine("Der Fernseher ist noch immer aus.");
    }
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
    return 0;



ich poste einfach ma die Fehlermeldungen mit

1>.\fernseher.cpp(44) : error C2039: 'fernseherinit': Ist kein Element von 'fernseher'
1> .\fernseher.cpp(7): Siehe Deklaration von 'fernseher'
1>.\fernseher.cpp(50) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\fernseher.cpp(50) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\fernseher.cpp(56) : error C3861: "fernsehlautstaerke": Bezeichner wurde nicht gefunden.
1>.\fernseher.cpp(59) : error C3861: "fernsehprogramm": Bezeichner wurde nicht gefunden.
1>.\fernseher.cpp(62) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\fernseher.cpp(62) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\fernseher.cpp(66) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
1>.\fernseher.cpp(67) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\fernseher.cpp(67) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
1>.\fernseher.cpp(70) : error C2065: 'lautstaerke': nichtdeklarierter Bezeichner
1>.\fernseher.cpp(71) : error C2065: 'programm': nichtdeklarierter Bezeichner

fernseherinit() wurde aber als Methode vereinbart *hilfeschreit loslass*

danke schonmal für den Tip
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.05.2009, 16:39 Uhr
~toxic
Gast



C++:
ref class fernseher{
private Int32 lautstaerke;
private Int32 programm;
private Int32 aktiv;
private Int32 einaus;

public void fenseherinit();
public void fernsehlautstaerke(Int32 aenderung);
public void fernsehprogramm(Int32 aenderung);
public void ausgabe();
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.05.2009, 17:06 Uhr
Tommix



@toxic: Das ist C++/cli, nicht C#.
@ausgtown: Es muß zunächst mal überall, wo fernseher.blabla steht, jetzt meinFernseher->blabla hin. Stell Dir vor Du hast 4 Fernseher und willst mehrere Programme gleichzeitig sehen. Bei ferseher.fernsehprogramm wäre unklar, welcher gemeint ist. Außerdem kannst Du grundsätzlich nur auf Member mit dem Attribut public zugreifen, also z.B. nicht auf lautstaerke. Dafür könntest Du eine property verwenden:

C++:
// ...
public:
    property System::Int32 Lautstärke
    {
        System::Void set(System::Int32 wert)
        {
            lautstaerke = wert;
        }
    }
// ...

// in main
Lautstärke = 25;


Den Teil in Init würde ich in einen Konstruktor verlagern.
Dann verwendest Du == und = bei der ein/aus-Geschichte genau verkehrt herum und für zweiwertige Variablen gibt es einen Typ System::Boolean aka bool, der möglicherweise an dieser Stelle (ein oder aus) zweckmäßiger wäre.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.05.2009, 18:01 Uhr
ausgtown



ok das hab ich jetzt umgeändert... allerdings behauptet er immer noch das fernseherinit kein Member von Fernseher wäre :-(


Code:

// fernseher.cpp: Hauptprojektdatei.

#include "stdafx.h"

using namespace System;

ref class fernseher{
private:

Int32 lautstaerke;
Int32 programm;
Int32 aktiv;
Int32 einaus;

public:
     property System::Int32 Lautstärke
    {
        System::Void set(System::Int32 wert)
        {
            lautstaerke = wert;
        }
    }
    void fernseherinit();
    void fernsehlautstaerke(Int32 aenderung);
    void fernsehprogramm(Int32 aenderung);
    void ausgabe();
};

void fernseher::fernseherinit(){
    aktiv = 1;
    lautstaerke = 10;
    programm = 2;
}

void fernseher::fernsehlautstaerke(Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welche
                 wie laut der Fernseher sein soll: (bitte nur
                        ganze Zahlen eingeben");
    lautstaerke=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
}

void fernseher::fernsehprogramm (Int32 aenderung) {
    Console::WriteLine("Bitte geben Sie ein welches Programm
                Sie sehen wollen: (bitte nur ganze Zahlen eingeben");
    programm=Convert::ToInt32(Console::ReadLine());
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm); }

int main(array<System::String ^> ^args){
    
    fernseher^ meinFernseher = gcnew fernseher;
    meinFernseher->fernseherinit();
    Int32 lautstaerke = 25;
    Int32 einaus;
    Int32 menue;
    Console::WriteLine("Der Fernseher ist momentan
              ausgeschalten. Bitte drücken Sie die 0 um ihn ");
    Console::WriteLine("einzuschalten.");
    einaus=Convert::ToInt32(Console::ReadLine());
    if (einaus == 0){
        meinFernseher->aktiv = 0;
        Console::WriteLine("Der Fernseher ist nun eingeschalten.");
        Console::WriteLine("Was wollen Sie tun? \n1 -
                     Programm ändern\n2 - Lautstärke ändern\3 - Fernseher
                            ausschalten");
        menue=Convert::ToInt32(Console::ReadLine());
        switch (menue){
        case 1:
            fernsehlautstaerke();
            break;
        case 2:
            fernsehprogramm();
            break;
        case 3:
            meinFernseher->aktiv = 1;
            break;
        }
    }
    else (einaus !=0){
        meinFernseher->aktiv = 1;
        Console::WriteLine("Der Fernseher ist
                        noch immer aus.");
    }
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ",programm);
    return 0;
}






hier nochma die Fehler

.\fernseher.cpp(51) : error C2039: 'fernseherinit': Ist kein Element von 'fernseher'
.\fernseher.cpp(7): Siehe Deklaration von 'fernseher'
.\fernseher.cpp(59) : error C2248: "fernseher::aktiv": Kein Zugriff auf private Member, dessen Deklaration in der fernseher-Klasse erfolgte.
.\fernseher.cpp(12): Siehe Deklaration von 'fernseher::aktiv'
.\fernseher.cpp(7): Siehe Deklaration von 'fernseher'
.\fernseher.cpp(65) : error C3861: "fernsehlautstaerke": Bezeichner wurde nicht gefunden.
.\fernseher.cpp(68) : error C3861: "fernsehprogramm": Bezeichner wurde nicht gefunden.
.\fernseher.cpp(71) : error C2248: "fernseher::aktiv": Kein Zugriff auf private Member, dessen Deklaration in der fernseher-Klasse erfolgte.
.\fernseher.cpp(12): Siehe Deklaration von 'fernseher::aktiv'
.\fernseher.cpp(7): Siehe Deklaration von 'fernseher'
.\fernseher.cpp(75) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
.\fernseher.cpp(76) : error C2248: "fernseher::aktiv": Kein Zugriff auf private Member, dessen Deklaration in der fernseher-Klasse erfolgte.
.\fernseher.cpp(12): Siehe Deklaration von 'fernseher::aktiv'
.\fernseher.cpp(7): Siehe Deklaration von 'fernseher'
.\fernseher.cpp(80) : error C2065: 'programm': nichtdeklarierter Bezeichner

danke fürs helfen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
11.05.2009, 16:26 Uhr
Tommix



Hallo,
daß Du auf private Member nicht zugreifen kannst, hatte ich schon erwähnt. Ansonsten (wenn ich ich mal alles public mache):

C++:
//...
   einaus=Convert::ToInt32(Console::ReadLine());
    if (einaus == 0){
        meinFernseher->aktiv = 0;
        Console::WriteLine("Der Fernseher ist nun eingeschalten.");
        Console::WriteLine("Was wollen Sie tun? \n1 - Programm ändern\n2 - Lautstärke ändern\3 - Fernseher ausschalten");
        menue=Convert::ToInt32(Console::ReadLine());
        switch (menue){
        case 1:
            meinFernseher->fernsehlautstaerke(0);
            break;
        case 2:
            meinFernseher->fernsehprogramm(0);
            break;
        case 3:
            meinFernseher->aktiv = 1;
            break;
        }
    }
    else /*(einaus !=0)*/{
        meinFernseher->aktiv = 1;
        Console::WriteLine("Der Fernseher ist noch immer aus.");
    }
    Console::WriteLine("Lautstaerke: ",lautstaerke);
    Console::WriteLine("Programm: ", meinFernseher->programm);


So compiliert's wenigstens.
Das ganze ist aber ziehmlich chaotisch. Überleg Dir z.B. mal wozu der Parameter bei fernsehlautstaerke und -programm gut sein soll.

- Tommix
 
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: