Zum Inhalt springen

Umsetzung unklar struct, in array oder chained list


Dionysos211

Empfohlene Beiträge

Nabend,

ich bräuchte da etwas Hilfe :/

Nicht konkret für den #C Code, sondern vielmehr für das richitge Konzept.

Aufgabenstellung in etwa:

----------

2 Kundendateien sind entsprechend folgender Struktur unsortiert aufgebaut:

Name, Adresse, Geburtsdatum, Interessen (1-N), Kurzbeschreibung der Interessen

(Ein Kunde kann mehrere Interessen haben)

Die Dateien sollen alternativ nach Name oder Interesse sortiert, zu einer geordneten Folge

gemischt und in einer dritten Datei ausgegeben werden.

Alternativ sollen Bubble und Quicksort-Verfahren verwendet und die Zeiten verglichen

werden. Hierfür sind über einen geeigneten Generator hinreichend große Mengengerüste

(10.000 Elemente) zu erzeugen.

---------

Dies soll ich nun bearbeiten:

---------

1. Das Programm muss ausführlich spezifiziert werden:

- Festlegung des Programmverhaltens (ohne technische Festlegung)

- Festlegung der Dialogführung

- Reaktion auf Bedienfehler

- Testplan

2. Der zur Lösung notwendige Algorithmus muss beschrieben werden

3. Der zur Lösung gewählte Systementwurf (Struktur, Schnittstellen) und logische

Programmablauf muss durch geeignete Diagramme dargestellt werden.

----------

Meine Fragen dazu:

Wie sollte ich das am besten umsetzen ?

Ich dachte da so an struct und das dann als array... oder ist das eher schlecht ?

dann dachte ich dabei an einer struct in struct bei adresse

so und natürlich die interessen am besten auch als struct in struct...

da ich diese generieren will (irgendwie, wie auch alle anderen kundendaten irgendwie .. - kein plan bis jetzt wie genau)

und da hab ich n dickes problem... sortieren nach name glaub ich bekomm ich hin aber sortieren nach Interesse..

bei einer structur die da dann in etwa so aussehe

.............Name: bla; usw. bis Interesse1 : Fußball; Beschreibung1: im Verein

..........................................Interesse2 : Tennis; Beschreibung1: privat

..........................................Interesse3 : Golf; Beschreibung1: Damals mal im Urlaub gespielt

..........................................Interesse4 :....

Joa wie würde ich das projekt am besten angehen...

und welchen sortier algo nimmt man da am besten ? eignet sich für diese art noch quicksort...

p.s. ich hab noch nie wirklich mit strct und struct als array gearbeitet.. aber bin dabei mich ein zu lesen .. also das würde irgendwann schon dann auch gehn :)

nur ob überhaupt sinnvoll ist... und ist das wirklich so easy den kram aus der datei auszulesen ?

also mit fopen... und dann ein kompletter datensatz pro zeile mit ";" getrennt-... oda so in der art.. :/

vielen vielen dank für eure hilfe...

Bearbeitet von Dionysos211
Link zu diesem Kommentar
Auf anderen Seiten teilen

Jub I know

Ich hab auch schon etliches dazu geschrieben..

Pflichtenheft quasi was soll das programm grob können

welche funktionen es abarbeiten muss (ohne tschnische ausführung halt)

alles schön mit Diagrammen usw...

aber dennoch kommt als Punkt 4 (den hab ich oben nun nicht gepostet) die umsetzung dessen in #c

und da ich in meinem Bericht quasi "immer nur um den heißen brei" geredet habe.... muss aus dem was es tut ein wie tut es werden...

und da scheiter ich grob an dem punkt das ich so etwas (in meinen augen) komplexes noch nicht umgesetzt habe...

und erhoffe mir nun quasi wegweisende hilfe wie ich das am besten umsetze... worauf ich son bischen achten muss...

struct als array oder listen oder doch ganz anders.. qsort bubble sort heap oder nur etwas schreiben was dem nahe kommt..

und wie stell ich das mit den interessen an.. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Generell gilt beide Dateien enthalten komplette Datensätze...

man stelle sich ein Adressbuch vor das von A - G und H - Z auf zwei Dateien aufgeteilt wurde...

