Servus mal wieder,
ich habe mal mein Programm weiter geschrieben.
Ursprüngliches Thread
hit me
Das ist das Programm mit den Test eines zufallgenerierten Arrays.
Ich habe jetzt das Problem das ich eine angabe machen muss, wie oft der Test durchgefürht wird!
Leider schaffe ich es nicht die Eingabe möglich zu machen + Bedingungen zu setzten (1 <= Tests <= 100000)
ohne das ich es verhindern kann eine Exception abzufangen!
Hier mal der Quellcode.
Main-Klasse:
Sub-Klasse
MeineEingabe-Klasse:
Die Ausgabe Klasse
MeineRandom Klasse:
Und die letzte...
Ich bedanke mich mal wieder im Voraus ^^
ich habe mal mein Programm weiter geschrieben.
Ursprüngliches Thread
hit me
Das ist das Programm mit den Test eines zufallgenerierten Arrays.
Ich habe jetzt das Problem das ich eine angabe machen muss, wie oft der Test durchgefürht wird!
Leider schaffe ich es nicht die Eingabe möglich zu machen + Bedingungen zu setzten (1 <= Tests <= 100000)
ohne das ich es verhindern kann eine Exception abzufangen!
Hier mal der Quellcode.
Main-Klasse:
Code:
import java.io.IOException;
public class SicherheitsprogrammMain
{
/**
* Die statische Methode steuert das Programm zum Erraten der Zufallszahl.
*/
public static void main(String[] args) throws IOException
{
Sicherheitsprogramm check = new Sicherheitsprogramm();
}
}
Sub-Klasse
Code:
import java.io.IOException;
import java.util.Arrays;
public class Sicherheitsprogramm
{
private int pinChipkarte[];
private int pinKonto[];
private int anzahlTestSoll = 0;
public Sicherheitsprogramm()
{
//einfacherTest();
mehrfacherTest();
}
public void einfacherTest() // wirde gerade nicht gebaucht der Teil super funzt
{
int summeDerEingezogendenKarten = 0;
do
{
pinChipkarte = MeinPinBuilder.lieferePin();
for (int index = 1; index <= 3; index++)
{
pinKonto = MeinPinBuilder.lieferePin();
if(Arrays.equals( pinChipkarte, pinKonto))
{
break;
}
}
summeDerEingezogendenKarten++;
}
while(Arrays.equals( pinChipkarte, pinKonto) == false);
MeineAusgabe.schreibe("Es wurden " + summeDerEingezogendenKarten + " Chipkarten eingezogen");
}
public void mehrfacherTest()
{
int anzahlTestIst = 0;
int summeDerEingezogendenKarten = 0;
// Hier liegt das Problem ? Wie kann ich hier Bedingungen [color=red]!!!![/color]
// einfügen ohne [color=red]!!!![/color]
// das er mir Exceptions wirft die ich nicht abfangen kann [color=red]!!!![/color]
try
{
MeineAusgabe.schreibe("Wieviele Test sollen durchgeführt werden:");
anzahlTestSoll = MeineEingabe.erfasseInt();
}
catch(IOException e)
{
System.out.print("Fehler");
}
do
{
anzahlTestIst++;
pinChipkarte = MeinPinBuilder.lieferePin();
for (int index = 1; index <= 3; index++)
{
pinKonto = MeinPinBuilder.lieferePin();
if(Arrays.equals( pinChipkarte, pinKonto))
{
break;
}
}
summeDerEingezogendenKarten ++;
if(Arrays.equals( pinChipkarte, pinKonto))
{
summeDerEingezogendenKarten--;
}
}
while(anzahlTestSoll != anzahlTestIst);
double durchschnitt = ((double) anzahlTestSoll/((double) anzahlTestSoll - (double) summeDerEingezogendenKarten));
MeineAusgabe.schreibe("Bei " + anzahlTestSoll + " Tests wurden im Durchschnitt ");
MeineAusgabe.schreibeDouble(durchschnitt);
MeineAusgabe.schreibe("Chipkarten eingezogen.\n");
MeineAusgabe.schreibeInt(anzahlTestIst);
MeineAusgabe.schreibeInt(summeDerEingezogendenKarten);
}
}
MeineEingabe-Klasse:
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class MeineEingabe
{
private static BufferedReader eingabe =
new BufferedReader(new InputStreamReader(System.in));
public static String erfasseText() throws IOException
{
return eingabe.readLine();
}
/** Die statische Methode kann ganze Zahlen einlesen[/i]*/
public static int erfasseInt() throws IOException
{
return Integer.parseInt(erfasseText());
}
/** Die statische Methode kann Komma Zahlen einlesen[/i]*/
public static double erfasseDouble() throws IOException
{
return Double.parseDouble(erfasseText());
}
}
Code:
/**
import java.text.DecimalFormat;
public class MeineAusgabe
{
/** Die statische Methode gibt die Anweisung,
* den Text auf dem Bildschrim auszugeben[/i] */
private static DecimalFormat zahlZweistellen = new DecimalFormat("#.##");
public static void schreibe(String text)
{
System.out.print(text);
}
public static void schreibeInt(int zahl)
{
System.out.println(zahl);
}
public static void schreibeDouble(double zahl)
{
System.out.println(zahlZweistellen.format(zahl));
}
}
Code:
import java.util.Random;
public class MeinRandom extends Random
{
/** Erzeugt den Generator */
public MeinRandom()
{
super();
}
/** Die Oeffentliche Methode erzeugt die Zufallszahl aus einem definierten Bereich
* @param min - die kleinste Grenze des Bereiches
* @param max - die größte Grenze des Bereiches
* @return eine ganze Zahl aus dem Bereich*/
public int nextInt(int min, int max)
{
return this.nextInt(max - min + 1) + min;
}
}
Code:
public class MeinPinBuilder
{
public MeinPinBuilder()
{
super();
}
public static int[] lieferePin()
{
int[] pin = new int[4];
MeinRandom zufall = new MeinRandom();
for(int index = 0; index < pin.length; index++)
{
pin[index] = zufall.nextInt(1,9);
}
return pin;
}
}
Ich bedanke mich mal wieder im Voraus ^^