palaber
Captain
- Registriert
- Juni 2006
- Beiträge
- 3.856
Hallo zusammen, neues Programm, neues Problem.
Ich bin gerade dabei ein Programm zu schreiben welches Rechnungen ausgibt.
Einen Teil habe ich schon hin bekommen, leider scheitere ich an einer "Kleinigkeit".
Problemstellung:
Ich habe eine Rechnung in der ich Rechnungspositionen eintragen soll. Die Positionen sollen
nummeriert sein (von 1-x).
Erstelle ich eine zweite Rechnung sollen auch hier die Rechnungspositionen dargestellt werden, auch wieder mit der Nummerierung von 1-x.
Bei meinem Programm wird soweit alles ausgegeben. Allerdings werden die Rechnungspositionen für die Rechnung 2 fortlaufend eingetragen.
Bsp:
Rechnung 1: P1, P2, P3
Rechnung 2: P4,P5
Sollte aber für Rechnung 2 wieder mit: P1,P2 losgehen.
Mir ist auch klar warum dies geschieht, leider komme ich gerade auf keine Lösung wie ich die Aufzählung für jedes Objekt neu starte.
Anbei der Code, wie ich bisher die Variable zähle:
Ich bin gerade dabei ein Programm zu schreiben welches Rechnungen ausgibt.
Einen Teil habe ich schon hin bekommen, leider scheitere ich an einer "Kleinigkeit".
Problemstellung:
Ich habe eine Rechnung in der ich Rechnungspositionen eintragen soll. Die Positionen sollen
nummeriert sein (von 1-x).
Erstelle ich eine zweite Rechnung sollen auch hier die Rechnungspositionen dargestellt werden, auch wieder mit der Nummerierung von 1-x.
Bei meinem Programm wird soweit alles ausgegeben. Allerdings werden die Rechnungspositionen für die Rechnung 2 fortlaufend eingetragen.
Bsp:
Rechnung 1: P1, P2, P3
Rechnung 2: P4,P5
Sollte aber für Rechnung 2 wieder mit: P1,P2 losgehen.
Mir ist auch klar warum dies geschieht, leider komme ich gerade auf keine Lösung wie ich die Aufzählung für jedes Objekt neu starte.
Anbei der Code, wie ich bisher die Variable zähle:
Code:
package rechnungenneu;
public class Rechnungsposition {
private static int anzPositionen=0;
private int position=0;
private int menge=0; //Anzahl der Menge eines Artikels
private static final int rechMax=1; //Maximale Anzahl der Rechnungen die, die selbe Rechnungsposition kennen
private Rechnung [] rech=new Rechnung[rechMax]; //Array zum speichern der Rechnungsposition
private int rechAnz=0;
//Getter & Setter
public int getMenge() {
return menge;
}
public void setMenge(int menge) {
this.menge = menge;
}
public static int getRechmax() {
return rechMax;
}
public int getRechAnz() {
return rechAnz;
}
//Methoden
public String getRech(){ //Methode zum Aufruf aller Rechnungen
String ausgabe="";
for(int i=0; i<rechAnz;i++){
ausgabe+=rech[i]+"\n";
}
return ausgabe;
}
public void kennen(Rechnung r){ //Methode zum Eintragen der Rechnungsposition in der Rechnung?!
if(r==null){
throw new RuntimeException("kennt: ungültige Eingabe!");
}
if(nimmtTeil(r)) return;
if(rechAnz==Rechnungsposition.rechMax){
throw new RuntimeException("Rechnungsposition darf nur zu einer Rechnung gehören");
}
rech[rechAnz++]=r;
r.besitzen(this);
}
private boolean nimmtTeil(Rechnung r) {
if(r==null)
throw new RuntimeException("nimmt Kenntnis: ungültige Eingabe");
for(int i=0; i<rechAnz;i++){
if (rech[i]==r) return true;
}
return false;
}
//Konstruktor
public Rechnungsposition(int menge){
setMenge(menge);
anzPositionen++;
position=anzPositionen;
}
//Override
@Override
public String toString(){
return "Rechnungsposition: "+position+"\nArtikel: "+getMenge()+" Stück";
}
}