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
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Aufgabenstellung Kapitel 5 // #include "field.h" #include <iostream> using namespace std; int main() { FieldMenue(); return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Aufgabenstellung Kapitel 5 // // Variablen const int Breite = 5; const int Hoehe = 5; int x; int y; struct sField { bool bUsed; char Name[50]; }; sField sFieldData[Breite][Hoehe]; // Funktionen int FieldMenue(); int printField(); int deleteField(); int writeField(); int showField(); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
// Aufgabenstellung Kapitel 5 // #include "field.h" #include <iostream> using namespace std; int FieldMenue() { int ProgramMenueEingabe; do { cout << "Menue\n"; cout << "1: Feld zeigen\n"; cout << "2: Feld besetzen\n"; cout << "3: Felddaten anzeigen lassen\n"; cout << "4: Feld Loeschen\n"; cout << "5: Programm beenden\n"; cout << "Deine Wahl: "; cin >> ProgramMenueEingabe; if(ProgramMenueEingabe == 1) printField(); else if(ProgramMenueEingabe == 2) writeField(); else if(ProgramMenueEingabe == 3) showField(); else if(ProgramMenueEingabe == 4) deleteField(); else if(ProgramMenueEingabe == 5) cout << "Tschüss!"; else cout << "Falsche Eingabe!" << endl; }while(ProgramMenueEingabe != 5); return 0; } int writeField() { int xx; int yy; do { cout << "Gib bitte die Koordinaten an: (1-5)\n Breite: "; cin >> xx; cout << "Gib bitte die Koordinaten an: (1-5)\n Hoehe: "; cin >> yy; }while((xx < 5) || (xx > 0) && (yy < 5) || (yy > 0) && sFieldData[xx-1][yy-1].bUsed == false); cout << "Bitte Namen für dieses Feld eingeben: "; cin.ignore(); cin.get(sFieldData[xx-1][yy-1].Name, 49); sFieldData[xx-1][yy-1].bUsed = true; return 0; } int printField() { for (y=0; y<Hoehe; y++) { for (x=0; x<Breite; x++) { if(sFieldData[x][y].bUsed == true) cout << "x"; else cout << "."; } cout << endl; } return 0; } int deleteField() { for (y=0; y<Hoehe; y++) { for (x=0; x<Breite; x++) { sFieldData[x][y].bUsed = false; } } return 0; } int showField() { int xPos; int yPos; do { cout << "Bitte Breitengrad angeben: (1-5) "; cin >> xPos; cout << "Bitte Hoehengrad angeben: (1-5) "; cin >> yPos; }while((xPos < 5) || (xPos > 0) && (yPos < 5) || (yPos > 0)); if (sFieldData[xPos-1][yPos-1].bUsed = false) cout << "Dieses Feld ist noch nicht belegt!" << endl; else cout << "Belegt von " << sFieldData[xPos-1][yPos-1].Name << endl; return 0; } |
killmichnich
unregistriert
Community-Fossil
C-/C++-Quelltext |
|
1 2 |
#ifndef FIELD_H #define FIELD_H |
C-/C++-Quelltext |
|
1 |
#endif |
Zitat von »"NachoMan"«
wie wärs wenn du erstmal keine globalen variablen benutzt?
edit: dein problem ist dass du den header in 2 cpp datein includierst. schreib das an den anfang der headerdatei:
C-/C++-Quelltext
1 2 #ifndef FIELD_H #define FIELD_H
und ans ende
C-/C++-Quelltext
1 #endif
problem gelöst
Community-Fossil
Quellcode |
|
1 2 |
1>main.obj : error LNK2005: "struct sField (* sFieldData)[5]" (?sFieldData@@3PAY04UsField@@A) ist bereits in field.obj definiert. 1>C:\...\main.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden. |
Community-Fossil
C-/C++-Quelltext |
|
1 |
sField sFieldData[Breite][Hoehe]; |
Community-Fossil
Werbeanzeige