Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lukas.generator;
- import java.io.FileNotFoundException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- public class Main {
- static final Random r = new Random();
- static final int ILOSC_DANYCH = 1000;
- static final String FILE_NAME = "out.csv";
- public static void main(String[] args) throws FileNotFoundException {
- List<Wiersz> wiersze = new ArrayList<Wiersz>();
- for(int i=0;i<ILOSC_DANYCH;i++){
- wiersze.add(generateRow());
- }
- System.out.println("KONIEC GENEROWANIA!");
- System.out.println("Ilość błędów: "+Wiersz.iloscBledow());
- PrintWriter zapis = new PrintWriter(FILE_NAME);
- zapis.println(Wiersz.getCSVheader());
- for(int i=0;i<ILOSC_DANYCH;i++){
- zapis.println(wiersze.get(i).getCSV());
- }
- zapis.close();
- }
- public static Wiersz generateRow(){
- Wiersz w;// = new Wiersz();
- boolean isMiasto;
- do{
- w = new Wiersz();
- w.wiek = 18+r.nextInt(57);
- w.plec = (r.nextBoolean())? 'M' : 'K';
- isMiasto = r.nextBoolean();
- w.miejsce_zam = (isMiasto)? "Miasto" : "Wies";
- if(isMiasto){
- if(r.nextBoolean()){//zrobmy duze miasto:
- w.liczba_ludnosci = 100000+r.nextInt(500000);
- } else {
- w.liczba_ludnosci = 2000 + r.nextInt(100000);
- }
- } else {
- w.liczba_ludnosci = r.nextInt(8000);
- }
- w.czas_istnienia = r.nextInt(600);
- if(w.czas_istnienia>300){
- w.liczba_zatr = 40 + r.nextInt(140);
- } else {
- w.liczba_zatr = r.nextInt(80);
- }
- w.czas_pracy = r.nextInt(360);
- double wynagrodzenie = r.nextDouble() * r.nextInt(20000);
- if(wynagrodzenie > 14000) wynagrodzenie /= 2;
- if(isMiasto) {
- wynagrodzenie += r.nextDouble() * r.nextInt(1500);
- if(wynagrodzenie < 2500) wynagrodzenie *= 1.5;
- }
- if(w.czas_pracy > 100 && w.czas_pracy < 200) {
- wynagrodzenie *= 1.1;
- }
- if(w.czas_pracy >= 200) {
- if(wynagrodzenie<5000){
- if(isMiasto) wynagrodzenie *= 1.5;
- else wynagrodzenie *= 1.4;
- } else {
- wynagrodzenie *= 1.2;
- }
- }
- w.wynagrodzenie = wynagrodzenie;
- } while(!w.check());
- return w;
- }
- }
- package lukas.generator;
- import java.text.DecimalFormat;
- public class Wiersz {
- private static int bledow = 0;
- public int wiek; //18-75
- public char plec; //M / K
- public String miejsce_zam; //Miasto / Wieś
- public int liczba_ludnosci; //liczba ludnosci w miejscu zamieszkania: 50-1 000 000
- public int liczba_zatr; //liczba zatr w miejscu pracy: 1 - 200
- public int czas_pracy; //czas pracy w miesiacach (0-360) [max 30 lat]
- public int czas_istnienia; // czas istnienia firmy w miesiacach (0-600) [max 50 lat]
- public double wynagrodzenie; //1000 - 15000 zł (lub -1 dla pomieniecia)
- public Wiersz(int wiek, char plec, String miejsce_zam, int liczba_ludnosci, int liczba_zatr, int czas_pracy, int czas_istnienia,
- double wynagrodzenie) {
- super();
- this.wiek = wiek;
- this.plec = plec;
- this.miejsce_zam = miejsce_zam;
- this.liczba_ludnosci = liczba_ludnosci;
- this.liczba_zatr = liczba_zatr;
- this.czas_pracy = czas_pracy;
- this.czas_istnienia = czas_istnienia;
- this.wynagrodzenie = wynagrodzenie;
- }
- public Wiersz(){
- super();
- }
- public static int iloscBledow(){
- return bledow;
- }
- public boolean check(){
- boolean ret = true;
- if(wiek<18 || wiek>75) ret = false;
- if(plec!='M' && plec!='K') ret = false;
- if(!miejsce_zam.equals("Miasto") && !miejsce_zam.equals("Wies")) ret = false;
- if(liczba_ludnosci<50 || liczba_ludnosci>1000000) ret = false;
- if(liczba_zatr<1 || liczba_zatr>200) ret = false;
- if(czas_pracy < 0 || czas_pracy > 360) ret = false;
- if(czas_istnienia < 0 || czas_istnienia > 600) ret = false;
- if(wynagrodzenie != -1) {//jesli nie pomijamy
- if(wynagrodzenie < 1000 || wynagrodzenie > 15000) ret = false;
- }
- if(ret==false) bledow++;
- return ret;
- }
- public String getCSV(){
- String s = "";
- s += wiek + ";" + plec + ";" + miejsce_zam + ";" + liczba_ludnosci + ";" + liczba_zatr + ";";
- s += czas_pracy + ";" + czas_istnienia + ";";
- DecimalFormat df = new DecimalFormat("0.00");
- s += df.format(wynagrodzenie);
- return s;
- }
- public static String getCSVheader(){
- String s = "Wiek;Plec;Miejsce_zamieszkania;Liczba_ludnosci;Liczba_zatrudnionych;Czas_pracy;Czas_istnienia;Wynagrodzenie";
- return s;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement