Jump to content

Programmierung einer Lagerverwaltung in JAVA

Empfohlene Beiträge

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?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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


Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung