Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cctype>
- #include <iomanip>
- #include <vector>
- #include <fstream>
- #include <string>
- #include <cstdio>
- #include <cstdlib>
- #include <algorithm>
- #include <ctime>
- #define N 200
- using namespace std;
- class zad
- {
- public:
- int zadanie;
- int operacja;
- int czas_trwania;
- bool czy_mozna;
- int miejsce_przerwy;
- };
- vector<zad> maszyna1;
- vector<zad> maszyna2;
- vector<zad> przerwy;
- vector<int> rozw1;
- vector<int> rozw2;
- void generator()
- {
- int suma_czasow=0;
- float liczba_przerw=0.0;
- int liczba_przerw1=0;
- for(int i=0; i<N; i++)
- {
- int a=(rand()%80)+20;
- maszyna1.at(i).czas_trwania=a;
- maszyna1.at(i).czy_mozna=1;
- maszyna1.at(i).zadanie=i;
- maszyna1.at(i).operacja=1;
- int b=(rand()%80)+20;
- maszyna2.at(i).czas_trwania=b;
- maszyna2.at(i).czy_mozna=1;
- maszyna2.at(i).operacja=2;
- maszyna2.at(i).zadanie=i;
- }
- for(int i=0; i<maszyna1.size(); i++)
- {
- suma_czasow=suma_czasow+maszyna1.at(i).czas_trwania+maszyna2.at(i).czas_trwania;
- }
- cout<<"Suma czasow: "<<suma_czasow;
- suma_czasow=suma_czasow/0.45;
- liczba_przerw=0.1*N;
- liczba_przerw1=(int)liczba_przerw;
- for(int i=0; i<liczba_przerw; i++)
- {
- przerwy.at(i).czas_trwania=(rand()%80)+20;
- przerwy.at(i).czy_mozna=0;
- przerwy.at(i).zadanie=-1;
- przerwy.at(i).operacja=(rand()%2)+1;
- przerwy.at(i).miejsce_przerwy=rand()%suma_czasow;
- }
- for(int j=0; j<N; j++)
- {
- int a=rand()%maszyna1.size();
- for(int i=rozw1.size(); i<(rozw1.size()-1)+maszyna1.at(a).czas_trwania; i++)
- {
- rozw1.at(i)=maszyna1.at(a).zadanie;
- maszyna1.erase(maszyna1.begin()+a);
- }
- int b=rand()%maszyna2.size();
- for(int i=rozw2.size(); i<(rozw2.size()-1)+maszyna2.at(a).czas_trwania; i++)
- {
- rozw2.at(i)=maszyna2.at(b).zadanie;
- maszyna2.erase(maszyna2.begin()+b);
- }
- }
- int tmp;
- for(int i=0; i<liczba_przerw; i++)
- {
- if(przerwy.at(i).operacja==1)
- {
- for(int j=przerwy.at(i).miejsce_przerwy; j<przerwy.at(i).miejsce_przerwy+przerwy.at(i).czas_trwania; j++)
- {
- rozw1.push_back(przerwy.at(i).zadanie);
- tmp=rozw1.at(j);
- rozw1.at(j)=rozw1.at(rozw1.size()-1);
- rozw1.at(rozw1.size()-1)=tmp;
- }
- }
- else if(przerwy.at(i).operacja==2)
- {
- for(int j=przerwy.at(i).miejsce_przerwy; j<przerwy.at(i).miejsce_przerwy+przerwy.at(i).czas_trwania; j++)
- {
- rozw2.push_back(przerwy.at(i).zadanie);
- tmp=rozw2.at(j);
- rozw2.at(j)=rozw2.at(rozw2.size()-1);
- rozw2.at(rozw2.size()-1)=tmp;
- }
- }
- }
- }
- int main()
- {
- srand (time(NULL));
- generator();
- cout <<rozw2.at(5);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement