übergabeparameter

barneydlx

Grünschnabel
moin! ich habe leichte probleme mit übergabeparameter und würde mich über hilfe freuen!
zur aufgabenstellung; zur klasifizierung von baustoffen soll die art des materials (beton stahl etc) sowie die spannungs dehnungswerte eines druckversuchs vom nutzer eingegeben werden. auf basis dieser werte soll die software dem material eine festigkeitsklasse zu ordnen.

meine angehensweise; ich habe eine klasse für die wertepaare, sigma u. epsilon für spannung und dehnung. jeweils eine klasse für jedes material, wo die spannungsversuche ausgewertet werden sollen und der baustoff klassifiziert wird. und dann ncoh ein hauptprogram in denen die daten eingelesen werden, um dann an die klasse für das entsprechende material übergeben zu werden.
und bei diesem letzen schritt haperts bei mir irgendwie.
wertepaar klasse
Code:
public class Wertepaar {
	
	static double sigma;
	static double epsilon;
	
	Wertepaar(){
		this.sigma=0;
		this.epsilon=0;
	}
	 	
	Wertepaar(double sigma,double epsilon){
		this.sigma=sigma;
		this.epsilon=epsilon;
		
	}
materialklasse
Code:
public class Beton {
	
	ArrayList<Wertepaar>wertePaare=new ArrayList<Wertepaar>();
	double zylinderDruckFestigkeit;
	String festigkeitsKlasse;
	boolean klassifiziert;
	
	Beton(){
		klassifiziert=false;
	}
	
	void addWertepaar(Wertepaar wp){
		wertePaare.add(wp);
	}
	void setWertepaare(ArrayList<Wertepaar>wp){
		wertePaare=wp;
	}
	ArrayList<Wertepaar>getWertepaare(){
		return wertePaare;
	}
	void klassifiziere(Wertepaar wp){
		zylinderDruckFestigkeit= Wertepaar.sigma;
		
		if (zylinderDruckFestigkeit <8)									{festigkeitsKlasse="ich glaube ihnen ist ein fehler unterlaufen";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >8 && zylinderDruckFestigkeit<12) 		{festigkeitsKlasse="c8/10";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >12 && zylinderDruckFestigkeit<16) 	{festigkeitsKlasse="c12/15";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >16 && zylinderDruckFestigkeit<20) 	{festigkeitsKlasse="c16/20";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >20 && zylinderDruckFestigkeit<25) 	{festigkeitsKlasse="c20/25";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >25 && zylinderDruckFestigkeit<30) 	{festigkeitsKlasse="c25/30";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >30 && zylinderDruckFestigkeit<35) 	{festigkeitsKlasse="c30/37";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >35 && zylinderDruckFestigkeit<40) 	{festigkeitsKlasse="c35/45";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >40 && zylinderDruckFestigkeit<45) 	{festigkeitsKlasse="c40/45";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >45 && zylinderDruckFestigkeit<50) 	{festigkeitsKlasse="c45/55";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >50 && zylinderDruckFestigkeit<55) 	{festigkeitsKlasse="c50/60";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >55 && zylinderDruckFestigkeit<60) 	{festigkeitsKlasse="c55/67";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >60 && zylinderDruckFestigkeit<70) 	{festigkeitsKlasse="c60/75";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >70 && zylinderDruckFestigkeit<80) 	{festigkeitsKlasse="c70/85";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >80 && zylinderDruckFestigkeit<90) 	{festigkeitsKlasse="c80/95";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >90 && zylinderDruckFestigkeit<100) 	{festigkeitsKlasse="c90/105";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >100 && zylinderDruckFestigkeit<370) 	{festigkeitsKlasse="c100/115";klassifiziert=true;}
		 if (zylinderDruckFestigkeit >370 ) 								{festigkeitsKlasse="ich glaube ihnen ist ein fehler unterlaufen";klassifiziert=true;}
				}

	public String toString(){
		if (klassifiziert = false){System.out.println("ich glaube ihnen ist ein Fehler unterlaufen");	
		}
		return "Das Material besitit die Zylinderdruckfestigkeit "+zylinderDruckFestigkeit+ "kN. Die fetigkeitskeitsklasse lautet"+festigkeitsKlasse+ ".";
		
	}


hauptprogramm

Code:
public class Baustoffklassifikation {

	private static double sigma;
	private static double epsilon;

	/**
	 * @param args
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		String eingabe;
		Scanner sc= new Scanner(System.in);
		ArrayList<Double>betonversuche = new ArrayList<Double>();
		ArrayList<Stahl>stahlversuche = new ArrayList<Stahl>();
		System.out.println("Dieses Programm dient zu Klassifikation von Baustoffen");
		do {
			ArrayList<Double>wertepaare=new ArrayList<Double>();			
			do{
				System.out.println("Bitte geben sie ein Wertepaar ein, erst die Spannung dann die Dehnung....");
				
				try  {
					Wertepaar.sigma=sc.nextDouble();
					wertepaare.add(Wertepaar.sigma);
				}
				catch (InputMismatchException e)
				{sc.next();
					break;
				}
				try  {
					Wertepaar.epsilon=sc.nextDouble();
					wertepaare.add(Wertepaar.epsilon);	
					}
					catch (InputMismatchException e)
					{sc.next();
						break;
					}						
			}while(true);
			
			do{
				System.out.println("Was für ein material wollen sie eingeben");
				eingabe=sc.next();
				if(eingabe.equalsIgnoreCase("s")){
					wertepaare=new Wertepaar;
					
					
					
				}
				if(eingabe.equalsIgnoreCase("c")){
					wertepaare=new betonversuche();
					
				}
			
				
			}while(true);
		}while(eingabe.equalsIgnoreCase("j"));
		
			
	}
 
Guten Tag barneydlx,

dein Problem ist du hast 2 while(true) Schleifen am laufen, bedeutet im Prinzip das die erste while(true) alles blockiert, vorallem weil du nur rausspringst, wenn du eine Exception abfängst ;) Wieso benutzt du nur Fußgesteuerte Schleifen?

Und hier müsstest du einen Fehler bekommen:

Java:
ArrayList<Wertepaar>getWertepaare(){  // <---- Fehlt das Leerzeichen
        return wertePaare;
 }



Gruß Chris
 
Zuletzt bearbeitet:
Zurück