Hallo an alle,
um das Gelernte zu festigen, habe ich entschieden, ein Programm zu erstellen.
Das Programm wird können: Berechnung aller Kosten zum Fertigen eines Werkstückes von A - Z.
Eins vorab: ich will mir keine Lösungen erschleichen.
Viel mehr geht es mir darum, ein Hinweis zu bekommen, ob ich auf dem Holzweg bin oder nicht.
Zum Programm:
Fürs erste soll natürlich das Material ausgewählt werden.
In meinem Beruf herrschen letztendlich nur wenige Formtypen: Vierkant, Sechskant und Zylinder.
Ebenso sind Werkstoffe wie Baustahl, Vergütungsstahl und Al-Legierungen gang und gäbe.
Meine erste Lösung war eine Allgemeine Klasse, welche den Volumen, bzw. die Masse
anhand der Parameterliste ausrechnete und den Wert zurück lieferte.
Gleich zu Beginn wurde es jedoch schnell unübersichtlich und ich entschied mich,
ein anderen Weg zu gehen und zwar soll nun für jede Form eine eigene Klasse programmiert werden.
Jede dieser Klassen hat dann ein eigenen Konstruktor mit den für die Form
nötigen Werten, ebenso soll in den Klassen die Methoden volumen() und masse()
für die jeweilige Form programmiert werden, welche den Wert nach Aussen liefern.
Für die Berechnung der Masse existiert ein Enum Masse, welches in Zukunft erweitert
werden kann und von allen Formklassen(Vierkant, Sechskant, Zylinder usw.) benutzt wird.
Dort hinterlege ich jeweils die Dichte pro dm³ für das jeweilige Werkstoff.
Liege ich bis hierhin richtig und was könnte ich besser machen?
Bekomme ich Probleme bei der Implementierung in die GUI?
Nun folgt der Code:
um das Gelernte zu festigen, habe ich entschieden, ein Programm zu erstellen.
Das Programm wird können: Berechnung aller Kosten zum Fertigen eines Werkstückes von A - Z.
Eins vorab: ich will mir keine Lösungen erschleichen.
Viel mehr geht es mir darum, ein Hinweis zu bekommen, ob ich auf dem Holzweg bin oder nicht.
Zum Programm:
Fürs erste soll natürlich das Material ausgewählt werden.
In meinem Beruf herrschen letztendlich nur wenige Formtypen: Vierkant, Sechskant und Zylinder.
Ebenso sind Werkstoffe wie Baustahl, Vergütungsstahl und Al-Legierungen gang und gäbe.
Meine erste Lösung war eine Allgemeine Klasse, welche den Volumen, bzw. die Masse
anhand der Parameterliste ausrechnete und den Wert zurück lieferte.
Gleich zu Beginn wurde es jedoch schnell unübersichtlich und ich entschied mich,
ein anderen Weg zu gehen und zwar soll nun für jede Form eine eigene Klasse programmiert werden.
Jede dieser Klassen hat dann ein eigenen Konstruktor mit den für die Form
nötigen Werten, ebenso soll in den Klassen die Methoden volumen() und masse()
für die jeweilige Form programmiert werden, welche den Wert nach Aussen liefern.
Für die Berechnung der Masse existiert ein Enum Masse, welches in Zukunft erweitert
werden kann und von allen Formklassen(Vierkant, Sechskant, Zylinder usw.) benutzt wird.
Dort hinterlege ich jeweils die Dichte pro dm³ für das jeweilige Werkstoff.
Liege ich bis hierhin richtig und was könnte ich besser machen?
Bekomme ich Probleme bei der Implementierung in die GUI?
Nun folgt der Code:
Java:
public class Allgemein
{
public static void main(String[] args)
{
//Im Metallbereich erfolt die Eingabe stets in Millimeter;
Vierkant vk = new Vierkant();
vk.breite = 1000;
vk.hoehe = 1000;
vk.tiefe = 1000;
double volumen = Vierkant.volumenVierkant(vk);
double masse = Vierkant.masseVierkant(vk, Masse.BAUSTAHL);
System.out.println("Volumen in dm³: " + volumen);
System.out.println("Masse in Kg: " + masse);
}
}
Java:
public class Vierkant
{
/**
* Berechnung fuer dm³;
*/
final static int DM_IN_KUBIK= 1000000;
/**
* Vierkantbreite-, hoehe- und tiefe;
*/
double breite, hoehe, tiefe;
/**
* Standardkonstruktor;
* initialisiert ein Standartvierkant;
*/
public Vierkant()
{
this.breite = 10;
this.hoehe = 10;
this.tiefe = 10;
}
/**
* berechnet Volumen des Vierkants;
* Eingabe der Werte in Millimeter;
* Ausgabe der Werte in Dezimeter dm³;
*
* @param vk Objekt Vierkant;
* @return Volumen des Objektes;
*/
public static double volumenVierkant(Vierkant vk)
{
return (vk.breite * vk.hoehe * vk.tiefe) / DM_IN_KUBIK;
}
/**
* berechnet die Masse des Vierkantes in Kg;
*
* @param vk Objekt Vierkant
* @param masse Masse fuer dm³
* @return Masse in Kg
*/
public static double masseVierkant(Vierkant vk, Masse masse)
{
return((vk.breite * vk.hoehe * vk.tiefe) / DM_IN_KUBIK) * masse.getMasse();
}
}
Java:
public enum Masse
{
/**
* angebotene Stahlsorten;
*/
BAUSTAHL, VERGUETUNGSSTAHL, ALLEGIERUNG;
/**
* die Masse pro dm³ der jeweiligen Stahlsorte;
*/
final static double MASSE_BAUSTAHL = 7.85;
final static double MASSE_VERGUETUNGSSTAHL = 7.9;
final static double MASSE_ALLEGIERUNG = 2.7;
/**
* liefert Umrechnungswert;
*/
public double getMasse()
{
if (null == this) {
return 0;
} else {
switch (this) {
case BAUSTAHL:
return MASSE_BAUSTAHL;
case VERGUETUNGSSTAHL:
return MASSE_VERGUETUNGSSTAHL;
default:
return MASSE_ALLEGIERUNG;
}
}
}
}