Hi Leute, ich habe folgende Aufgabe vor mir:
Schreiben Sie eine Klasse Statistik, die statische Methoden zur Berechnung der statistischen
Kennzahlen arithmetisches Mittel, geometrisches Mittel undStandardabweichung für eine Folge von Gleitkommazahlen bereitstellt.
Ergänzen Sie die Klasse um die main-Methode. Hier soll der Benutzer über ein Menü die
Möglichkeit haben, eine Berechnungsmethode auszuwählen.
Alle von den Methoden aufgrund nichtzulässiger Werte möglichen Fehler (Ausnahmen) sollen in den
Methoden explizit ausgelöst werden, aber dort nicht behandelt, sondern an die aufrufende Methode
(in diesem Fall an die main-Methode) weitergereicht und behandelt werden.
In der main-Methode soll zusätzlich eine eventuell unerlaubte Option bei der Auswahl der Methoden
explizit eine Ausnahme auslösen und behandelt werden.
Ich habe das programm soweit fertig geschrieben, habe aber immer wieder probleme mit meiner selbst geschriebenen exception. Das thema haben wir grade begonnen und irgendwie tuhe ich mich sehr schwer damit. Im moment erahlte ich für Zeile 6 und 11 folgende Fehlermeldung: "invalid method declaration; return type required."
Vielleicht kann mir ja jemand auf die sprünge helfen.
Ich warte gespannt,
grüße
simon
Schreiben Sie eine Klasse Statistik, die statische Methoden zur Berechnung der statistischen
Kennzahlen arithmetisches Mittel, geometrisches Mittel undStandardabweichung für eine Folge von Gleitkommazahlen bereitstellt.
Ergänzen Sie die Klasse um die main-Methode. Hier soll der Benutzer über ein Menü die
Möglichkeit haben, eine Berechnungsmethode auszuwählen.
Alle von den Methoden aufgrund nichtzulässiger Werte möglichen Fehler (Ausnahmen) sollen in den
Methoden explizit ausgelöst werden, aber dort nicht behandelt, sondern an die aufrufende Methode
(in diesem Fall an die main-Methode) weitergereicht und behandelt werden.
In der main-Methode soll zusätzlich eine eventuell unerlaubte Option bei der Auswahl der Methoden
explizit eine Ausnahme auslösen und behandelt werden.
Ich habe das programm soweit fertig geschrieben, habe aber immer wieder probleme mit meiner selbst geschriebenen exception. Das thema haben wir grade begonnen und irgendwie tuhe ich mich sehr schwer damit. Im moment erahlte ich für Zeile 6 und 11 folgende Fehlermeldung: "invalid method declaration; return type required."
Vielleicht kann mir ja jemand auf die sprünge helfen.
Ich warte gespannt,
grüße
simon
Java:
import java.util.*;
class falscheAuswahl extends Exception {
string s;
falscheAuswahlException() {
super();
}
falscheAuswahlException(String s){
super(s);
}
}//falscheAuswahl
class statistik{
Scanner in = new Scanner(System.in);
//Methode, die das arithmetische Mittel des Feldinhaltes von a berechnet
static double arithmetischesMittel(double[]a, int n){
double aMittel = 0;
double summe = 0;
int i;
for(i=0; i<n; i++){
summe = summe + a[i];
}//for
aMittel = summe/i;
return aMittel;
}//arithmetischesMittel
//Methode, die das geometrische Mittel des Feldinhaltes von a berechnet
static double geometrischesMittel(double[]a,int n){
double gMittel = 0;
double produkt = 0;
int i;
for(i=0; i<n; i++){
produkt = produkt * a[i];
}
gMittel = Math.pow(produkt, 1/n);
return gMittel;
}//geometrisches Mittel
//Methode, die das geometrische Mittel des Feldinhaltes von a berechnet
static double varianz(double[]a,int n){
double aMittel;
aMittel = arithmetischesMittel(a,n);
double summe;
double varianz;
int i;
for(i=0; i<n; i++){
summe = summe + (a[i]-aMittel*a[i]-aMittel);
}//for
varianz = 1/(n-1) * summe;
return varianz;
}//varianz
//Methode, die mit Hilfe der Varianz die Standardabweichung des Feldinhaltes berechnet
static double standardAbweichung(double[]a,int n){
double varianz = 0;
double sAbweichung = 0;
varianz = varianz(a,n);
sAbweichung = Math.sqrt(varianz);
return sAbweichung;
}//standardAbweichung
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=0;
int i;
double [] zahlen;
boolean eingabe;
int auswahl;
System.out.println("Bitte geben sie zunächst die gewuenschte Anzahl an Werten ein und wählen sie danach eine Operation aus.");
do{
try{
System.out.println("Wie viele Werte sollen eingelesen werden?: ");
n = in.nextInt();
zahlen = new double [n]; //erstellen des Feldes
eingabe = true;
}//try
catch(InputMismatchException e) {
System.out.println("Eingabefehler");
sc.next(); // fehlerhafter Wert steht noch im Eing.Puffer,
eingabe = false;
}//catch
}//do
while(!eingabe);
for(i=0; i<n; i++){ //For Schleife beschreibt das feld mit eingegebenen Zahlen
System.out.println("Bitte geben Sie den" + (i+1) +". Wert ein: ");
zahlen[i] = in.nextDouble;
}//for
do{
try{System.out.println("Folgende Operationen sind möglich: ");
System.out.println(" 1 - arithmetisches Mittel");
System.out.println(" 2 - geometrisches Mittel");
System.out.println(" 3 - Standardabweichung");
System.out.println("Welche Berechnung soll mit der Wertemenge durchgefeuhrt werden?: ");
auswahl = in.nextInt();
if((auswahl!=1)&&(auswahl!=2)&&(auswahl!=3)){
throw new falscheAuswahlException("Sie haben eine ungültige Auswahl getroffen");
}//if
eingabe = true;
}//try
catch(falscheAuswahlException e){
System.out.println(e.getMessage());
eingabe = false;
}//catch
}//do
while(!eingabe);
switch(auswahl){
case 1 :
double aMittel;
aMittel = arithmetischesMittel(zahlen, n);
System.out.println("das arithmetische Mittel ist : " + aMittel);
break;
case 2 :
double gMittel;
gMittel = geometrischesMittel(zahlen, n);
System.out.println("das geometrische Mittel ist : " + gMittel);
break;
case 3 :
double sAbweichung;
sAbweichung = standardAbweichung(zahlen, n);
System.out.println("die Standardabweichung ist : " + sAbweichung);
}//switch
}//main
}// statistik