nur dabei ging was schief und man erhielt A C G B E D usw... in Datei 1 und genau son "gewusel" in Datei 2...

Die Beispieldaten schreib ich auch selber, dazu soll ich auch noch ein Generator schreiben....

Link zu diesem Kommentar
Auf anderen Seiten teilen

bin an C gebunden :)

die Dateien beinhalten halt beide so etwas wie:

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Ich kann die aber selber aufbauen... also wenn jemand ne idee hat wie ich das besser anstellen kann, immer her damit...

Link zu diesem Kommentar
Auf anderen Seiten teilen

also noch einmal, wie man sich die Dateien vorstellen kann:

Datei 1 (1 Datensatz je Zeile unsortiert)

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

..(.. soll nur heißen usw.)

..

..

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Datei 2 (Wie Datei 1 nur keine Datensätze aus Datei 1)

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

.. (.. soll nur heißen usw.)

..

..

Name; Straße; Hausnummer; PLZ; Ort; Geburtsdatum; Interesse1; Kurzbeschreibung1; Interesse2;....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mein Problem ist das ich was C angeht derweil noch recht laienhaftes Wissen habe, und daher nur bedingt konkrete Aussagen über den Systemaufbau geben konnte.

Überlegungen:

CSV Dateien zum einlesen erstellen

Atribute mit Semikolon getrennt

1 Datensatz je Zeile

Beide Dateien sortieren mit Quicksort

zusammenführen mit Mergesort

Ausgabe als CSV

aber wie ich das konkret mache... kein plan...

und vorallem das sortieren nach den Interessen

Denn ich hab keine Vorstellung wie ich die Datensätze dann im Array abbilden soll.. oder ob der Gedanke mit dem Array völlig bescheuert ist..

das wäre dann ja ne List in ner Struct in einem Array oder sowas für die Interessen..

Wenn ich das gedacht mal in Excel übertrage habe ich ein Datensatz pro Zeil in jeder Spalte ein Attribut, nur in einer Spalte sind in einer Zelle 5 Attribute als Aufzählung untereinander...

kein plan wie ich so alle Datensätze nach Interessen sortieren soll...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mein Problem ist das ich was C angeht derweil noch recht laienhaftes Wissen habe, und daher nur bedingt konkrete Aussagen über den Systemaufbau geben konnte.
Der Entwurf hat mit der Programmiersprache nicht viel zu tun.

1 Datensatz je Zeile

Du hast hier die gesamte Verarbeitung beim Einlesen auf einen Satz reduziert. Ich würde sagen, das ist nicht detailliert genug.

und vorallem das sortieren nach den Interessen

Denn ich hab keine Vorstellung wie ich die Datensätze dann im Array abbilden soll.. oder ob der Gedanke mit dem Array völlig bescheuert ist..

das wäre dann ja ne List in ner Struct in einem Array oder sowas für die Interessen..

Vergiss doch erst mal Struct, Liste und Array. Mach zuerst ein Datenmodell.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber ich muss doch wissen was überhaupt möglich ist... :/

Ich dachte Das Datenmodell ist genau das wie ich mit den Dateien umgehen will und wie diese aufgebaut sein sollen...

dazu muss ich doch wissen wie ich die Dateien einlesen kann und wie die Daten vorhanden sein müssen damit ich sie mit einer geeigneten Methode abspeichern kann... und das ganze so das ich sie zur Weiterverarbeitung sortieren kann...

:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Möglich ist zunächst alles. Mach erst mal einen sauberen Entwurf, ohne dich groß darum zu kümmern, wie du das später umsetzt. Wenn es sich nicht umsetzen lässt, kannst du immer noch den Entwurf anpassen. Aber nicht beides wild durcheinander machen.

Denk noch nicht ans Einlesen oder Abspeichern. Überleg dir, wie die Daten organisiert sind. Und damit meine ich nicht das Dateiformat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Den Entwurf/Analyse was das Programm machen soll und wann (Dialog mit dem Nutzer) hab ich...

Quasi eine Auflistung von Funktionen (lediglich eine Namensgebung was sie können müsste, nicht wie)

