//Konstruktor bez parametrow wejsciowych public StacjaNadawcza(int id) { Id = id; _bufor = new Queue <Pakiet>(); generatorWykladniczy = new WykladniczyGeneratorLosowy(Program.lambda, Ziarno.PobierzZiarno()); new Pakiet(Id).Activate(CGPk()); }
//Konstruktor, jego wywołanie powoduje utworzenie listy stacji nadawczych i odbiorczych //oraz dodanie do list odpowiedniej liczby nadajników i odbiorników. liczba_stacji jest rowna 4 public Siec() { _stacjeNadawcze = new List <StacjaNadawcza>(); _stacjeOdbiorcze = new List <Stacja>(); _kanal = new Lacze(); _losowanieCTPk = new UniwersalnyGeneratorLosowy(Ziarno.PobierzZiarno()); _losowaniePT = new UniwersalnyGeneratorLosowy(Ziarno.PobierzZiarno()); _losowanieR = new UniwersalnyGeneratorLosowy(Ziarno.PobierzZiarno()); for (int i = 0; i < Program.liczbaNadajnikow; i++) { _stacjeNadawcze.Add(new StacjaNadawcza(i)); _stacjeOdbiorcze.Add(new Stacja(i)); } }
static void Main(string[] args) { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Ziarno.Generuj(); int liczbaSymulacji = Program.liczbaSymulacji; Console.WriteLine("Wybierz opcje wyswietlania informacji o przebiegu programu: "); Console.WriteLine("{0} - logi wylaczone"); Console.WriteLine("{1} - logi wlaczone"); int zmiennaLogi = int.Parse(Console.ReadLine()); switch (zmiennaLogi) { case 0: Program.logi = false; break; case 1: Program.logi = true; break; default: Console.WriteLine("Podano nieoczekiwana liczbe"); break; } Console.WriteLine("Wybierz opcje krokowego wykonywania petli glownej: "); Console.WriteLine("{0} - krokowo"); Console.WriteLine("{1} - ciagle"); int zmiennaKrokowo = int.Parse(Console.ReadLine()); switch (zmiennaKrokowo) { case 0: Program.symulacjaKrokowa = true; break; case 1: Program.symulacjaKrokowa = false; break; default: Console.WriteLine("Podano nieoczekiwana liczbe"); break; } Console.WriteLine("Wybierz opcje: "); Console.WriteLine("{0} - program dla ustalonych w raporcie parametrow"); Console.WriteLine("{1} - program dla nowych parametrow"); int zmiennaParametry = int.Parse(Console.ReadLine()); switch (zmiennaParametry) { case 0: Console.WriteLine("Rozpoczynam wykonywanie programu, za chwilę na ekranie pojawią się statystyki pierwszej symulacji..."); break; case 1: Console.WriteLine("Podaj wartosc lambda: "); Program.lambda = double.Parse(Console.ReadLine()); Console.WriteLine("Podaj czas symulacji w [ms]: "); Program.czasSymulacji = int.Parse(Console.ReadLine()); Console.WriteLine("Podaj liczbe symulacji: "); Program.liczbaSymulacji = int.Parse(Console.ReadLine()); Console.WriteLine("Podaj faze poczatkowa jako ilosc pakietow:"); Program.fazaPoczatkowa = int.Parse(Console.ReadLine()); break; default: Console.WriteLine("Podano nieoczekiwana liczbe"); break; } while (liczbaSymulacji > 0) { Program.zegar = 0; Siec siecSymulowana = new Siec(); while (zegar < Program.czasSymulacji) { obecnyProces = agenda.First()._proces; zegar = agenda.First()._czasZdarzenia; agenda.RemoveAt(0); obecnyProces.Execute(); if (Program.symulacjaKrokowa) { Console.ReadKey(); } } Statystyka.Wyswietl(); Console.WriteLine(); Statystyka.ZerujStatystyki(); agenda.Clear(); --liczbaSymulacji; } Statystyka.PodsumowanieStatystyk(); Ziarno.sr.Close(); Console.WriteLine("Zakonczono"); Console.ReadKey(); }