Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.12.2005, 16:46

Klasse spielt verrückt

Hallo erstmal!

Folgendes Problem:
Untenstehende Klasse soll mal in einen Fußballmanager eingebaut werden. Man soll hier Spieler für seine Mannschaft erstellen, d.h. den Namen eingeben, die Werte sind festgelegt. Ich geb probeweise 4 Namen ein und will sie dann anschließend anzeigen lassen, aber:
Wenn ich Spieler 1 oder 2 sehen will, zeigt der PC mir Spieler 3 und 4, wenn ich Spieler 3 oder 4 sehen will, zeigt er mir merkwürdige Zeichen und unmögliche Werte.
Vielen Dank für Eure Hilfe
# include <iostream>

using namespace std;

//KLasse für Spieler
class C_Spieler
{
private:

int m_Fitness;
int m_Verteidigung;
int m_Angriff;
char m_Spielername[30];

public:
//Konstruktor
C_Spieler ();

//Funktionen
void InitSpieler ();
void ZeigeDaten ();

};


//Konstruktor für Spielerdaten
C_Spieler::C_Spieler ()
{
m_Fitness =50;
m_Verteidigung = 0;
m_Angriff = 0;
}

//Funktion Spielername abfragen
void C_Spieler::InitSpieler ()
{
cout<<"Geben Sie einen Namen ein: "<<endl; cin.ignore ();
cin.get (m_Spielername, 29);
}

//Funktion Spielerdaten ausgeben
void C_Spieler::ZeigeDaten ()
{
cout<<"Name :"<<m_Spielername<<endl;
cout<<"Fitness :"<<m_Fitness<<endl;
cout<<"Verteidigung :"<<m_Verteidigung<<endl;
cout<<"Angriff :"<<m_Angriff<<endl;
}


//Hauptprogramm
int main ()
{
C_Spieler *pSpielerliste = NULL;
int Anzahl = 0;


cout<<"Wieviele Spieler willst du aufstellen (maximal 4): "<<endl;
cin>>Anzahl;

pSpielerliste = new C_Spieler[Anzahl];

for (int i = 0; i < Anzahl; i++)
{
cout<<"Spieler "<<i+1<<endl;
pSpielerliste.InitSpieler ();
cout<<endl;
}


//Anzeigen der Spieler
int j = 0;
while (j != 5)
{

cout<<"Welcher Spieler soll angezeigt werden (5 zum beenden): "<<endl;
cin>>j;

cout<<"Spieler: "<<(j)<<endl;
pSpielerliste[j+1].ZeigeDaten ();
}

delete[] pSpielerliste;
pSpielerliste = NULL;

return 0;

}

Anonymous

unregistriert

2

08.12.2005, 17:02

Codetags benutzen, sonst guckt sich keiner den Code an

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

3

08.12.2005, 17:08

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
//Anzeigen der Spieler

int j = 0;
while (j != 5)
{

cout<<"Welcher Spieler soll angezeigt werden (5 zum beenden): "<<endl;
cin>>j;

cout<<"Spieler: "<<(j)<<endl;
pSpielerliste[j - 1].ZeigeDaten (); // <-- Hier liegt dein Fehler! 

}
Wenn der Benutzer '1' eingibt ist '0' im Array gemeint!
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

4

09.12.2005, 14:14

@Lemming
Vielen Dank für Deine Hilfe

@Nix da
was sind Codetags?

bassdscho

Alter Hase

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

5

09.12.2005, 16:05

wenn du Code postest setz in ["cpp"]CODE["/cpp"]
die " musst du weg machen
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Werbeanzeige