Advertisement
Guest User

Untitled

a guest
Jan 2nd, 2015
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cctype>
  4. #include <iomanip>
  5. #include <vector>
  6. #include <fstream>
  7. #include <string>
  8. #include <cstdio>
  9. #include <cstdlib>
  10. #include <algorithm>
  11. #include <ctime>
  12. #define N 200
  13.  
  14. using namespace std;
  15.  
  16. class zad
  17. {
  18. public:
  19. int zadanie;
  20. int operacja;
  21. int czas_trwania;
  22. bool czy_mozna;
  23. int miejsce_przerwy;
  24. };
  25. vector<zad> maszyna1;
  26. vector<zad> maszyna2;
  27. vector<zad> przerwy;
  28. vector<int> rozw1;
  29. vector<int> rozw2;
  30.  
  31.  
  32. void generator()
  33. {
  34. int suma_czasow=0;
  35. float liczba_przerw=0.0;
  36. int liczba_przerw1=0;
  37. for(int i=0; i<N; i++)
  38. {
  39. int a=(rand()%80)+20;
  40. maszyna1.at(i).czas_trwania=a;
  41. maszyna1.at(i).czy_mozna=1;
  42. maszyna1.at(i).zadanie=i;
  43. maszyna1.at(i).operacja=1;
  44. int b=(rand()%80)+20;
  45. maszyna2.at(i).czas_trwania=b;
  46. maszyna2.at(i).czy_mozna=1;
  47. maszyna2.at(i).operacja=2;
  48. maszyna2.at(i).zadanie=i;
  49. }
  50. for(int i=0; i<maszyna1.size(); i++)
  51. {
  52. suma_czasow=suma_czasow+maszyna1.at(i).czas_trwania+maszyna2.at(i).czas_trwania;
  53. }
  54. cout<<"Suma czasow: "<<suma_czasow;
  55. suma_czasow=suma_czasow/0.45;
  56. liczba_przerw=0.1*N;
  57. liczba_przerw1=(int)liczba_przerw;
  58. for(int i=0; i<liczba_przerw; i++)
  59. {
  60. przerwy.at(i).czas_trwania=(rand()%80)+20;
  61. przerwy.at(i).czy_mozna=0;
  62. przerwy.at(i).zadanie=-1;
  63. przerwy.at(i).operacja=(rand()%2)+1;
  64. przerwy.at(i).miejsce_przerwy=rand()%suma_czasow;
  65. }
  66. for(int j=0; j<N; j++)
  67. {
  68. int a=rand()%maszyna1.size();
  69. for(int i=rozw1.size(); i<(rozw1.size()-1)+maszyna1.at(a).czas_trwania; i++)
  70. {
  71. rozw1.at(i)=maszyna1.at(a).zadanie;
  72. maszyna1.erase(maszyna1.begin()+a);
  73. }
  74. int b=rand()%maszyna2.size();
  75. for(int i=rozw2.size(); i<(rozw2.size()-1)+maszyna2.at(a).czas_trwania; i++)
  76. {
  77. rozw2.at(i)=maszyna2.at(b).zadanie;
  78. maszyna2.erase(maszyna2.begin()+b);
  79. }
  80. }
  81. int tmp;
  82. for(int i=0; i<liczba_przerw; i++)
  83. {
  84. if(przerwy.at(i).operacja==1)
  85. {
  86. for(int j=przerwy.at(i).miejsce_przerwy; j<przerwy.at(i).miejsce_przerwy+przerwy.at(i).czas_trwania; j++)
  87. {
  88. rozw1.push_back(przerwy.at(i).zadanie);
  89. tmp=rozw1.at(j);
  90. rozw1.at(j)=rozw1.at(rozw1.size()-1);
  91. rozw1.at(rozw1.size()-1)=tmp;
  92. }
  93. }
  94. else if(przerwy.at(i).operacja==2)
  95. {
  96. for(int j=przerwy.at(i).miejsce_przerwy; j<przerwy.at(i).miejsce_przerwy+przerwy.at(i).czas_trwania; j++)
  97. {
  98. rozw2.push_back(przerwy.at(i).zadanie);
  99. tmp=rozw2.at(j);
  100. rozw2.at(j)=rozw2.at(rozw2.size()-1);
  101. rozw2.at(rozw2.size()-1)=tmp;
  102. }
  103. }
  104. }
  105.  
  106. }
  107. int main()
  108. {
  109. srand (time(NULL));
  110. generator();
  111. cout <<rozw2.at(5);
  112.  
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement