Objekte sortiert einfügen

Snaap

Mitglied
Hallo,

Ich muss für Schule ein Programm scheiben, bei dem verschiedene Objekte erstellt werden (Typ 1-3) und dann geordnet werden.

Java:
public Maschine sortiertEinfügen(int typneu, int kapazitätneu)
{

if (typ <= typneu)
{   
    if (Nachfolger != null)
    {
        Nachfolger = Nachfolger.sortiertEinfügen(typneu, kapazitätneu);
    }
    else
    {
        hintenEinfügen(typneu, kapazitätneu);
    } 
    return this;
}


else
{

            if (typneu == 1)
            {
            Maschine a = new Fräserei (kapazitätneu, this);
            return a;
            }
            if (typneu == 2)
            {
            Maschine a = new Montage (kapazitätneu, this);
            return a;
            }
            if (typneu == 3)
            {
            Maschine a = new Lackiererei (kapazitätneu, this);
            return a;
            }
            else 
            {
                return null;
            }

}

}
Java:
public class Liste
{
Maschine anfang;

  
    public Liste()
    {
      anfang = null;
    }
    
    public void Maschineerstellen(int typneu, int kapazitätneu)
    {
        if (anfang != null)
        {
            anfang = anfang.sortiertEinfügen(typneu, kapazitätneu);
        }
        else
        {
            if (typneu == 1)
            {
            Maschine a = new Fräserei (kapazitätneu, null);
            anfang = a;
            }
            if (typneu == 2)
            {
            Maschine a = new Montage (kapazitätneu, null);
            anfang = a;
            }
            if (typneu == 3)
            {
            Maschine a = new Lackiererei (kapazitätneu, null);
            anfang = a;
            }
        }
        
    }
}

Leider funktioniert das nicht so wie ich es mir vorstelle, wenn ich zB je ein Objekt jeden Typs hab:
[1][2][3] und ein Objekt [2] erstell kommt [1][2][2] raus und die [3] wird iwie weggeschnitten /:
Wäre schön wenn mir jemand erklären könnte wie es dazu kommt, blicks grad ned :bahnhof:
Danke

Java:
public class Montage extends Maschine
{
   

   
    public Montage(int kapazität, Maschine Nachfolger)
    {
        kosten = 6200 + (kapazität - 1) * 4200/3;
        typ = 2;
        this.kapazität = kapazität;
       
    }

   
}
Java:
public class Fräserei extends Maschine
{
    public Fräserei(int kapazität, Maschine Nachfolger)
    {
        typ = 1;
        this.kapazität = kapazität;
        kosten = 1200 + (kapazität - 2) * 300/4;
    }
    


        

}
Java:
public class Lackiererei extends Maschine
{
  
    public Lackiererei(int kapazität, Maschine Nachfolger)
    {
        typ = 3;
        this.kapazität = kapazität;
        kosten = 1200 + (kapazität - 12) * 400/8;
    }

}
 
Zuletzt bearbeitet:
Nein.
Java:
public class MaschinenListe
{
    public static void main(String args[])
    {
        MaschinenListe m = new MaschinenListe();


    }

    Maschine anfang;


    public MaschinenListe()
    {
      anfang = null;
    }

    public void Maschineerstellen(int typneu, int kapazitätneu)
    {
        if (anfang != null)
        {
            anfang = anfang.sortiertEinfügen(typneu, kapazitätneu);
        }
        else
        {
            if (typneu == 1)
            {
            Maschine a = new Fräserei (kapazitätneu, null);
            anfang = a;
            }
            if (typneu == 2)
            {
            Maschine a = new Montage (kapazitätneu, null);
            anfang = a;
            }
            if (typneu == 3)
            {
            Maschine a = new Lackiererei (kapazitätneu, null);
            anfang = a;
            }
        }

    }
}


class Maschine
{

    public Maschine sortiertEinfügen(int typneu, int kapazitätneu)
    {

        if (typ <= typneu)
        {
            if (Nachfolger != null)
            {
                Nachfolger = Nachfolger.sortiertEinfügen(typneu, kapazitätneu);
            }
            else
            {
                hintenEinfügen(typneu, kapazitätneu);
            }
            return this;
        }


        else
        {

            if (typneu == 1)
            {
            Maschine a = new Fräserei (kapazitätneu, this);
            return a;
            }
            if (typneu == 2)
            {
            Maschine a = new Montage (kapazitätneu, this);
            return a;
            }
            if (typneu == 3)
            {
            Maschine a = new Lackiererei (kapazitätneu, this);
            return a;
            }
            else
            {
                return null;
            }

        }

    }
}



class Montage extends Maschine
{



    public Montage(int kapazität, Maschine Nachfolger)
    {
        kosten = 6200 + (kapazität - 1) * 4200/3;
        typ = 2;
        this.kapazität = kapazität;

    }


}


class Fräserei extends Maschine
{
    public Fräserei(int kapazität, Maschine Nachfolger)
    {
        typ = 1;
        this.kapazität = kapazität;
        kosten = 1200 + (kapazität - 2) * 300/4;
    }





}

class Lackiererei extends Maschine
{

    public Lackiererei(int kapazität, Maschine Nachfolger)
    {
        typ = 3;
        this.kapazität = kapazität;
        kosten = 1200 + (kapazität - 12) * 400/8;
    }

}
 
Ja, das was ich jetzt gepostet hatte war nur ein "Zwischenstand" - bei dem ich gemerkt hatte, dass es etwas aufwändiger sein könnte, das compilierbar zu kreigen. Wenn du es etwas näher an etwas bringen kannst, was man 1:1 rauskopieren, compilieren und starten kann, kann man nochmal schauen, aber ... (wenn man am Tag ~10-20 Threads beantworten will, und 20 mal durch irgendwelchen Fremdcode fräsen (und jedes mal "public static void main" dazuschreiben muss) wird das eben ermüdend...)
 

Neue Themen


Zurück
Oben