G
Guest
Gast
Hallo. Alle profiprogrammierer aufgepasst: Angriff der Methoden.....
das hier ist mein programm. vom ablauf her müsste es so funktionieren, nur habe ich wohl ein paar zuviele methoden verwendet. ist alles wohl nicht ganz im sinne von OOP, aber ist auch mein erstes programm. Würde mich freuen, wenn mir jemand einen ausweg aus diesem schlamassel bieten könnte
achtung und anschnallen:
Ziel dieses ganzen wirrwars ist für ein gegebenes x alle möglichen kombinationen aus den zahlen 1 bis 4 aufzustellen, mit preisen zu versehen und davon den günstigsten auszugeben. die lagerankopplung fehlt noch.
Bin mal auf eure antworten gespannt....
gruß
kai
das hier ist mein programm. vom ablauf her müsste es so funktionieren, nur habe ich wohl ein paar zuviele methoden verwendet. ist alles wohl nicht ganz im sinne von OOP, aber ist auch mein erstes programm. Würde mich freuen, wenn mir jemand einen ausweg aus diesem schlamassel bieten könnte
achtung und anschnallen:
Code:
import java.io.*;
public class MBC2
{
private int t1, t2, t3, t4, p1, c, b, läufer,läufer1,läufer2,läufer3, p2, p3, p4, i, j, k, l, x, y, z, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10;
public static void main(String[] args) throws IOException {
new MBC2().invoke();
}
private void invoke() throws IOException {
int d;
p1 = 5;
p2 = 9;
p3 = 17;
p4 = 20;
BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Lagerbestand ansehen........1 ");
System.out.println("Lagereinbuchung.............2 ");
System.out.println("Preisauskunft...............3 ");
d = Integer.parseInt(din.readLine());
if (d == 1) lager();
else if (d == 2) bestand();
else if (d == 3) lesen();
else invoke();
}
private void lager() throws IOException {
System.out.println("L A G E R B E S T A N D :");
System.out.println(" Teil 1: " + t1);
System.out.println(" Teil 2: " + t2);
System.out.println(" Teil 3: " + t3);
System.out.println(" Teil 4: " + t4);
invoke();
}
private void bestand() throws IOException {
BufferedReader din = new BufferedReader( new InputStreamReader(System.in));
System.out.println("Welcher Lagerbestand soll geändert werden?");
System.out.println(" Teil 1.............1 " );
System.out.println(" Teil 2.............2 ");
System.out.println(" Teil 3.............3 ");
System.out.println(" Teil 4.............4 ");
b = Integer.parseInt(din.readLine());
System.out.println (" Welche Menge soll eingebucht werden?");
c = Integer.parseInt(din.readLine());
if ( b == 1) t1 = t1 +c;
else if ( b == 2) t2 = t2 +c;
else if ( b == 3) t3 = t3 +c;
else if ( b == 4) t4 = t4 +c;
invoke();
}
private void lesen() throws IOException {
BufferedReader din = new BufferedReader( new InputStreamReader(System.in));
System.out.print("Bitte gewuenschte Noppenzahl eingeben: ");
x = Integer.parseInt(din.readLine());
if ( x > 0) berechnung();
else System.out.println("Falsche Eingabe");lesen();
}
private void berechnung() throws IOException {
for ( i = 0; i<=3; ) {
y = i + 2*j + 3*k + 4*l;
z = x - y;
if ( z == 0) zaehler();
else if ( z == 1) i++;
else if ( z == 2) j++;
else if ( z == 3) k++;
else if ( z == 4) l++;
else i++;
}i=0; j=0; k=0; l=0; berechnung1();
}
private void berechnung1() throws IOException {
for ( j=0; j<=3; ) {
y = i + 2*j + 3*k + 4*l;
z = x - y;
if ( z == 0) zaehler1();
else if ( z == 1) i++;
else if ( z == 2) j++;
else if ( z == 3) k++;
else if ( z == 4) l++;
else j++;;
}
i=0; j=0; k=0; l=0; berechnung2();
}
private void berechnung2() throws IOException {
for ( k = 0; k<=3; ) {
y = i + 2*j + 3*k + 4*l;
z = x - y;
if ( z == 0) zaehler2();
else if ( z == 1) i++;
else if ( z == 2) j++;
else if ( z == 3) k++;
else if ( z == 4) l++;
else k++;
}i=0; j=0; k=0; l=0;berechnung3();
}
private void berechnung3() throws IOException {
for ( l = 0; l<=3; ) {
y = i + 2*j + 3*k + 4*l;
z = x - y;
if ( z == 0) zaehler3();
else if ( z == 1) i++;
else if ( z == 2) j++;
else if ( z == 3) k++;
else if ( z == 4) l++;
else l++;
}i=0; j=0; k=0; l=0;kostenauswahl();
}
private void zaehler() throws IOException {
läufer ++;
v1 = i*p1 + j*p2 + k*p3 + l*p4;
if ( läufer == 1) v2 = v1;
kostenspeicher();
}
private void kostenspeicher() throws IOException {
if ( v1 < v2 ) v2 = v1;
berechnung();}
private void zaehler1() throws IOException {
läufer1 ++;
v3 = i*p1 + j*p2 + k*p3 + l*p4;
if ( läufer1 == 1) v4 = v3;
kostenspeicher1();}
private void kostenspeicher1() throws IOException {
if ( v3 < v4 ) v4 = v3;
berechnung1();}
private void zaehler2() throws IOException {
läufer2 ++;
v5 = i*p1 + j*p2 + k*p3 + l*p4;
if ( läufer2 == 1) v6 = v5;
kostenspeicher2();}
private void kostenspeicher2() throws IOException {
if ( v5 < v6 ) v6 = v5;
berechnung2();}
private void zaehler3() throws IOException {
läufer3 ++;
v7 = i*p1 + j*p2 + 3*p3 + l*p4;
if ( läufer3 == 1) v8 = v7;
kostenspeicher3();}
private void kostenspeicher3() throws IOException {
if ( v7 < v8 ) v8 = v7;
berechnung3();}
private void kostenauswahl() throws IOException {
if (v2 > v4) v9 = v4;
else v9 = v2;
if (v6 > v8) v10 = v8;
else v10 = v6;
if (v9 > v10) System.out.println(" Kosten fuer " + x + " Noppen betraegt: " + v10 + " Euro");
else System.out.println(" Kosten fuer " + x + " Noppen betraegt: " + v9 + " Euro");
}
}
Ziel dieses ganzen wirrwars ist für ein gegebenes x alle möglichen kombinationen aus den zahlen 1 bis 4 aufzustellen, mit preisen zu versehen und davon den günstigsten auszugeben. die lagerankopplung fehlt noch.
Bin mal auf eure antworten gespannt....
gruß
kai