OOP berechnen und ausgeben?

Brutos66735

Grünschnabel
Hallo zusammen,
ich hätte mal paar Fragen zu oop bin schon richtig confused, und zwar habe ich einen LKW (40 Tonnen) der 3 mögliche Waren laden kann, die Ausgabe sollte folgendermaßen ablaufen.

Die Waren werden nacheinander geladen ware1 -> ware2 -> ware3.
Sobald der Frachtraum mit einer Ware vollbeladen ist, wird keine weitere Ware mehr geladen.

Text Ausgabe z. B.
Der LKW hat folgende Ware geladen 35.000 von $ware1und 5.000 von $ware2 0 von $ware3

Was würdet ihr mir als Tipp oder Rat geben?

Hier mal mein Script

Lg Dirk

PHP:
<?php
$ware1 = 35000;    
$ware2 = 7000;
$ware3 = 1500;

class LKW{
protected $frachtraum = 0;
const FRACHTRAUM_MAX = 40000;
public function __construct() 
{
$this->typ = __Class__; }   
public function beladen($last){
if(($this->frachtraum + $last) > self::FRACHTRAUM_MAX){
echo 'Soviel Ware kann der Frachtraum nicht laden'.(($this->frachtraum + $last) - self::FRACHTRAUM_MAX).' Einheiten passen nicht in den Frachtraum!';}
else {
$this->frachtraum  += $last;}}         
public function entladen(){ 
$this->frachtraum = 0;}}
                   
// AUSGABE
$LKW1 = new LKW;
$LKW1->beladen($ware1);
echo "<br>";
$LKW1->beladen($ware2);
echo "<br>";
$LKW1->beladen($ware3);

//var_dump($LKW1->beladen($ware3));
?>
 
Lösung
Mit dieser Struktur ist das schwer. Wie willst du aus der Klasse zurückgeben, wieviel kein Platz hat?
Kann man logisch einfach eine Menge aufteilen? "Dann versenden wir halt nur 99 von den 100, weil grad nicht mehr Platz ist".
Du brauchst eine Liste aller Waren die in den LKW sollten. Dann muss der LKW eine Liste haben was alles drin ist. Zu guter Letzt brauchst du nochmals eine Liste mit allem, was keinen Platz hatte.

PHP:
<pre>
<?php
class Ware{
    protected string $name;
    protected int $gewicht;
    public function __construct(string $iName, int $iGewicht){
        $this->name = $iName;
        $this->gewicht = $iGewicht;
    }
    public function getName() :string{return $this->name;}
    public function getGewicht()...
Das stimmt, da hätte ich mich evtl. besser ausdrücken sollen, versuche ich mal selbst. :)
Ist eigentlich OOP das Schwierigste in PHP ? :-O
 
Es gibt nicht "das Schwierigste". OOP ist auch nur ein Konzept. Und wenn man das Beherscht, dann kann man das in versch. Sprachen anwenden.
 
@Yaslaw —> Chaos :)
Stack ist definitiv LIFO
denk mal an push and pop
kannste überall nachlesen
Ich habe die Stackklasse erst heute gesehen. Habe das früher immer über Array gelöst und dort kannst du selber bestimmen wo man den Eitrag rausnimmt.
Gut, ich programmiere auch zu wenig PHP und bei meinen Anderen Projekte brauch ichs nicht :)
 
Ich mag keine Arrays, bei welchen man mittendrin was raus löschen kann, und man dann die restlichen elemente durch die Botanik jonglieren muss. Da benutze ich lieber verlinkte Listen
ist aber persönlicher Geschmack
 
Ja, gilt als Liste. Hat aber kein übergeordnetes Listenobjekt. Ich bin damit noch nie warm geworden :)
 
Zurück