Siemano, mam do napisania totalizator sportowy, który zapisuje do pliku podane przez nas liczby oraz wynik losowania + daty i wyniki poprzednich losowań. Mam problem z zapisywaniem wyników(ogólnie tych z datą i obecnego -.-)
Rozbiłem kod na 3 klasy i nie wiem, czy dobrze zrobiłem :P
Główna klasa:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Application {
static Draw l = new Draw();
Results r= new Results();
public static void displayOptions() {
System.out.println("Wybierz co chcesz zrobić: ");
System.out.println("1.");
System.out.println("2");
System.out.println("3.");
System.out.println("4. Wprowadź nowe liczby: ");
System.out.println("5.Wyjdź");
}
public static void WriteToFile(int[] tab) throws FileNotFoundException {
PrintWriter zapis = new PrintWriter("Lottery.txt");
for (int i = 0; i < tab.length; i++) {
zapis.println(tab[i]);
}
zapis.close();
}
public static void enterData()throws java.io.IOException {
// int n=0;
int[] tab = new int[6];
System.out.println("Wprowadz 6 liczb: ");
// Scanner in = new Scanner(System.in);
// n=in.nextInt();
// in.close();
// System.out.println("Wprowadz "+ n + " liczb");
Scanner insert = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
tab[i] = insert.nextInt();
if (tab[i] <= 0) {
System.out.println("Liczby muszą być większe od zera!");
// i--;
} else if (tab[i] > 48)
System.out.println("Liczby nie moze byc wieksze od 48!");
// i--;
}
System.out.println("Twoje liczby to: ");
for (int i = 0; i < tab.length; i++) {
WriteToFile(tab);
System.out.print(" " + tab[i]);
}
// int x = tab[6];
System.out.println();
//insert.close();
}
public static void Console() throws IOException
{
int select = 0;
do {
Scanner input = new Scanner(System.in);
select = input.nextInt();
switch (select) {
case 1:
System.out.println(" Losowanie 7 z " + l.Generator(48, 6));
break;
case 2:
System.out.println(" Losowanie 8 z " + l.Generator(46, 8));
break;
case 3:
System.out.println(" Losowanie 3 z " + l.Generator(50, 3));
break;
case 4:
enterData();
displayOptions();
Console();
break;
case 5:
System.out.println("Koniec programu.");
//input.close();
break;
default:
System.out.printf("Błąd");
}
} while (select != 4);
}
public static void main(String args[]) throws IOException {
enterData();
displayOptions();
Console();
}
}
2 klasa(losowanie):
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Random;
class Draw{
public static void WriteToFile(int y) throws FileNotFoundException {
PrintWriter zapis = new PrintWriter("Lottery.txt");
for (int i = 0; i < 6; i++) {
zapis.println(y);
}
zapis.close();
}
int Generator(int n, int y) throws FileNotFoundException {
ArrayList<Integer> al = new ArrayList<Integer>();
for (int i = 1; i <= n; i++)
al.add(i);
Random ran = new Random();
System.out.print("Wylosowane liczby to :");
for (int i = 0; i < y; i++) {
Integer x = al.remove(ran.nextInt(al.size()));
System.out.print(" " + x);
//WriteToFile(x);
}
return n;
}
}
3 klasa(wyniki):
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Results implements Serializable {
static int[] tab;
static char data;
private static final long serialVersionUID = 1L;
{
this.tab=tab;
this.data=data;
}
public static void main()throws IOException, ClassNotFoundException{
ObjectOutputStream wy = new ObjectOutputStream(new FileOutputStream("Lottery.txt"));
wy.close();
Results wynik = new Results();
wy.writeObject(wynik);
}
}
dodanie znaczników <code class="java">
- @furious programming