Verwalten der Projektkosten

appl_

Mitglied
Hallo Community :) ..

Also ich bin Java-Anfänger und habe da einige Schulbeispiele zu lösen, also kein Test oder so sondern einfach sie zu lösen.

Nur tue ich mir da etwas schwer, da wir auch nicht wirklich sehr weit vorran geschritten sind (set-get Methoden, Konstruktoren, was sind Instanzen etc. und If)..

Folgendes Beispiel habe ich zu lösen:

Ein Betrieb erstellt eine Software zum Verwalten der Projektkosten. Die Daten für ein Projekt werden in Objektinstanzen der folgenden Klasse Projekt abgelegt:

projektverwaltung.jpg


Attribute

Jedes Projekt

wird durch seine nummer identifiziert,
hat eine bezeichnung,
hat eine Anzahl von Mitarbeitern (anzahlMitarbeiter),
wird in einer Kalenderwoche und in einem Jahr begonnen (kwBeginn und jahrBeginn), Es gibt die Kalenderwochen 1 bis 52,
wird in einer Kalenderwoche und in einem Jahr beendet (kwEnde und jahrEnde),
verbucht einen Betrag für den sachAufwand (in €),
ist bereits abgeschlossen oder nicht.

Methoden

Der Konstruktor der Klasse Projekt übernimmt als Parameter die Projektnummer. Die anderen Attribute werden folgendermaßen initialisiert:
Die bezeichnung eines neuen Projekts ist "unbekannt".
Ein Standardprojekt hat 5 Mitarbeiter.
kwBeginn, jahrBeginn, kwEnde und jahrEnde werden jeweils mit 0 vorbelegt.
Der sachAufwand für ein Standardprojekt ist € 10000.
Ein Standardprojekt ist noch nicht abgeschlossen.

Es gibt get-Methoden für alle Attribute; set-Methoden gibt es nur für die Attribute bezeichnung, anzahlMitarbeiter, sachAufwand und abgeschlossen. Es ist jeweils zu verhindern, dass sinnlose Werte übernommen werden (z.B. ein negativer sachAufwand).
Die Methode beginn(...) setzt den Beginn-Zeitpunkt für das Projekt (z.B. Kalenderwoche 50 im Jahr 2010).
Die Methode ende(...) setzt den End-Zeitpunkt für das Projekt. (Sowohl in der Methode beginn(...) als auch in der Methode ende(...) dürfen nur sinnvolle Werte übernommen werden. ende(...) darf nur aufgerufen werden, wenn schon ein Beginn gesetzt wurde, und es ist dann zu überprüfen, dass das Ende nach dem Beginn liegt.)
Die Methode projektDauer() berechnet die Dauer des Projekts in Wochen und liefert die Anzahl der Wochen als Rückgabewert. Ist das Projekt noch nicht abgeschlossen, dann liefert die Methode den Wert -1 zurück.
Die Methode berechneKosten() berechnet die Kosten des Projekts entsprechend dem nachfolgendem Schema und liefert die Kosten in € als Rückgabewert.

Die Kosten setzen sich zusammen aus dem Sachaufwand, dem allgemeinen Aufwand pro Woche und den Personalkosten pro Woche. Der Sachaufwand ist im entsprechenden Attribut abgelegt. Der allgemeine Aufwand beträgt € 1000 pro Woche. Die Personalkosten betragen € 700 pro Woche und Mitarbeiter. Ein noch nicht abgeschlossenes Projekt liefert den Wert -1 zurück.

so weit bin ich gekommen:

Java:
public class Projektverwaltung
{
    private int nummer;
    private String bezeichnung;
    private int anzahlMitarbeiter;
    private int kwBeginn;
    private int jahrBeginn;
    private int kwEnde;
    private int jahrEnde;
    private double sachAufwand;
    private boolean abgeschlossen;
    
    //Konstruktor
    public Projektverwaltung(int nummer)
    {
        bezeichnung = "Unbekannt";
        anzahlMitarbeiter = 5;
        kwBeginn = 0;
        kwEnde = 0;
        jahrBeginn = 0;
        jahrEnde = 0;
        sachAufwand = 10000;
        abgeschlossen = false;
    }
        
    public void setBezeichnung (String neueBezeichnung)
    {
        bezeichnung = neueBezeichnung;
    }
    
    public void setAnzahlMitarbeiter (int neueAnzahlMitarbeiter)
    {
        if (neueAnzahlMitarbeiter > 0)
        {
           anzahlMitarbeiter = neueAnzahlMitarbeiter;
        }
        else
        {
            System.out.println("Keine negative Zahl erlaubt!");
        }
    }
    
    public void setAbgeschlossen (boolean neuAbgeschlossen)
    {
        if (neuAbgeschlossen == true  ||  neuAbgeschlossen == false)
        {
            abgeschlossen = neuAbgeschlossen;
        }
    }
    
    public int getNummer ()
    {
        return nummer;
    }
    
    public String getBezeichnung()
    {
        return bezeichnung;
    }
    
    public int getAnzahlMitarbeiter()
    {
        return anzahlMitarbeiter;
    }
    
    public int getKwBeginn()
    {
        return kwBeginn;
    }
    
    public int getJahrBeginn()
    {
        return jahrBeginn;
    }
    
        public int getKwEnde()
    {
        return kwEnde;
    }
    
    public int getJahrEnde()
    {
        return jahrEnde;
    }
    
    public double getSachAufwand()
    {
        return sachAufwand;
    }
    
    public boolean getAbgeschlossen()
    {
        return abgeschlossen;
    }
    
    
    }

Nun komme ich nicht weiter beim Punkt:
Die Methode beginn(...) setzt den Beginn-Zeitpunkt für das Projekt (z.B. Kalenderwoche 50 im Jahr 2010)

Wäre echt für jede Hilfe dankbar :)

LG
 
Zuletzt bearbeitet von einem Moderator:
M

Marcinek

Gast
Und wie kommst du da nicht weiter?

Stammt der Code oben auch von dir? - Wenn ja, dann ist das doch trivial?

Java:
begin (int a, int b) {
  this.kw = a;
  this.jahr = b;
}

vorher schaust du ob a und b plausibel sind.

das kann man mit
Code:
 if ()
machen.

Keine Ahnung wo das Problem liegt.
 

appl_

Mitglied
Und wie kommst du da nicht weiter?

Stammt der Code oben auch von dir? - Wenn ja, dann ist das doch trivial?

Java:
begin (int a, int b) {
  this.kw = a;
  this.jahr = b;
}

vorher schaust du ob a und b plausibel sind.

das kann man mit
Code:
 if ()
machen.

Keine Ahnung wo das Problem liegt.

Habe in der Woche nur 2 Stunden programmieren, und ich komme da immer raus aus dem "rhytmus".. und das logische programmierverständnis erlischt XD

Ja das ist der Code von mir, war ja nicht besonders schwer, nur die weiteren Schritte verwirren mich immer.. aber danke für deine Tipps, werde es gleich ausprobieren
 

Neue Themen


Oben