Generowanie 100 próbek

0

Napisałem program ale nie działa do konca dobrze i nie wiem gdzie moze byc bład:P

simple

import java.util.Random;
public class Sample {
        protected int cpu;
        protected int memory;
        protected int maxMemory;
        public Sample()
        {
                cpu = 99;
                memory = 6;
                maxMemory = 8;
                
                init();
        }
        
        public Sample(int cpuu, int mem)
        {
                cpu = cpuu;
                memory = mem;
        }
        
        public int getCPU()
        {
                return cpu;
        }
        
        public int getMem()
        {
                return memory;
        }
        
        private void init()
        {
                Random r = new Random();
                cpu = r.nextInt(101);
                memory = r.nextInt(9);
        }
        
        public void showSample()
        {
                System.out.println("cpu:" + cpu + "\nmem:" + memory + "\n");
        }
}

Starter

public class Starter {

        /**
         * @param args
         */
        public static void main(String[] args){
                // TODO Auto-generated method stub
                Program prog = new Program();
                prog.Run();
        }

}

Adaptor1

import java.io.*;
import java.util.*;
public class Adaptor1 {
        public void write(ArrayList<Sample> sampleList) throws FileNotFoundException
        {
                PrintWriter pw = new PrintWriter("kolo.txt");
                                
                for (Sample s: sampleList)
                {
                        pw.println(s.getCPU() + " " + s.getMem());
                }
                pw.close();
        }
        
        public void getAllSamples(ArrayList<Sample> sampList)
        {
                FileReader fr = null;
                try
                {
                        fr = new FileReader("kolo.txt");
                }
                catch(FileNotFoundException e)
                {
                        System.out.println("Błąd przy otwieraniu pliku");
                }
                String data = null;
                
                BufferedReader br = new BufferedReader(fr);
                String[] tab = new String[2];
                try
                {
                        while((data = br.readLine()) != null)
                        {
                                tab = data.split(" ");
                                int cpu = 0, mem = 0;
                                cpu = Integer.parseInt(tab[0]);
                                mem = Integer.parseInt(tab[1]);
                                Sample temp = new Sample(cpu, mem);
                                sampList.add(temp);
                        }
                }
                catch(IOException e)
                {
                        System.out.println("Błąd odczytu z pliku");
                }
                try
                {
                        fr.close();
                }
                catch(IOException e)
                {
                        System.out.println("Błąd przy zamykaniu pliku");
                }
        }
}

program

import java.util.*;
public class Program {
        protected ArrayList<Sample> sampleList; 
        protected void Run()
        {
                testSample();
        }
        
        private void testSample()
        {
                Adaptor1 ad = new Adaptor1();
                sampleList = new ArrayList<Sample>();
                for (int i = 0; i < 100; i++)
                {
                        Sample samp = new Sample();
                        sampleList.add(samp);
                        //samp.showSample();
                }
                try
                {
                        ad.write(sampleList);
                }
                catch(Exception e)
                {
                        System.out.println("Błąd");
                }
        }
}
0

sample jest odpowiedzialne za model
w tym przypadku jest modelem
masz tutaj jest miejsce tworzenia tych danych
masz zmienne ktore sa odpowiedzialne za CPU i ram
Od razu je deklarujesz zeby w razie jakiegos bledu pliku mialy wartosci domysle
tak jak bylo tam napisane wiec dlatego zmienna CPU ma wartosc 99
a ram 6
do tego masz zmiennna max ram
na ktorej generowac bedziemy probki

jest inicjalizacji
tam po drodze jest konstruktor
konstruktor masz po to zeby pozniej mozna bylo uzwac tej kalsy w innej klasie

w metodzie init w sposob losowy generujesz probki

tak
metody get wiesz po co sa nie ?
poprzez te metody masz dostep do elementow tej klasy ktore akurat tutaj sa potected ( nie wiem dlaczego, powinny byc private bo protected stosujesz do dziedziczenia) z poza klasy

w programie na poczatku masz tablice dynamiczna
pozniej metoda run
sluzy do uruchomienia aplikacja tak naprawde
bo to wszystko dziala wted
masz dostep do stertera tak naprawde
i jak go uruchamiasz to dzieje sie tak
on uruchamia run
run uruchamia cos tam
pozniej przechodzi klase nizej
i tak do klasy samples
dalej masz testSamples
w tej metodzie dopiero generujesz probkii

na pierwszy ogien idzie metoda do zapisywania do pliku
rozwiazanie polega na tym, ze masz pentle for ktorej parametrem jest tablica i tutaj odwolujesz sie do metody get CPU i get MEM z klasy samplem
celem zapisania warosci zemiennych do pliku
a pozniej jest druga metoda odczytujaca z pliku
obsluga wyjatkow
na wypadek gdyby taki plik nie istniaj

masz petle while
ktora bedzie dzialac do momentu kiedy z pliku nie bedzie co czytac
bo buffer reader dziala tak, ze czyta po linijce
data=br.readLine() jest dlatego, ze zmienna data ma wartosc null bo przypisana jest taka wyzej
tab to tablica utworzona wczesniej
tablica stringow
w sumie to jest chyba takie ni z d**y
bo to mi sie troche nie odnosi do czytania z pliku ale c****
moze to jakos dziala
nie sprawadzalem bo na lapku nie mam eclipsa
a do tematu
pozniej dwie zmienne
deklaracja z inicjalizacja
w celu uzycia ich do zainicjalizowania ich wartosciami z konstrukotora klasy sample

masz tam metode jeszcze parseINT
to jest typ oslony
stosujesz go jak chcesz zamienic np dane zapisane jako string na typ liczbowy
stosujesz to do odczytu z pliku
do zmiany na systemy liczbowe tid
itd

tutaj akurat masz liczby zapisane do stringa a chcesz otrzymac je w postaci inta
wiec konwertujesz
do tego sa wlasnie klasy oslonowe
cala geneza tych klas polega na tym, ze typach prostych nie mozesz wykonywac zadnych metod
wiec stosujesz typ oslonowy albo przeladowywujesz typ

0

Czy autor wątku @pyrcia173, i odpowiadający @pyrcia173 to są dwie różne osoby, czy przejaw rozdwojenia jaźni?

1 użytkowników online, w tym zalogowanych: 0, gości: 1