D
dsfge456
Gast
Nabend Leute!
Ich habe ein etwas komplexeres Programm geschrieben.
Es sollen verschiedene Messdaten (max. 10) eingegeben werden können.
Außerdem soll man diese im Nachhinein alle und einzeln überschreiben können.
Das programm soll mit ihnen rechnen, die ergebnisse formatiert ausgeben und beendet werden können.
Andernfalls läuft es in einer Endlosschleife.
IMO funktioniert auch alles.
Nun wäre die Frage, ob es so auch ökonomisch läuft oder ob man etwas verbessern könnte.
Hier seid ihr nun gefragt!!!
Hier der Code (2 Klassen sind Pflicht, sonst würde ich alles in eine packen):
DANKE IM VORRAUS!
Ich habe ein etwas komplexeres Programm geschrieben.
Es sollen verschiedene Messdaten (max. 10) eingegeben werden können.
Außerdem soll man diese im Nachhinein alle und einzeln überschreiben können.
Das programm soll mit ihnen rechnen, die ergebnisse formatiert ausgeben und beendet werden können.
Andernfalls läuft es in einer Endlosschleife.
IMO funktioniert auch alles.
Nun wäre die Frage, ob es so auch ökonomisch läuft oder ob man etwas verbessern könnte.
Hier seid ihr nun gefragt!!!
Hier der Code (2 Klassen sind Pflicht, sonst würde ich alles in eine packen):
Java:
package paket;
import java.io.*;
import java.text.*;
class Benutzerschnittstelle {
public static double[] eingabeVariablen = new double [10];
public static double arithmetischesMittel, minimum, maximum, standardabweichung, median;
public static void ausgabe (double[] eingabeVariablen) {
for (int i=0; i<10; i++) {
System.out.println(eingabeVariablen[i]);
}
}
public static double[] eingabe () {
for (int i=0; i<10; i++) {
String eingabeWert = javax.swing.JOptionPane.showInputDialog("Bitte geben Sie Wert " + (i+1) + " ein");
eingabeVariablen[i] = Double.parseDouble(eingabeWert);
}
return eingabeVariablen;
}
}
public class Projekt {
public static void menue() {
int auswahl;
System.out.println("\n_______________________________________________");
System.out.println("Menü:");
System.out.println("[1] Messwerte eingeben");
System.out.println("[2] Messwert ändern");
System.out.println("[3] Messwerte sortieren");
System.out.println("[4] Rechenfunktionen ausführen");
System.out.println("[5] Ergebnisse ausgeben");
System.out.println("[0] Programm beenden");
System.out.print("Bitte wählen Sie die gewünschte Operation aus: ");
auswahl = eingabe();
switch (auswahl) {
case 1: Benutzerschnittstelle.eingabe();
menue();
break;
case 2: messwertAendern(Benutzerschnittstelle.eingabeVariablen);
menue();
break;
case 3: messwerteSortieren(Benutzerschnittstelle.eingabeVariablen);
menue();
break;
case 4: formatierteAusgabe(Benutzerschnittstelle.eingabeVariablen);
menue();
break;
case 5: Benutzerschnittstelle.ausgabe(Benutzerschnittstelle.eingabeVariablen);
menue();
break;
case 0: System.out.println("Sie haben folgende Rechenfunktion gewählt: Programm beenden");
System.exit(0);
default: break;
}
}
public static double[] messwertAendern (double[] eingabeVariablen) {
int Messwert, wertMesswert;
System.out.print("\nGeben Sie den Messwert ein, den Sie ändern möchten: ");
Messwert = eingabe()-1;
System.out.print("\nGeben Sie den neuen Messwert ein: ");
wertMesswert = eingabe();
eingabeVariablen[Messwert] = wertMesswert;
return eingabeVariablen;
}
public static int eingabe () {
String strInput = null;
int rechenfunktion_int = 0;
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
try {
strInput = input.readLine();
} catch (IOException e) {
e.printStackTrace();
}
rechenfunktion_int = Integer.parseInt(strInput);
return rechenfunktion_int;
}
public static void messwerteSortieren (double[] eingabeVariablen) {
String strInput, auf = "AUF", ab = "AB";
strInput = null;
System.out.println("\n Wie möchten sie Ihre Messwerte sortieren:");
System.out.print("AUFwärts oder ABwärts? ");
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
try {
strInput = input.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (strInput.equals(auf)) {
sortierverfahrenAufwaerts(Benutzerschnittstelle.eingabeVariablen);
} else if (strInput.equals(ab)) {
sortierverfahrenAbwaerts(Benutzerschnittstelle.eingabeVariablen);
} else {
System.out.println("Ungültige Eingabe!");
menue();
}
}
public static double[] sortierverfahrenAufwaerts(double[] eingabeVariablen) {
for (int i = 0; i < (eingabeVariablen.length ); i++) {
for (int j = i + 1; j < eingabeVariablen.length; j++) {
if (eingabeVariablen[i] > eingabeVariablen[j]) {
double dreieck = eingabeVariablen[i];
eingabeVariablen[i] = eingabeVariablen[j];
eingabeVariablen[j] = dreieck;
}
}
}
return eingabeVariablen;
}
public static double[] sortierverfahrenAbwaerts(double[] eingabeVariablen) {
for (int i = 0; i < (eingabeVariablen.length ); i++) {
for (int j = i + 1; j < eingabeVariablen.length; j++) {
if (eingabeVariablen[i] < eingabeVariablen[j]) {
double dreieck = eingabeVariablen[i];
eingabeVariablen[i] = eingabeVariablen[j];
eingabeVariablen[j] = dreieck;
}
}
}
return eingabeVariablen;
}
public static double minimum (double[] eingabeVariablen) {
double minimalwert = eingabeVariablen[0];
for (int i=0; i<eingabeVariablen.length; i++) {
if (eingabeVariablen[i] < minimalwert) {
minimalwert = eingabeVariablen[i];
}
}
return minimalwert;
}
public static double maximum (double[] eingabeVariablen) {
double maximalwert = eingabeVariablen[0];
for (int i=0; i<eingabeVariablen.length; i++) {
if (eingabeVariablen[i] > maximalwert) {
maximalwert = eingabeVariablen[i];
}
}
return maximalwert;
}
public static double standardabweichung (double[] eingabeVariablen) {
double summe = 0;
for (int i=0; i<eingabeVariablen.length; i++) {
summe = summe + (eingabeVariablen[i]-arithmetischesMittel(eingabeVariablen))*(eingabeVariablen[i]-arithmetischesMittel(eingabeVariablen));
}
double standardabweichung = Math.sqrt(((1.0/9)*summe));
return standardabweichung;
}
public static double arithmetischesMittel (double[] eingabeVariablen) {
double arithmetischesMittel = 0;
for (int i=0; i<eingabeVariablen.length; i++) {
arithmetischesMittel = arithmetischesMittel + eingabeVariablen[i];
}
arithmetischesMittel = arithmetischesMittel / eingabeVariablen.length;
return arithmetischesMittel;
}
public static double median (double[] eingabeVariablen) {
sortierverfahrenAufwaerts(eingabeVariablen);
double Median = (eingabeVariablen[5] + eingabeVariablen[6])/2;
return Median;
}
public static void formatierteAusgabe (double[] eingabeVariablen) {
DecimalFormat messwerte = new DecimalFormat("#00.000");
DecimalFormat ergebnisse = new DecimalFormat("#000.00000");
System.out.println("Messwerte:\n");
System.out.println("Messung 1 2 3 4 5 6 7 8 9 10");
System.out.print("R/Ohm: ");
for (int i=0; i<eingabeVariablen.length; i++) {
System.out.print(messwerte.format(eingabeVariablen[i]) + " ");
}
System.out.println("\n");
System.out.print("Mittelwert: " );
System.out.println(ergebnisse.format(arithmetischesMittel(Benutzerschnittstelle.eingabeVariablen)) + " Ohm");
System.out.print("Minimum: " );
System.out.println(ergebnisse.format(minimum(Benutzerschnittstelle.eingabeVariablen)) + " Ohm");
System.out.print("Maximum: " );
System.out.println(ergebnisse.format(maximum(Benutzerschnittstelle.eingabeVariablen)) + " Ohm");
System.out.print("Standardabweichung: " );
System.out.println(ergebnisse.format(standardabweichung(Benutzerschnittstelle.eingabeVariablen)) + " Ohm");
System.out.print("Median: " );
System.out.println(ergebnisse.format(median(Benutzerschnittstelle.eingabeVariablen)) + " Ohm");
}
public static void main(String[] args) {
menue();
}
}
DANKE IM VORRAUS!