P
pengkei
Gast
Hallo erstmal! Ich programmiere erst seit 2 Wochen und hab auch direkt schon ein Problem!
Ich fang einfach mal an:
1.Aufgabe:
Attribute:
int artikelNr Artikelnummer
String bezeichnung Artikelbezeichnung
int bestand aktueller Artikelbestand
double preis Einzelpreis eines Artikels
Methoden:
void bucheZugang(int menge) Zugang aufbuchen
void bucheAbgang(int menge) Abgang abbuche
void print() Ausgabe der Artikel-Informationen auf die
Standardausgabe
Beispielausgabe:
Artikel: 4711 Bezeichnung: Staubsauger Bestand: 100
get-Methoden zu allen Attributen
set-Methoden nur zu den Attributen, für die eine set-Methode Sinn macht.
Soweit kein Problem!
Aber nun die 2.Aufgabe, welche darauf aufbaut:
Ergänzend zur 1. Übung ist eine Klasse Lager zur definieren, die in der
ersten primitiven Version zwei Artikel verwalten kann.
Benötigte Methoden:
- Artikel im Lager anlegen, d. h. Artikel-Objekt erzeugen und einem Attribut
des Lager-Objektes zuweisen
- Artikel aus dem Lager entfernen, d. h. Referenz auf ein Artikel-Objekt auf null setzen.
- Zugang buchen für einen Artikel
- Abgang buchen für einen Artikel
- Preis für beide Artikel um einen bestimmten Prozentsatz verändern
(positiv oder negativ möglich)
Also irgendwie weiss ich garnicht wo ich anfangen soll! Geh ich recht in der Annahme, dass das spaeter so aussehen soll, dass man mit der Artikel.Klasse ein neues Objekt(neuen Artikel) erstellt, dann ein Objekt der Lager.Klasse und dann per Objekt der Lager.Klasse dem Artikel Objekt ein Attribut zuweisst ? Ich hab mir das so ueberlegt, dass das LagerObjekt dann z.B. dem Artikel eine Reihe und einen Regalplatz im "Lager" zuweisst. Nur hab ich keinen blassen Schimmer wie ich das anstelle, bzw. ich hab keine Ahnung wie 2 Klasse miteinandere kommunizieren oder sonst was miteinander machen!
Ich hoffe das war jetzt nicht zuviel auf einmal! ABer schonma danke ich vorraus!
MfG pengkei
Ich fang einfach mal an:
1.Aufgabe:
Attribute:
int artikelNr Artikelnummer
String bezeichnung Artikelbezeichnung
int bestand aktueller Artikelbestand
double preis Einzelpreis eines Artikels
Methoden:
void bucheZugang(int menge) Zugang aufbuchen
void bucheAbgang(int menge) Abgang abbuche
void print() Ausgabe der Artikel-Informationen auf die
Standardausgabe
Beispielausgabe:
Artikel: 4711 Bezeichnung: Staubsauger Bestand: 100
get-Methoden zu allen Attributen
set-Methoden nur zu den Attributen, für die eine set-Methode Sinn macht.
Soweit kein Problem!
Code:
import de.htw.saarland.stl.Stdin;
/**
* Programm zur Bestandsführung
*
* Ken Dahm
* 03.11.2006
* Version 1.0
*/
public class Artikel
{
public int artikelNr; // Artikelnummer
public String bezeichnung; // Artikelbezeichnung
public int bestand; // aktueller Artikelbestand
public double preis; // Einzelpreis des Artikels
private final static String ARTIKEL_NUMMER = "Artikelnummer muss vierstellig sein: xxxx";
private final static String ARTIKEL_BEZEICHNUNG = "Keine gültige Bezeichnung!";
private final static String ARTIKEL_BESTAND = "Der Bestand muss größer oder gleich null sein!";
private final static String ARTIKEL_PREIS = "Der Preis muss mindestens 0 betragen!";
/**
* Konstruktor für einen neuen Artikel
* Artikelnummer muss 4-stellig sein
* Bezeichnung darf nicht leer sein
* Bestand und Preis müssen mindestens 0 sein
*/
public Artikel(int artikelNr,String bezeichnung,int bestand, double preis){
assert ((artikelNr > 999) && (artikelNr < 10000)) :ARTIKEL_NUMMER;
assert ((bezeichnung != null) && (!"bezeichnung".equals(" "))) :ARTIKEL_BEZEICHNUNG;
assert (bestand >= 0) :ARTIKEL_BESTAND;
assert (preis >= 0) :ARTIKEL_PREIS;
this.artikelNr = artikelNr;
this.bezeichnung = bezeichnung;
this.bestand = bestand;
this.preis = preis;
}
/**
* Konstruktor für einen neuen Artikel
* Eingabe von 3 Attributen
* Aufruf des ersten Konstruktors
*/
public Artikel(int artikelNr,String bezeichnung,int bestand){
this(artikelNr, bezeichnung, bestand, 0.0);
}
/**
* Konstruktor für einen neuen Artikel
* Eingabe von 2 Attributen
* Aufruf des ersten Konstruktors
*/
public Artikel(int artikelNr,String bezeichnung){
this(artikelNr, bezeichnung, 0, 0.0);
}
/**
* getMethode zum Attribut Artikelnummer
* @return artikelNr
*/
public int getartikelNr(){
return this.artikelNr;
}
/**
* getMethode zum Attribut Bezeichnung
* @return bezeichnung
*/
public String getbezeichnung(){
return this.bezeichnung;
}
/**
* getMethode zum Attribut Artikelbestand
* @return Artikelbestand
*/
public int getbestand(){
return this.bestand;
}
/**
* getMethode zum Attribut Preis
* @return Preis
*/
public double getpreis(){
return this.preis;
}
/**
* setMethode zum ändern der Artikelnummer
* @param int artikelNr
*/
public void setartikelNr(int artikelNr){
assert ((artikelNr > 999) && (artikelNr < 10000))
: "Artikelnummer muss vierstellig sein: xxxx";
this.artikelNr = artikelNr;
}
/**
* setMethode zum ändern der Bezeichnung
* @param String bezeichnung
*/
public void setbezeichnung(String bezeichnung){
assert ((bezeichnung != null) && (!"bezeichnung".equals(" ")))
: "Keine gültige Bezeichnung!";
this.bezeichnung = bezeichnung;
}
/**
* setMethode zum ändern des Preises
* @param double Preis
*/
public void setpreis(int preis){
assert (preis >= 0)
:"Der Preis muss mindestens 0 betragen!";
this.preis = preis;
}
/**
* Bestand wird erhöht
* @param menge
*/
public void bucheZugang(int menge){
this.bestand = bestand + menge;
}
/**
* Bestand wird erniedrigt, z.B. durch Verkauf
* @param menge
*/
public void bucheAbgang(int menge){
assert (menge <= bestand)
: "Vorrat zu klein";
this.bestand = bestand - menge;
}
/**
* String toString AusgabeMethode
*/
public String toString(){
return artikelNr + ", " + bezeichnung + ", " + bestand + ", " + preis;
}
/**
* Ausgabe der Artikelinformationen auf die
* Standardausgabe
* @param String[] args
*/
public void print(){
System.out.println("Artikelnummer = " + artikelNr);
System.out.println("Artikelbezeichnung = " + bezeichnung);
System.out.println("Bestand = " + bestand);
System.out.println("Preis = " + preis + " €");
}
}
Aber nun die 2.Aufgabe, welche darauf aufbaut:
Ergänzend zur 1. Übung ist eine Klasse Lager zur definieren, die in der
ersten primitiven Version zwei Artikel verwalten kann.
Benötigte Methoden:
- Artikel im Lager anlegen, d. h. Artikel-Objekt erzeugen und einem Attribut
des Lager-Objektes zuweisen
- Artikel aus dem Lager entfernen, d. h. Referenz auf ein Artikel-Objekt auf null setzen.
- Zugang buchen für einen Artikel
- Abgang buchen für einen Artikel
- Preis für beide Artikel um einen bestimmten Prozentsatz verändern
(positiv oder negativ möglich)
Also irgendwie weiss ich garnicht wo ich anfangen soll! Geh ich recht in der Annahme, dass das spaeter so aussehen soll, dass man mit der Artikel.Klasse ein neues Objekt(neuen Artikel) erstellt, dann ein Objekt der Lager.Klasse und dann per Objekt der Lager.Klasse dem Artikel Objekt ein Attribut zuweisst ? Ich hab mir das so ueberlegt, dass das LagerObjekt dann z.B. dem Artikel eine Reihe und einen Regalplatz im "Lager" zuweisst. Nur hab ich keinen blassen Schimmer wie ich das anstelle, bzw. ich hab keine Ahnung wie 2 Klasse miteinandere kommunizieren oder sonst was miteinander machen!
Ich hoffe das war jetzt nicht zuviel auf einmal! ABer schonma danke ich vorraus!
MfG pengkei