Zum Forum springen
Benachrichtigungen
Alles löschen

[20$inside] Java Noob braucht hilfe bei Programmieraufgabe

11 Beiträge
3 Benutzer
0 Reactions
774 Ansichten
AVIRA266
Beigetreten: 22.07.2008

Hallo,

Habe eine Programmieraufgabe und brauche da leider hilfe, da ich dort nicht so kompetent bin.

Das ist die Aufgabenstellung:

Spoiler


Was ich bis jetzt programmiert habe:
- Klasse Project
- Enumeration Relationship

Jetzt würde ich eine Klasse Tasks implementieren für die Liste. So wie ich das verstehe hab ich dort eine Varibale duration die ich beim Aufruf der Klasse übergebe, also das ich es in den Konstruktor reinschreibe. Das es dann so aussieht.

Jetzt sollte ich doch eine Liste in diese Klasse programmieren.
Ist das dann ein doublylinked List? Wie würde das den ungefähr aussehen?
Würde 20$ auf stars shippen, wenns jemand proggt, wie es bis dahin aussehen sollte.

hoffe das mir hier jemand helfen kann.

Mfg

Avira.


Antwort
Zitat
10 Antworten
FiftyBlume
Beigetreten: 06.06.2010

Hier fehlt jetzt natürlich B, um den Algorithmus zu beurteilen...

aber trotzdem ist die Aufgabenstellung wohl unvollständig, weil du jeder Aufgabe eine Liste für jede der vier Beziehungen geben musst.

nach deinen Anfängen zu urteilen würde das für die Klasse task dann so aussehen:

public class task {
private int duration;
private list aalist;
private list aelist;
private list ealist;
private list eelist;

public task (int duration) {
this.duration = duration;
this.aalist = new list();
this.aelist = new list();
this.ealist = new list();
this.eelist = new list();
}

public void addaarelation(task aatask)
{
this.aalist.add(aatask);
}
public list aalist()
{
return this.aalist;
}
}

evt. musst du noch Anpassungen vornehmen, jenachdem, welche Bibliotheken ihr verwenden dürft(evt. geht auch ne Liste mit Typecast) :-)

Falls ihr die Liste selber schreiben müsst, würde ich die Verwendung eines Arrays empfehlen.

Falls die Vorgabe mit den zwei Listen verbindlich ist, gibt es auch Möglichkeiten, die sind aber - afaik - alle ziemlich doof.


Antwort
Zitat
AVIRA266 Themenstarter
AVIRA266
Beigetreten: 22.07.2008

Vielen Dank erstmal für die antwort.

Da ich auf den Task davor und auf auf Tasks danach zugreifen muss, war ich der meinung, dass ich sowas habe wie:
private task firstTask;
private task lastTask;
private int duratioon;

public task (int duration) {
this.duration = duration;
}

public add task(task task){
//Some code
}

public boolean hasPrevious/hasNext(...) {
//some code
}

public taskgetPrevious/get Next(task Task) {
//Some code
}


Antwort
Zitat
FiftyBlume
Beigetreten: 06.06.2010

Das geht auch, hat aber die Einschränkung, dass es eben nur jeweils einen Vorgänger und einen Nachfolger gibt.

Du könntest damit folgende Situation nicht abbilden:

A und B sind unabhängig.
C beginnt wenn A und B abgeschlossen sind.

Wenn du natürlich die Einschränkung vornimmst, dass ein Produkt niemals von 2 untereinander unabhängigen Produkten abhängig ist, dann würde es funktionieren(vermutlich gibts noch ein paar mehr Einchränkungen)


Antwort
Zitat
AVIRA266 Themenstarter
AVIRA266
Beigetreten: 22.07.2008

Ich bin mir grad nicht sicher, ob ich auch dem Schlauch stehe, aber wenn ich jetzt 5 Tasks habe rufe ich die ja immer von Project aus auf mit dem Konstruktor von task und habe dann bei 5 tasks 20 Listen.

Oder sehe ich das falsch?

mfg

und was muss man importieren, damit man
private list askghl; verwenden kann?


Antwort
Zitat
FiftyBlume
Beigetreten: 06.06.2010

Original von AVIRA266
Ich bin mir grad nicht sicher, ob ich auch dem Schlauch stehe, aber wenn ich jetzt 5 Tasks habe rufe ich die ja immer von Project aus auf mit dem Konstruktor von task und habe dann bei 5 tasks 20 Listen.

Oder sehe ich das falsch?

mfg

und was muss man importieren, damit man
private list askghl; verwenden kann?

Ja du hast dann mehrere Listen - es gibt Lösungen, die das umgehen, aber das widerspricht der Aufgabenstellung.

Bei 2 Listen reichen ja laut Aufgabenstellung, kp wie man Anfang Anfang Beziehungen und Ende-Anfang-Beziehungen unterscheiden soll.

Ein Import wäre z.B. java.util.* oder wenns nur die Liste sein soll java.util.List

Dann kann man anschließend den dort realisierten Datentyp List verwenden(es wird quasi die Klasse List in dein Projekt integriert).


Antwort
Zitat
AVIRA266 Themenstarter
AVIRA266
Beigetreten: 22.07.2008

Vielen DAnk für die Antowrt.
Ich werde es mit diesem Aufbau versuchen zu programmieren.

Aber meine IDE kann mit java.util.*; und java.util.List; nichts anfangen, bzw. erkennt nicht die Listen
so dass List als fehler gekennzeichnet wird.

Siehe hier

Spoiler

java.util.*

java.util.List;


Antwort
Zitat
FiftyBlume
Beigetreten: 06.06.2010

bei java.util musst du auch "List" statt "list" benutzen :-)


Antwort
Zitat
AVIRA266 Themenstarter
AVIRA266
Beigetreten: 22.07.2008

Wenn ich überall List groß mache kommt die Fehlermeldung
List is abstract; cannot be instantiated.


Antwort
Zitat

private List list = new ArrayList() sollte funktionieren

List selbst ist nur ein Interface...


Antwort
Zitat
AVIRA266 Themenstarter
AVIRA266
Beigetreten: 22.07.2008

MAl angenommen ich habe ein Task mit der anordungsbezieheung AA
und die Vorgänger ID ist 0 nachfolger ID ist 2.
Wie schreibe ich das da rein?


Antwort
Zitat
Teilen: