Initial commit of the source files.

This commit is contained in:
Bernhard Tellenbach 2017-09-17 17:06:26 +02:00
parent 2d00125ebb
commit 333d9029d0
4 changed files with 137 additions and 0 deletions

34
MessApp.java Normal file
View File

@ -0,0 +1,34 @@
/**
* Die Klasse MessApp steuert einen Messablauf, um die Performance des
* Zufallszahlengenerators zu messen.
*/
public class MessApp {
private Messkonduktor messkonduktor;
/**
* Fuehrt eine Messung durch.
*/
public void messen() {
initialisieren();
analyseDurchfuehren();
berechneUndDruckeMittelwerteMessreihe();
berechneUndDruckeMittelwerteMessung();
}
private void initialisieren() {
// TODO Objektsammlung und Messkonduktor erzeugen
}
private void analyseDurchfuehren() {
// TODO Benutzen Sie 'messkonduktor' um die Messungen
// durchzufuehren und in der Objektsammlung zu speichern.
}
private void berechneUndDruckeMittelwerteMessreihe() {
// TODO Implementieren Sie die Methode.
}
private void berechneUndDruckeMittelwerteMessung() {
// TODO Implementieren Sie die Methode.
}
}

58
Messkonduktor.java Normal file
View File

@ -0,0 +1,58 @@
import java.util.Arrays;
import java.util.Random;
/**
* Mit dem Messkonduktor kann die Zeit fuer das Erzeugen und Sortieren einer
* vorgegebenen Anzahl Zusfallszahlen gemessen werden. Die Anzahl Zufallszahlen
* ist konfigurierbar.
*/
public class Messkonduktor {
private int anzahlZufallszahlen;
/**
* Erstellt einen Messkonduktor.
*
* @param anzahlZufallszahlen Anzahl Zufallszahlen pro Messung.
*/
public Messkonduktor(int anzahlZufallszahlen) {
this.anzahlZufallszahlen = anzahlZufallszahlen;
}
/**
* Fuehrt eine Anzahl Messungen durch. Die Anzahl ist bestimmt durch die
* Laenge des uebergeben Arrays. Eine einzelne Messung besteht aus dem
* Generieren und Sortieren der Zufallszahlen.
*
* @param messResultate Der Array fuer die Messresultate.
* @return Messresultate mit Zeitdauer in ms.
*/
public int[] messungenDurchfuehren(int[] messResultate) {
for (int i = 0; i < messResultate.length; i++) {
messResultate[i] = einzelneMessungDurchfuehren();
}
return messResultate;
}
private int einzelneMessungDurchfuehren() {
long zeitVorher = System.currentTimeMillis();
int[] zufallszahlen = zufallszahlenGenerieren();
Arrays.sort(zufallszahlen);
long zeitDanach = System.currentTimeMillis();
int zeitdauerInMs = (int) (zeitDanach - zeitVorher);
return zeitdauerInMs;
}
private int[] zufallszahlenGenerieren() {
int[] zufallszahlen = new int[anzahlZufallszahlen];
Random zufallszahlenGenerator = new Random();
for (int i = 0; i < anzahlZufallszahlen; i++) {
zufallszahlen[i] = zufallszahlenGenerator.nextInt(100000);
}
return zufallszahlen;
}
}

14
README.TXT Normal file
View File

@ -0,0 +1,14 @@
------------------------------------------------------------------------
Dies ist die README-Datei des Projekts. Hier sollten Sie Ihr Projekt
beschreiben.
Erzählen Sie dem Leser (jemand, der nichts über dieses Projekt weiss),
alles, was er/sie wissen muss. Üblicherweise sollte der Kommentar
zumindest die folgenden Angaben umfassen:
------------------------------------------------------------------------
PROJEKTBEZEICHNUNG:
PROJEKTZWECK:
VERSION oder DATUM:
WIE IST DAS PROJEKT ZU STARTEN:
AUTOR(EN):
BENUTZERHINWEISE:

31
package.bluej Normal file
View File

@ -0,0 +1,31 @@
#BlueJ package file
dependency1.from=MessApp
dependency1.to=Messkonduktor
dependency1.type=UsesDependency
package.editor.height=400
package.editor.width=560
package.editor.x=222
package.editor.y=351
package.numDependencies=1
package.numTargets=2
package.showExtends=true
package.showUses=true
project.charset=UTF-8
target1.editor.height=700
target1.editor.width=900
target1.editor.x=0
target1.editor.y=1
target1.height=50
target1.name=Messkonduktor
target1.showInterface=false
target1.type=ClassTarget
target1.width=120
target1.x=240
target1.y=170
target2.height=50
target2.name=MessApp
target2.showInterface=false
target2.type=ClassTarget
target2.width=80
target2.x=70
target2.y=40