Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

C++ und das struct, Problem bei Klausurvorbereitung

Diskussion: C++ und das struct, Problem bei Klausurvorbereitung im Forum Code Kitchen, in der Kategorie Software Home; Anzeige //Update ok habs falscher zugriff auf die arrays.... *schäm* zugriff sieht so aus: studenten[i].Name //update ende Hallo, bis gerade ...

Antwort
Alt 23.02.11, 19:05   #1 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: 8086
Chakky eine Nachricht über ICQ schicken
Likes: 110
Standard C++ und das struct, Problem bei Klausurvorbereitung

Anzeige

//Update ok habs falscher zugriff auf die arrays.... *schäm* zugriff sieht so aus:
studenten[i].Name

//update ende

Hallo,

bis gerade eben dachte ich ich kann die Grundlagen in C++ aber ich komme mit den struct überhaupt nicht klar bzw in der aufgabe weis ich nicht wie ich richtig drauf zugreifen kann.

hier mal mein code:

Code:
#include<iostream>
using namespace std;

struct person {
char Name[40];
char Vorname[20];
int Matrikelnummer;
int Studiengang;
};

const int STUDENTENZAHL=10000; //sollen global verfügbar sein lt aufgabenstellung
person studenten[STUDENTENZAHL];

int get_stg(int stg) //sucht aus den ganzzahligen studiengang alle daten raus und gibt sie aus
{
    
for (int i=0;i<STUDENTENZAHL;i++) {
if (stg == studenten.Studiengang[i] and studenten.Studiengang[i] != 0 )
{
        cout<<"Name: "<<studenten.Name[i]<<endl;
        cout<<"Vorname: "<<studenten.Vorname[i]<<endl;
        cout<<"Matrikelnummer: "<<studenten.Martrikelnummer[i]<<endl;
        }
}
return 0;

}


int main() {
    int stgn,temp;
    cout<<"Studiengangnumer eingeben:";
    cin>>stgn;
   temp= get_stg(stgn);
    
    


system("PAUSE");
return 0;}
und hier die aufgaben stellung (ich weis die andere funktion fehlt noch aber wenn es schon an der einen funktion scheitert...)

ich habe das struct angepasst gemäß der variabeln defintion weiter unten,
der compiler von dev-c++ wirft mir folgende fehlermeldungen raus

Zitat:
D:\TU\Info\probbenochmal.cpp In function `int get_stg(int)':
18 D:\TU\Info\probbenochmal.cpp request for member `Studiengang' in `studenten', which is of non-class type `person[10000]'
d.h. für mich das er das net finden kann das struct oder? nur wie behebe ich das?


Aufgabenstellung:
Zitat:
Gegeben sei eine Struktur student
struct student {
char Name[40];
char Vorname[20];
int Matrikelnummer;
int Studiengang;
};

Aus dieser Struktur wird ein Feld studenten aufgebaut:

const int STUDENTENZAHL=10000;
person studenten[STUDENTENZAHL];

welches global verf¨ugbar ist. Das Feld sei bereits mitWerten belegt.Wenn weniger
als 10000 Studenten immatrikuliert sind, so ist das Strukturelement Matrikelnummer
des ersten freien Feldelementes mit dem Wert 0 belegt. Entwerfen und
implementieren Sie eine C++-Funktion get stg:

int get_stg(int stg);


in der das Feld studenten sequentiell durchmustert wird. Dabei sollen alle Studenten
(Name, Vorname, Matrikelnummer) auf dem Bildschirm ausgegeben werden,
die den als Parameter stg spezifizierten Studiengang (hier mit einer ganzen
Zahl beschrieben) studieren. Die Zahl der Studenten, die den spezifizierten Studiengang
studieren, soll von der Funktion zur¨uckgegeben werden. Desweiteren
soll eine C++-Funktion get anzahl entworfen und implementiert werden:
int get_anzahl();
die die Gesamtzahl aller immatrikulierten Studenten zur¨uck gibt. Demonstrieren
Sie die Verwendung der Funktionen get anzahl und get stg zur Ermittlung des
prozentualen Anteils der Studentenzahl eines vom Nutzer einzugebenden Studienganges
an der Gesamtzahl aller Studenten.
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world

Geändert von Chakky (23.02.11 um 19:29 Uhr) Grund: selbsständige problemfindung
Chakky ist offline   Mit Zitat antworten
Alt 24.02.11, 19:24   #2 (permalink)
 
Benutzerbild von bad_alloc
 
Registriert seit: 27.12.07
bad_alloc Leistung: 8086
Likes: 39
Standard

Du musst folgendes in Zeile 18 schreiben:
Code:
if (stg == studenten[i].Studiengang && studenten[i].Studiengang != 0 )
Der Grund ist folgender: der Zugriff auf Arrayelemente steht bei dir an dem Integer-Element und nicht am Array selbst:
array[index].element greift auf des Element der Stuct beim Index in array zu; array.element[index] würde bedeuten, dass das Element ein Array ist.
__________________
You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte.
|[A]| = p(·,|[A]|)+1

Geändert von bad_alloc (24.02.11 um 19:30 Uhr)
bad_alloc ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.02.11, 19:53   #3 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: 8086
Chakky eine Nachricht über ICQ schicken
Likes: 110
Standard

Zitat:
Zitat von bad_alloc Beitrag anzeigen
Du musst folgendes in Zeile 18 schreiben:
Code:
if (stg == studenten[i].Studiengang && studenten[i].Studiengang != 0 )
Der Grund ist folgender: der Zugriff auf Arrayelemente steht bei dir an dem Integer-Element und nicht am Array selbst:
array[index].element greift auf des Element der Stuct beim Index in array zu; array.element[index] würde bedeuten, dass das Element ein Array ist.
jo danke hab ich auch dann nach langer suche rausgefunden aber den fehler werde ich bestimmt nicht mehr in der klausur machen
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » C++ und das struct, Problem bei Klausurvorbereitung
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



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