Struktur Daten einlesen Array



  • Hallo zusammen,
    ich sitze gerade an folgender Aufgabe: Es soll eine Datei mit Daten für eine Liste erstellt werden(in Form einer Struktur). Die Datei soll dabei maximal 100 Datensätze vom gleichen Aufbau enthalten. Meine Frage ist nun, wie ich am besten/am schnellsten die Datensätze eingebe. Mein Ansatz ist folgender:

    struct Leistungsnachweise
    {
    	string Name;
    	string Vorname;
    	long int MatrNummer = 0;
    	struct Adresse;
    	bool Geschlecht = 0;
    	int Noten[10] = { 0 };
    };
    
    struct Adresse
    {
    	long int Postleitzahl;
    	char Stadt[20];
    	char Strasse[20];
    };
    
    
    int main()
    {
    	int Anzahl;
    
    	do
    	{
    		cout << "Bitte geben sie die Anzahl der Personen ein! " << endl;
    		cin >> Anzahl;
    
    	} while ((Anzahl < 0) || (Anzahl > 100));
    
    	Leistungsnachweise* PtrEintraege;
    	PtrEintraege = new Leistungsnachweise[Anzahl];
    
    	cout << endl << "Bitte geben sie die Daten der Personen ein! " << endl;
    
    	for (int i = 0; i < Anzahl; i++)
    	
    
    	system("PAUSE");
    	return 0;
    }
    

    Meine Idee war jetzt, die Einzelnen Daten in der Struktur mittels Array und for-Schleife einzulesen. Nur weiß ich nicht genau, wie das funktionieren soll. Hat da jemand ne Lösung?


  • Mod

    Das ist C mit cout, gemischt mit etwas Java, aber kein C++. Welche Sprache willst du wirklich lernen? Und wer hat dir das so beigebracht? Unbedingt sofort Lernmethode wechseln, denn du lernst gerade gleichzeitig drei verschiedene Sprachen, und alle 3 falsch!

    @jand61 sagte in Struktur Daten einlesen Array:

    Meine Idee war jetzt, die Einzelnen Daten in der Struktur mittels Array und for-Schleife einzulesen. Nur weiß ich nicht genau, wie das funktionieren soll. Hat da jemand ne Lösung?

    Dann tu das? Was ist dein Problem? Dein Ansatz ist zwar nicht effizient oder skalierbar (Wozu zwischenspeichern? Schreib doch direkt!), aber sollte funktionieren.

    PS: postleitzahlen und matrikelnummern sind keine Zahlen sondern Ziffernfolgen! Faustregel: Wenn du nicht damit rechnen willst, ist es keine Zahl, selbst wenn es aus Ziffern besteht (und umgekehrt bestehen Zahlen nicht aus Ziffern, sondern können mit Ziffern dargestellt werden).



  • @jand61 Warum benutzt du mal string, bei der Adresse aber ein char array?
    Und seit (m/w/d) reicht ein boolnicht mehr.

    Wie liegen die Daten denn vor?
    Am einfachsten wäre eine CSV-Datei.



  • Ich bin verwirrt - soll nun eine Datei erstellt werden, oder eingelesen?



  • @DirkB sagte in Struktur Daten einlesen Array:

    Und seit (m/w/d) reicht ein boolnicht mehr.

    Auch ohne 'd' wäre mir jetzt nicht klar, ob mein Geschlecht true oder false ist.



  • @Jockelx sagte in Struktur Daten einlesen Array:

    @DirkB sagte in Struktur Daten einlesen Array:

    Und seit (m/w/d) reicht ein boolnicht mehr.

    Auch ohne 'd' wäre mir jetzt nicht klar, ob mein Geschlecht true oder false ist.

    Vielleicht ist es mit 0 und 1 eindeutiger?



  • @SeppJ
    Wie ich bereits geschrieben habe...wenn ich wüsste wie es geht, würde ich es logischerweise machen. Aber ich weiß nicht wie ich in einer Schleife auf die einzelnen Einträge in der Struktur zugreife.

    @DirkB
    die Datentypen für die Einträge habe ich 1:1 aus der Aufgabenstellung übernommen.


  • Mod

    @jand61 sagte in Struktur Daten einlesen Array:

    @SeppJ
    Wie ich bereits geschrieben habe...wenn ich wüsste wie es geht, würde ich es logischerweise machen. Aber ich weiß nicht wie ich in einer Schleife auf die einzelnen Einträge in der Struktur zugreife.

    Dann fangen wir doch mal da an: Du hast ja offenbar schon einmal von Structs gehört. Was, wenn das nicht in einer Schleife wäre? Wie würdest du es bei nur einem Objekt machen?

    @DirkB
    die Datentypen für die Einträge habe ich 1:1 aus der Aufgabenstellung übernommen.

    Damit sind wir wieder beim Lehrerwechsel. Ernsthaft. Die Datenstruktur ist hinterletzter Schrott. Sowohl von der Modellierung her, als auch vom Sprachverständnis. Die main-Funktion sieht aus wie schlechtes Java. Du bist auch eindeutig nicht korrekt unterrichtet worden, sonst wüsstest du die Antworten auf die Fragen, die du hast (Die sind nämlich extrem einfach und zentraler Punkt dieses Teils des Unterrichtsstoffs). Alles was wir hier sehen schreit "Schlechter Lehrer!".

    Schlecht vermittelter, falscher Stoff sorgt dafür, dass du keinen Erfolg mit diesem Unterricht haben wirst und wahrscheinlich frustriert aufgeben wirst. Oder falls du doch irgendwie nicht aufgibst, wirst du später alles sehr mühsam wieder verlernen müssen. Denn ich verspreche dir: Das was in dem Beispielprogramm gezeigt wird, hilft dir gar nichts, das ist kompletter Unsinn.

    Mit der Matrikelnummer in der Aufgabe, nehme ich an, das ist eine Vorlesung an irgendeiner Art Hochschule? Wenn ja, dann hast du das Glück, dass du da ja einfach die Vorlesungen schwänzen kannst und stattdessen z.B. auf eigene Faust ein gutes Buch lesen könntest.



  • strukturzugriff geht mit strukturname.elementname oder - sofern die struktur als zeiger vorliegt - mit strukturname->elementname



  • @Wade1234 sagte in Struktur Daten einlesen Array:

    sofern die struktur als zeiger vorliegt

    liest du dein zeug ab und zu bevor du es abschickst?



  • @jand61 oder wenn es ein Array ist arrayname[index].elementname



  • @Swordfish was gefällt dir daran nicht?



  • Was soll denn eine "Struktur, die als Zeiger vorliegt" sein?
    Beispiel bitte.



  • @Belli

    void MeineFunktion(struct MeineStruktur *ms)
    {
         ms->data = 0;
    }
    

    ja das war unglücklich ausgedrückt. bitte 1000 mal um verzeihung. 🙄



  • Okay, das hilft mir schon mal weiter, danke! . Welches Buch könnt ihr mir denn empfehlen?



  • "Der C++ Programmierer" von Ulrich Breymann zB. Es gibt hier im Forum aber auch Buchvorschläge.


  • Mod

    Da ist buchstäblich ein Link zu einer Bücherliste in meinem Beitrag 🙄


Log in to reply