Revision: 53907
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 3, 2011 06:05 by mlcorak
Initial Code
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#include "racunanje_vremena.cpp"
struct cpacijent{
int cekanje;
int obrada;
int rbr;
int gotov;
}pacijent[10000] , tmp;
typedef cpacijent elementtype;
#include "red_cirkularno_polje.h"
//#include "red_pokazivaci.h"
void generiranje (int i, int n, elementtype pacijent[]){
for (i = 0 ; i < n ; i++){
pacijent[i].cekanje = rand()%1000 +1;
pacijent[i].obrada = rand()%1000 +1;
pacijent[i].rbr = i + 1;
pacijent[i].gotov = 0;
cout << pacijent[i].rbr << "\t\t" << pacijent[i].cekanje << " \t\t" << pacijent[i].obrada << "\t\t\t" << endl;
}
}
int main(){
vrijeme_pocetak();
srand((unsigned)time(NULL));
int n , i , br = 0 , br2 = 0 , k = 1 , j;
queue *red1;
red1 = new queue;
InitQ(red1);
cout << "*****************************************" << endl;
cout << "*\t\tDOBRODOSLI\t\t*" << endl;
cout << "* Program simulira rad hitne sluzbe *" << endl;
cout << "*****************************************" << endl;
do{
cout << "\nSimulaciju sa koliko pacjenata zelite R:(max 10000)? ";
cin >> n;
if (n>10000 || n<0) cout<<"\nUnos mora bi u rasponu izmedu 0-10000. Ponovite unos";
} while (n>10000 || n<0);
cout << "\n***************************************************************";
cout << "\nBroj_pacjenta\tCekanje\t\tVrijeme_obrade\t\tHitnost"<< endl;
generiranje (i,n,pacijent);
cout << "\n***************************************************************\n";
cout<<"Pacjenti kako dolaze na hitnu smijestaju se u jedan \n red "<<endl;
cout << "\n***************************************************************\n\n";
for(i = 0 ; i < n; i++){
if (pacijent[i].gotov == 0){
if(IsEmptyQ(red1)){
while(br < pacijent[i].cekanje){
br++;
br2++;
}
br=0;
EnQueueQ(pacijent[i] , red1);
cout << pacijent[i].rbr << ". pacijent ulazi u red " << endl;
}
}
cout << "Proteklo " << br2 << " vremenskih jedinica." << endl;
if (k > 1) k--;
tmp = FrontQ(red1);
DeQueueQ(red1);
cout << tmp.rbr << ". pacijent ulazi u ordinaciju." << endl;
if (IsEmptyQ(red1)) cout<<"Red je prazan."<<endl;
else cout << "Na celu reda je " << FrontQ(red1).rbr <<". pacijent " << endl;
tmp.gotov = 1;
for(j = 0 ; j < tmp.obrada ; j++){
br++;
br2++;
if((i + k < n) && (br == pacijent[i+k].cekanje)){
EnQueueQ(pacijent[i+k] , red1);
pacijent[i+k].gotov=1;
cout << "Nakon " << j+1 << ". jedinice vremena, "<<i+k+1 << ". pacijent ulazi u red." <<endl;
br = 0;
k++;
}
}
cout << tmp.rbr << ". pacijent izlazi iz ordinacije" << endl;
cout << "Proteklo jedinica: " << br2 << endl << endl;
}
vrijeme_kraj();
cout<<"Stvarno vrijeme trajanja programa je "<<vrijeme_proteklo() <<"milisekundi"<<endl;
system ("pause");
return 0;
}
Initial URL
Initial Description
glavni program, a,b,d dio
Initial Title
A,B,D dio glavnog programa
Initial Tags
Initial Language
C++