Zum Inhalt springen

Programmierung einer Lagerverwaltung in JAVA


Empfohlene Beiträge

Geschrieben

Guten Tag,

und zwar soll ich eine Software programmieren, die die kürzeste Route innerhalb eines Lagers berechnet und diese ausgibt. Das Lager besteht aus Räumen, in welchen Verschiedene Regale vorhanden sind. Meine Frage ist nun, welche Möglichkeiten euch einfallen diese Gegebenheit zu programmieren. Ich habe mich sehr kurz gefasst, das weiß ich. Im grundegenommen möchte ich auf einem Bereich Regale platzieren und ich habe mich noch nicht so ganz entschlossen, wie ich das machen könnte. Meine Idee wäre ein Mehrdimensionales Array für das Lager zu machen und dort die Schränke mit anderen mehrdimensionalen Arrays zu platzieren. Nur ist die Frage, ob man auf Mehrdimensionalen Feldern auch andere Mehrdimensionale Felder ablegen kann. Oder fällt euch was besseres ein? Wie meint ihr kann man die Räume kennzeichnen und überhaupt die Route berechnen?

Geschrieben (bearbeitet)

Hi!

Ja, du kannst Arrays verschachteln.

Um dir helfen zu können fehlen mir noch Informationen zu deiner Code-Struktur und Zielstellung. Da wären z.B. ein UML-Diagramm und ein PAP hilfreich. Außerdem müsste ich wissen, anhand welcher Umstände die Routen berechnet werden sollen, spielt z.B. eine Metrik wie Steigung der Wege eine Rolle?

Ich gehe davon aus, dass du objektorientiert programmieren möchtest. Also schätze ich, dass du Räume, Regale und Bereiche durch Klassen realisiert hast. Um eine Route berechnen zu können, brauchst du ja irgendeine Repräsentation der möglichen Wege und Schritte.Ich würde mir ein Grid-Modell ausdenken, also ein 2D-Koordinatensystem. Die Regale erhalten dann Koordinaten in Form von Punkten (x,y). Nun könnte man es ganz einfach und statisch halten und die konkreten Routen zu allen anderen möglichen Zielen in einem mehrdimensionalen Array hinterlegen:

Bsp:

5 Regale A, B, C, D und E haben die Koordinaten (1,1), (2,2), (3,1), (2,4), (2,5). Die möglichen Routen sind so definiert, dass man von B aus in alle Räume außer E kommt, E ist nur mit D direkt verbunden.

--> Array mit 5 Feldern für Regale, in den Feldern dann Arrays mit Zielen.

(A) -> (B)
(B) -> (A,C,D)
(C) -> (B)
(D) -> (B,E)
(E) -> (D)

Wenn nun die Aufgabe lautet: Berechne Route von E nach A, kannst du bei E beginnend rekursiv über die Ziele iterieren und schauen, welche Routen dich nach A bringen und welche davon die geringste Differenz haben. Die Differenz kann man Berechnen, indem man die Differenzen der einzelnen Punkt-Koordinaten berechnet.

Bearbeitet von L3v14than
Geschrieben (bearbeitet)

Ok danke euch schonmal, also beim Klassendiagramm bin ich mir noch etwas unsicher. Ich habe aber mal mein User Case-Diagram hinzugefügt, vllt. hilft euch das noch, um das Programm zu verstehen. Also genau L3v14than die Route hat keine Steigung, das Lager hat nur mehrere Etagen, sobald man mehr als 2 Etagen absuchen muss, sollte der Auftrag aufgeteilt werden. Und wie genau kann man Arrays verschachteln. Also wenn ich jetzt ein Feld habe und dort ein Regal platzieren möchte, dass eine Länge von x und eine breite von y und je Fach noch eine Aufteilung in drei verschiedene Verschiebbare Bereiche hat. Das Programm muss ja auch überprüfen können, wo sich das Produkt befindet, dass am kürzesten zu erreichen ist. Das heißt ich müsste ein Zusammenspiel aus den Räumen, den Produkten und dem Koordinatensystem(für die Routenberechnung) haben. Oder verstehe ich dich da falsch?

 

Danke für eure Hilfe

Bearbeitet von Chief Wiggum
Dateianhang entfernt.
Geschrieben (bearbeitet)

Das "Verschachteln von arrays" findest du mit google unter genau diesen Worten im ersten Treffer.  ?
Dabei ist "mehrdimensionales array" präziser.
Letztlich:

int [] [] myArray = new int[4][2];

Leg bitte die komplette Aufgabenstellung auf den Tisch. Gerne gehe ich da mit dir zusammen durch, aber nur frustriert, wenn sich wichtige Spezifikationen mittendrin ändern. 

Die weitere DImension ist aber nicht schwer hinzuzufügen, die Koordinaten erhalten nur eine Angabe mehr: P(x,y,z).

Was Zusammenspiel von Räumen, Regalen und Produkten betrifft: Da kommt es auf deine Spezifikation/Aufgaben-/Zielstellung an. Musst du denn mit mehrdimensionalen Arrays arbeiten? Du könntest dir ansonsten für die Dinge Klassen anlegen:

class Raum{
  private 3dPunkt punkt;
  private Regal[] regale;
  //Konstruktor, Getter und Setter
}

class Regal{
  private Artikel[][] artikel = new Artikel[breite][laenge];
  //Konstruktor, Getter und Setter
}

class Artikel{
  private String artikelName;
  private double artikelPreis;
  //etc. 
 //Konstruktor, Getter und Setter 
}

Dann legst du dir eine HashMap<Raum, Vector<Raum>> an und legst so zu jedem Raum die verbundenen Räume fest.

Bearbeitet von L3v14than

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...