#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "manufactory.h"
struct clock_time
{
int H;
int M;
clock_time()
{
H=8;
M=30;
}
};
void add_clock(clock_time &clock)
{
clock.M+=rand()%(31)+30;
if(clock.M >60)
{
clock.H++;
clock.M-=60;
}
}
void smelting_worked(worker *mas)
{
int number;
number=rand()%20;
if(mas[number].getiteration() ==0)
{
mas[number].setsteel(rand()%5+mas[number].getsteel());
mas[number].setbrass(rand()%5+mas[number].getbrass());
mas[number].setgold(rand()%5+mas[number].getgold());
mas[number].setsilver(rand()%5+mas[number].getsilver());
mas[number].setiteration();
}
}
void no_iteration_worked(worker *mas, int n)
{
for(int i=0;i<n;i++)
if(mas
.getiteration())
mas.setiteration();
}
void printf_result_worker(worker *mas, int n)
{
for(int i=0;i<n;i++)
{
puts(mas.getname());
printf("Выплавил %d стали\n",mas.getsteel());
printf("Выплавил %d бронзы\n",mas.getbrass());
printf("Выплавил %d золота\n",mas.getgold());
printf("Выплавил %d серебра\n\n",mas.getsilver());
}
}
bool found_worker(worker A)
{
security *mas;
int numb_security, random,i=0;
mas=new security[9];
while(rand()%21 && i<15)//если выпало 0 то ушел раньше чем обнаружили потерю
{
numb_security=rand()%10;
if(mas[numb_security].getiteration() ==0)
{
random=rand()%20;
if((random>15))
{
printf("%s обнаружен с краденым и уволен. %s получает премию\n", A.getname(), mas[numb_security].getname());
return true;
}
mas[numb_security].setiteration();
}
i++;
}
return false;
}
void f_show()
{
int i, rand_number_worked;
clock_time clock;
worker *mas_worker;
mas_worker=new worker[20];
printf("Время %d.%d\n", clock.H, clock.M);
puts("Подъехал автобус с 20 рабочими");
while(clock.H<18)
{
add_clock(clock);//прошло время
printf("Время %d.%d\n", clock.H, clock.M);
rand_number_worked=rand()%20;//сколько рабочих чтото сделало
for(i=0;i<rand_number_worked;i++)
smelting_worked(mas_worker);
no_iteration_worked(mas_worker, 20);
puts("Пришла проверка. Результаты проверки");
printf_result_worker(mas_worker, 20);
}
if(rand()%2)
{
rand_number_worked=rand()%20;
printf("%s решил украсть несколько слитков золота!\n", mas_worker[rand_number_worked].getname());
if((found_worker(mas_worker[rand_number_worked]))==0)
printf("%s завтра на работу не сможет придти
!\n", mas_worker[rand_number_worked].getname());
}
else puts("Все спокойно уходят с завода");
}
int main()
{
f_show();
return 0;
}