Programmstruktur
-
Hallo Community,
ich bin gerade dabei ein Lagerverwaltungsprogramm zu schreiben. Nun überlege ich mir erst mal wie ich vor gehe. Erst mal zur Aufgabe:
"Ein Lager hat [X][Y] Fächer. Alle Teile werden nebeneinander abgelegt mit der Kennung:
Nummer, Bezeichnung, Breite, Gewicht
Das Lager soll folgende Bedingungen erfüllen:
- die Fächer sollen von vorne möglichst gut gefüllt werde
- die Teile sollen wiedergefunden werden.
- die frei werdenden Fächer sollen entsprechend zur Einlagerung benutzt werden
- die Nummern sollen sortiert abgelegt werden, um in einer Datei als Inventurliste abgespeichert werden zu können.
- bei Einlagerung gleicher Nummern soll das first in/first out Prinzip eingehalten werdenNun habe ich mir überlegt eine Struktur in einer Struktur zu verwenden und zwar in diesem Sinne:
struct Teile { int Nummer; char Bezeichnung; int Breite; int Gewicht; }[5][5]; struct Lager { struct Teile; p1 //pointer auf die nächste Inventarnummer; p2 //pointer auf das nächste Teil im Lager }
Nun meine Frage:
Was wäre nun die beste Möglichkeit ein Teil in der Struktur zu finden? Ich hatte vor, erst ein mal alles nach der Inventurnummer zu sortieren (aufsteigend). Und je nach Suchkriterium (Gewicht, Breite, Bezeichnung) dann noch einen Pointer in die äußere Liste zu packen und jedes Teil dann iterativ zu durchlaufen bis das gesucht Teil gefunden wurde.Klingt das vom Ansatz her gut? Habe ich einen Denkfehler oder ist das völliger Murcks? Kennt ihr bessere Möglichkeiten?
Ich bitte um Rückmeldungen und Anregungen!
Vielen Dank
gruß akrist
-
Super Herangehensweise!
Erst die Datenmodellierung, dann der Rest.
Mache so weiter mit Top-Down, d.h. schreibe für jeden deiner Anwendungsfälle erstmal eine (leere) Funktion, die jeweils einen Parameter auf deinen Gesamtdatenbestand und bei Bedarf weitere übergeben bekommt.
Das Ganze dann in main mit einer kleinen Menüsteuerung und switch/case.
-
Nur deine Bezeichnung sollte besser *char Bezeichnung sein. Mit einem Zeichen kommst du sonst nicht weit.
Für den Anfang meinetwegen auch char Bezeichnung[40].Hast du dir mal überlegt gleich eine Datenbank zu nehmen? Dafür sind die da.
-
Ja eigentlich kann man eine Datenbank nehmen. Jedoch ist das eine Aufgabe, die mir Strukturen und verkettete Listen näher bringen soll (bin an einer FH). Von daher werde ich es wohl ohne Datenbank realisieren.
-
Die Array-Grenzen bei der Struct-Definition sind etwas nutzlos, genauso wie das namenlose
struct Teile
im Lager. Du willst vermutlich im Lager ein Array unterbringen, oder?PS: Und auf lange Sicht solltest du die Array-Grenzen durch benannte Konstanten ersetzen.