Um die Gewinner der Verlosung zu ermitteln habe ich ein klitzekleines Java-Programm dafür geschrieben. Es speichert die E-Mail Adressen der Teilnehmer und ermittelt dann am Ende die Gewinner. Ich zeige euch kurz wie es funktioniert.
Dafür habe ich eine einzelne Klasse „Verlosung“ geschrieben, die alle meine Funktionen beinhaltet und die E-Mail Adressen in einer ArrayList von Strings enthält.
Im Konstruktor wird zuerst die ArrayList initialisiert und danach die Funktion loadList aufgerufen. Diese Funktion lädt (falls vorhanden) die als Objekt-Datei gespeicherte ArrayList und übergibt sie der vorhandenen mailList.
Über einen InputStream greift die Funktion auf die Datei verlosung.dat zu und ignoriert die Fehlermeldung, wenn sie Datei noch nicht angelegt ist. Dazu gibt es natürlich auch die passende Speicherfunktion:
Die nächste Funktion addToList benötige ich um die E-Mail Adressen zu meiner Liste hinzuzufügen. Als weiteren Paramater kann man die Anzahl der Lose angeben. Wer also 2 Lose hat, wird einfach 2 mal in der Liste gespeichert und hat so eine höhere Chance gezogen zu werden.
Eine kleine Print-Funktion zeigt mir wie viele und welche Leute schon teilgenommen haben. Die Ausgabe erfolgt möglichst einfach per Console.
Nun fehlt noch das eigentlich „Herz-Stück“, die Auslosung bzw. Ziehung. Aber auch die ist nicht wirklich spektaklär, sondern recht einfach gehalten. Über die Random-Klasse ziehe ich eine Zahl zwischen 0 (inklusive) und der Anzahl der Einträge in der Liste (exklusive). Diese gibt dann die E-Mail Adressen der Gewinner auf der Konsole aus. Mit dem Übergabe-Parameter kann man bestimmen wie viele Gewinner gezogen werden sollen.
Um das ganze zu starten fehlt uns jetzt nur noch die Main-Funktion. Hier erstelle ich meine Klasse Verlosung und füge zum Testen die E-Mail Adresse test@test.de hinzu. Anschließend speichere ich die Liste und gebe sie über die Print-Funktion aus.
Die auskommentierte Zeile würde 3 Gewinner aus der Liste ziehen und ausgeben.
Das Programm ist jetzt kein Meisterwerk aber es tut seinen Zweck und erleichtert mir etwas Arbeit. 😉 Wer übrigens den Source-Code haben möchte, muss uns nur eine E-Mail oder in die Kommentare schreiben. Ich habe hier nur Bilder verwendet damit die farbige Darstellung aus Eclipse bestehen bleibt.
Mal als Hinweis: Man kann aus Eclipse heraus nach z.B. Word kopieren und das Syntax-Highlighting bleibt bestehen.
Danke an Dirk für diesen Tipp. Hat gut geklappt. Aber danke natürlich auch für diesen Beitrag, sehr toll!