M
milchschnitte
Gast
hallo,
ich soll den namen und variablen mit einer for schleife einlesen, wo dann volumen und oberflaeche mithilfe einer klasse berechnet werden und das als koerper k in ein feld eingefuegt wird und spaeter auch so wieder ausgegeben wird...
allerdings gibt er nun bei mir den letzten eingegebenen koerper 2 mal aus, ich hab keine ahnung was da schief laeuft und probier auch schon ewig rum
waer nett, wenn sich das mal einer anschauen koennte...
hier noch die klasse
ich soll den namen und variablen mit einer for schleife einlesen, wo dann volumen und oberflaeche mithilfe einer klasse berechnet werden und das als koerper k in ein feld eingefuegt wird und spaeter auch so wieder ausgegeben wird...
allerdings gibt er nun bei mir den letzten eingegebenen koerper 2 mal aus, ich hab keine ahnung was da schief laeuft und probier auch schon ewig rum
Java:
package koerper;
import java.io.*;
import java.util.Scanner;
import java.util.Arrays;
public class Koerper {
public static BufferedReader tastatur = new BufferedReader (
new InputStreamReader(System.in));
public static String einString(String prompt, BufferedReader stream) {
String eingabe = "";
System.out.print(prompt);
try {
eingabe = stream.readLine();
} catch (IOException ex) {
System.out.println("fehlerhafte Eingabe");
}
return eingabe;
}
public static Koerperclass makeZylinder (double a, double b) {
Koerperclass k = new Koerperclass();
k.setName("Zylinder");
k.setOberflaeche(2.0*Math.PI*a*(a+b));
k.setVolumen(Math.PI*Math.pow(a, 2.0)*b);
return k;
}
public static Koerperclass makeWuerfel (double a) {
Koerperclass k = new Koerperclass();
k.setName("Wuerfel");
k.setOberflaeche(a*a*6 );
k.setVolumen(a*a*a);
return k;
}
public static Koerperclass makeQuader (double a, double b, double c){
Koerperclass k = new Koerperclass();
k.setName("Quader");
k.setOberflaeche(2*(a*b+b*c+a*c));
k.setVolumen(a * b * c);
return k;
}
public static void main(String[] args) {
Scanner var = new Scanner (System.in);
double a;
double b;
double c;
int i;
int j;
Koerperclass k = new Koerperclass();
String eingabe = "";
System.out.println("Wie viele Koerper wollen Sie eingeben?");
j = var.nextInt();
Koerperclass[] Koerperliste = new Koerperclass[j];
for (j = 0; j<Koerperliste.length; j++) {
k = null;
eingabe = einString("Bitte Koerper eingeben:", tastatur);
switch (eingabe) {
case "Zylinder" :
System.out.println("Wie gross ist der Radius?");
a = var.nextDouble();
System.out.println("Wie lang ist die Hoehe?");
b = var.nextDouble();
k = makeZylinder(a, b);
Koerperliste[j]=k;
break;
case "Wuerfel" :
System.out.println("Wie lang ist eine Seite?");
a = var.nextDouble();
k = makeWuerfel(a);
Koerperliste[j]=k;
break;
case "Quader" :
System.out.println("Wie lang ist Seite a?");
a = var.nextDouble();
System.out.println("Wie lang ist Seite b?");
b = var.nextDouble();
System.out.println("Wie lang ist Seite c?");
c = var.nextDouble();
k = makeQuader (a, b, c);
Koerperliste[j]=k;
break;
default:
System.out.println("unbekannter Koerper");
}
}
for (j = 0; j<Koerperliste.length; j++) {
System.out.println(k.getName() + " Volumen " + k.getVolumen());
}
}
}
Java:
package koerper;
public class Koerperclass {
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
private String name;
public void setOberflaeche(double s) {
oberflaeche = s;
}
public double getOberflaeche() {
return oberflaeche;
}
public void setVolumen(double v) {
volumen = v;
}
public double getVolumen() {
return volumen;
}
private double oberflaeche;
private double volumen;
}