Und bei den Dateien dacht ich auch erst an einer Textdatei, in der Die zu Lesenden Daten folgendermaßen organisiert sind:

Nachname

Vorname

Geburtsdatum

Strasse

Hausnummer

PLZ

Ort

Interesse1

Beschreibung1

Interesse2

Beschreibung2

Interesse3

Beschreibung3

Interesse4

Beschreibung4

Interesse5

Beschreibung5

Damit ich die einzelnen Attribute explizit von einander trennen kann nutze ich das Semikolon

Nachname;Vorname;Geburtsdatum;Strasse;Hausnummer;PLZ;Ort;Interesse1;Beschreibung1;Interesse2;Beschreibung2;Interesse3;Beschreibung3;Interesse4;Beschreibung4;Interesse5;Beschreibung5

Damit ich weiß wann ein "zusammenhängender" Satz also alle Infos zu einer Person aufhören und eine neue Person beginnt, nehme ich en linefeet

sprich sobald ein Zeilenumbruch erfolgt beginnt eine neue Person...

Beide Dateien sind so aufgebaut nur sind sie nicht nach Namen sortiert...

Das Programm sollte nun als erstes über eine Funktion diese Datei öffnen und Wert;Wert;Wert einlesen können...

Und diese Daten dann in der gleichen Reihenfolge wie in der Datei zwischenspeichern können...

Die zwischengespeicherten Daten sollen sortiert werden können über eine Funktion sortienName() und sortierenInteresse()

Ist das passiert soll es dies auch mit der zweiten Datei noch einmal so machen...

Nun soll es die Möglichkeit geben beide Dateien zusammen zu führen, dafür soll gefragt werden wonach die ausgegebene Datei sortiert werden soll... Damit beide Dateien vor dem zusammenführen gleich sortiert sind und nicht eine nach namen und eine nach Interessen.

Dann sollen die Daten ähnlich einem Reißverschlussverfahrens in eine Neue Datei geschrieben werden... so das sie in der richtigen Sortierung in der neuen Datei vorhanden sind...

Alle Dateien sollen auch ohne das Programm lesbar und verständlich sein...

-----

Meinst du so ?

Bearbeitet von Dionysos211
Link zu diesem Kommentar
Auf anderen Seiten teilen

Interesse1

Beschreibung1

Interesse2

Beschreibung2

Interesse3

Beschreibung3

Interesse4

Beschreibung4

Interesse5

Beschreibung5

Wenn es weniger als 5 sind, hast du Platz verschwendet. Und wenn es mehr sind, kannst du das gar nicht abbilden.

Meinst du so ?

Ich sagte doch, ich meine nicht das Dateiformat.

Hast du so etwas überhaupt schon einmal gemacht? Du scheinst mit mit der Aufgabe etwas überfordert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

genau das ist es...

ich bin mit dieser Aufgabe überfordert, aber machen muss ich sie trotzdem :/

deswegen such ich ja Hilfe...

Zum Interesse hatt ich mich auf 5 festgelegt obwohl da steht 1-N weil ich nur so überhaupt ne Ahnung habe wie ich die Datei lesen könne :/

Ich weiß ich denk schon wieder über das einlesen nach..

Und jub, ich habe so etwas noch nie gemacht...

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich bin mit dieser Aufgabe überfordert, aber machen muss ich sie trotzdem :/
Vielleicht solltest du darüber mit demjenigen sprechen, der dir diese Aufgabe gestellt hat.

Zum Interesse hatt ich mich auf 5 festgelegt obwohl da steht 1-N weil ich nur so überhaupt ne Ahnung habe wie ich die Datei lesen könne :/
Damit machst du es dir etwas zu einfach.

Kennst du dich denn mit Datenmodellierung aus? Weißt du, was eine 1-zu-N-Beziehung ist?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kenn den Begriff von Datenbanken her... (Beziehungen und Typen festlegen)
Super. Dann mach das doch mal für diese Daten.

Dein Diagramm geht da schon zu weit, das soll wohl eine verkettete Liste darstellen, aber das ist ein Implementierungsdetail, das hat im Datenmodell nichts verloren.

Welche Entitäten hast du, und welche Attribute und welche Beziehungen haben sie?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...