Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Diagnostics;
- namespace AISDE1_100_
- {
- class Program
- {
- public static void Simulation(Router rtr, double czasCalkowity)
- {
- Stog Zdarzenie = new Stog();
- //Ordered_List Zdarzenie = new Ordered_List();
- //rtr.przepustowoscBajtow = 1;
- double czasAktualny = 0;
- int iloscObslugiwanych = 0, iloscStrumieniWyjsciowych = 1;
- for (int i = 0; i < rtr.strumien.Count; i++)
- {
- double czasPrzyjscia = czasAktualny + rtr.strumien[i].PobierzCzas();
- Zdarzenie.WstawZdarzenie(TypZdarzenia.Przybycie, czasPrzyjscia, i);
- }
- while (czasAktualny < czasCalkowity)
- {
- Zdarzenie Zdarzeniet = Zdarzenie.PobierzZdarzenie();
- czasAktualny = Zdarzeniet.czas;
- switch (Zdarzeniet.Type)
- {
- case TypZdarzenia.Przybycie:
- if (iloscObslugiwanych < iloscStrumieniWyjsciowych)
- {
- iloscObslugiwanych++;
- Pakiet tmp1 = new Pakiet(Zdarzeniet.numerStrumienia, rtr.strumien[Zdarzeniet.numerStrumienia].PobierzRozmiar());
- rtr.DodajDoKolejki(Zdarzeniet.numerStrumienia, tmp1, czasAktualny);
- if (rtr.CzyPustaKolejka() == false)
- Zdarzenie.WstawZdarzenie(TypZdarzenia.Opuszczenie, czasAktualny + rtr.wyslij(rtr.PobierzPakiet(czasAktualny)));
- }
- else
- rtr.DodajDoKolejki(Zdarzeniet.numerStrumienia, rtr.PobierzPakietZeStrumienia(Zdarzeniet.numerStrumienia), czasAktualny);
- Zdarzenie.WstawZdarzenie(TypZdarzenia.Przybycie, czasAktualny + rtr.strumien[Zdarzeniet.numerStrumienia].PobierzCzas(), Zdarzeniet.numerStrumienia);
- break;
- case TypZdarzenia.Opuszczenie:
- iloscObslugiwanych--;
- if (rtr.CzyPustaKolejka() == false)
- {
- iloscObslugiwanych++;
- Zdarzenie.WstawZdarzenie(TypZdarzenia.Opuszczenie, czasAktualny + rtr.wyslij(rtr.PobierzPakiet(czasAktualny)));
- }
- break;
- }
- }
- Statystyki stat = new Statystyki(rtr.PobierzStatystyki(), czasCalkowity);
- stat.Wyswietlaj();
- }
- public static void Test(int iteration)
- {
- int n = 1000000, m = 1000000, a = 10000, b = 100000;
- double stogCzasTestu = 1000, listaCzasTestu = 1000;
- Test.Ustawienia ustawienia = new Test.Ustawienia(n, m, a, b);
- Test test = new Test(ustawienia);
- using (System.IO.StreamWriter testFile = new System.IO.StreamWriter("testFile.txt"))
- for (int i = 1; i < iteration; i += 100)
- {
- ustawienia.ZmienDane(n, m, i, b);
- test.Odpal(out stogCzasTestu,out listaCzasTestu, ustawienia);
- testFile.WriteLine(i + " " + stogCzasTestu + " " + listaCzasTestu);
- // test.OdpalTylkoDlaStogu(out stogCzasTestu, ustawienia);
- // testFile.WriteLine(i + " " + stogCzasTestu);
- // test.OdpalTylkoDlaListy(out listaCzasTestu, ustawienia);
- // testFile.WriteLine(i + " " + listaCzasTestu);
- if (i % 1000 == 1)
- Console.WriteLine(i);
- }
- }
- public static void Main()
- {
- Read read = new Read();
- read.WczytajWejscie();
- Router rtr = new Router(read);
- Test test = new Test();
- Stopwatch sw = new Stopwatch();
- Simulation(rtr, 100000.0);
- Test(2002);
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement