Sortierte Liste einer Klasse ausgeben?!
-
Das ist meine Aufgabenstellung:
Für statistische Untersuchungen werden verschiedene Merkmale (Größe, Gewicht, Alter und IQ) von Personen gemessen.
Entwerfen Sie die Klassen Person und Personenliste, die es erlauben, die Daten zu erfassen
und die erfassten Personen nach einem beliebigen, vom Benutzer auszuwählenden Merkmal sortiert auszugeben.
Implementieren Sie die beiden Klassen und ein zugehöriges Hauptprogramm,
das zum Testen der Funktionalität geeignet ist.Habe die Klassen schon geschrieben, auch die Daten schon erfassst.
Meine Frage ist, welches ist die beste Möglichkeit, in der Klasse "Personenliste" eine Liste von allen Personen, den Merkmalen nach sortiert, auszugeben. Finde da irgendwie den Ansatz nicht
Bin dankbar über jede Hilfe!
-
Welche Datenstruktur hast du zum Speichern der Personen in der Liste verwendet?
Schau dir mal das an, damit kannst du nach einem beliebigen Kriterium sortieren.
-
Du kannst in der Klasse Personenliste einen vector implementieren, der Personen übernimmt:
std::vector<Person> Personen;und du musst nur wissen, nach welchen Kriterien du sie sortieren willst. Name, IQ, Alter...
gruß
syntax
-
Ich hab eben die Personen noch nicht in der Liste gespeichert, weil ich nicht genau weiß wie das geht. Hab eigentlich gedacht dass ich die Ausgabe über einen Methodenaufruf in der main-funktion machen kann. Die methode wird dann aber ziemlich lang wenn ich da die Merkmale vergleich mit zb. if-Statements.
Aber ich komm nicht drauf wie ich das einfacher machen könnte.
-
in der Liste speicherst du so:
std::vector<Person> persons; persons.add(Person("Max", 12, 3.14); persons.add(Person("Moritz", 13, 1.71);
-
Was hat es mit st::vector auf sich?
-
progAnfänger schrieb:
Habe die Klassen schon geschrieben, auch die Daten schon erfassst.
Wie verwaltest Du denn die Personen in der Personenliste?
-
progAnfänger schrieb:
Was hat es mit st::vector auf sich?
stark vereinfachte Erklärung für Anfänger: der std::vector ist ein komfortabel zu bedienendes dynamisches Array.
-
progAnfänger schrieb:
Was hat es mit st::vector auf sich?
Das sollte dir das Einsteigerbuch deiner Wahl relativ schnell beibringen. std::vector ist eines der wichtigsten Teile der C++ Standardbibliothek, die wiederum ein ganz grundlegender Bestandteil von C++ ist.
-
Ein vector ist ein Container, der wie ein dynamisches Array funktioniert, aber wesentlich leichter anzuwenden ist. Man braucht sich nicht über manuelle Speicherverwaltung bemühen und macht so viel weniger Fehler.
Er kennt sehr nützliche Memberfunktionen wie push_back, pop_back, size,..gruß
syntax
-
Also ich mach das hier nur weil es eine Pflichtübung an meiner Uni ist, bin sonst überhaupt nicht am Programmieren interessiert, habe auch keine Bücher und versuch, mich hier irgendwie durch diese Übung durchzuarbeiten...also ich mach nur das Wichtigste, was bisher super funktioniert hat.
Belli schrieb:
progAnfänger schrieb:
Habe die Klassen schon geschrieben, auch die Daten schon erfassst.
Wie verwaltest Du denn die Personen in der Personenliste?
So sieht meine Klasse Person aus:
class Person{ int gr; int gew; int alt; int iq; public: Person(int gr=160, int gew=60, int alt=20, int iq=100){ this->gr=gr; this->gew=gew; this->alt=alt; this->iq=iq; }da drin hab ich dann noch die Methoden, mit denen ich Größe, Alter usw. einlese...
in der Klasse Personenliste hab ich noch nicht viel gemacht.
In der main-Funktion hab ich die Methodenaufrufe zur Klasse Person, um die ganzen Daten zu erfassen.
-
progAnfänger schrieb:
...bin sonst überhaupt nicht am Programmieren interessiert,...
Darf ich mal ernsthaft fragen warum die hiesigen Forenbenutzer die ihre Zeit in Antworten investieren, jemanden antworten sollen, der eh kein Interesse zeigt?
P.S: Wenn du einfach eine Lösung willst, gibt es das Projekteforum wo du gegen eine Nennung eines Betrages Aufgaben vergeben kannst. Wenn du wirklich Hilfe brauchst, solltest du auch wenigstens etwas Motivation zeigen.
-
progAnfänger schrieb:
Also ich mach das hier nur weil es eine Pflichtübung an meiner Uni ist, bin sonst überhaupt nicht am Programmieren interessiert,
Und du denkst die Leute hier sind daran interessiert, dir einfach so für lau diese lästige Pflichtaufgabe abzunehmen? Wir sind hier um Leuten zu helfen, die lernen wollen und nicht um denen das Leben leichter zu machen, die sich für ein Fach/eine Vorlesung entschieden haben, die ihnen nicht liegt und jetzt keinen Bock haben, die Konsequenzen selber zu tragen.
habe auch keine Bücher
Ohne Bücher wirst du nicht viel weiter kommen.
und versuch, mich hier irgendwie durch diese Übung durchzuarbeiten...
durchzumogeln wohl eher? Du versuchst ja, Arbeit wo möglich zu umgehen.
also ich mach nur das Wichtigste, was bisher super funktioniert hat.
Offenbar hat es das nicht, sonst würdest du jetzt nicht Fragen stellen, die man sich normalerweise halbwegs zügig selbst beantworten kann - wenn man es denn versucht.
Belli schrieb:
Wie verwaltest Du denn die Personen in der Personenliste?
So sieht meine Klasse Person aus:
Passt nicht ganz zur Frage, merkste?
in der Klasse Personenliste hab ich noch nicht viel gemacht.
Nicht viel oder garnichts? Gezeigt hast du auf jeden Fall noch nichts.