Dionysos211 Geschrieben 12. Mai 2011 Geschrieben 12. Mai 2011 (bearbeitet) 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 12. Mai 2011 von Dionysos211 Zitieren
Klotzkopp Geschrieben 12. Mai 2011 Geschrieben 12. Mai 2011 Ist dir klar, dass du für die Bearbeitung dieser Aufgaben keine einzige Zeile Code schreiben musst? Zitieren
Dionysos211 Geschrieben 12. Mai 2011 Autor Geschrieben 12. Mai 2011 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.. Zitieren
Klotzkopp Geschrieben 13. Mai 2011 Geschrieben 13. Mai 2011 aber dennoch kommt als Punkt 4 (den hab ich oben nun nicht gepostet) die umsetzung dessen in #c #c gibt's nicht. Meinst du C oder C#? Das sind zwei verschiedene Programmiersprachen. Zitieren
Dionysos211 Geschrieben 13. Mai 2011 Autor Geschrieben 13. Mai 2011 oh, peinlich ich dachte irgendwie immer C = C# und das C# nur die übliche Schreibweise fürs Netz wäre damit Suchmaschinen damit besser umgehn könnten ^^ aber jetzt bin ich schlauer C, C#(MS .NET), C++... also ich soll das ganze in C schreiben... Schande über mein Haupt -.- Zitieren
Dionysos211 Geschrieben 16. Mai 2011 Autor Geschrieben 16. Mai 2011 Info die Dateien sollen CSV sein... Zitieren
Klotzkopp Geschrieben 16. Mai 2011 Geschrieben 16. Mai 2011 Hast du Beispieldateien? Mir ist gerade nicht ganz klar, wie sich die Daten auf die 2 Dateien aufteilen. In der einen die Kunden, in der anderen die Interessen, oder gemischt? Zitieren
Dionysos211 Geschrieben 16. Mai 2011 Autor Geschrieben 16. Mai 2011 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.... Zitieren
lilith2k3 Geschrieben 16. Mai 2011 Geschrieben 16. Mai 2011 Vorschlag ausser Konkurrenz: Schreibe Dein Programm in C++ und nutze die Containerklassen der Standard Template Library ... Zitieren
Dionysos211 Geschrieben 16. Mai 2011 Autor Geschrieben 16. Mai 2011 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... Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 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;.... Zitieren
Klotzkopp Geschrieben 17. Mai 2011 Geschrieben 17. Mai 2011 Wie du das implementierst, sollte sich eigentlich aus deinen Ergebnissen für Aufgabenteil 2 und 3 ergeben. Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 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... Zitieren
Klotzkopp Geschrieben 17. Mai 2011 Geschrieben 17. Mai 2011 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 ZeileDu 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. Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 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... Zitieren
Klotzkopp Geschrieben 17. Mai 2011 Geschrieben 17. Mai 2011 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. Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 (bearbeitet) 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 17. Mai 2011 von Dionysos211 Zitieren
Klotzkopp Geschrieben 17. Mai 2011 Geschrieben 17. Mai 2011 Interesse1 Beschreibung1 Interesse2 Beschreibung2 Interesse3 Beschreibung3 Interesse4 Beschreibung4 Interesse5 Beschreibung5Wenn 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. Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 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... Zitieren
Klotzkopp Geschrieben 17. Mai 2011 Geschrieben 17. Mai 2011 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? Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 Ich kenn den Begriff von Datenbanken her... (Beziehungen und Typen festlegen) 1-N = 1 bis beliebig viele.. meinst du dann so etwas... (vielleicht nicht gerade hübsch) Zitieren
Klotzkopp Geschrieben 17. Mai 2011 Geschrieben 17. Mai 2011 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? Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 yes sollte ne verkettete Liste sein.. ok mal pur ER-Modell dann wäre meine verkettete Liste ja die Beziehung... abgebildet als Verknüpfungstabelle (später) also 2 Entitäten: Person und Interesse... dazwischen eine n:m Beziehung.. Zitieren
Dionysos211 Geschrieben 17. Mai 2011 Autor Geschrieben 17. Mai 2011 ich füge nochmal fix Attribute hinzu... Zitieren
Empfohlene Beiträge
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.