/ Published in: C++
                    
                                        
simulacija rada lijeÄniÄke ordinacije (main)
                
                            
                                Expand |
                                Embed | Plain Text
                            
                        
                        Copy this code and paste it in your HTML
#include <iostream>
#include <ctime>
#include "red_pokazivac.h"
//#include "red_polje.h"
using namespace std;
red *red_1=new red;
red *red_2=new red;
pacijent pac;
int pac_parovi[1000];
int pac_prioritet[1000];
int N=0;
int generiranje(){
cout<<"Za koliko pacijenata zelite generirati slucajne brojeve? : ";
cin>>N;
srand((unsigned)time(NULL));
for (int i=0;i<N;i++){
pac_parovi[i]=rand()%10000+1;
pac_parovi[i+N]=rand()%10000+1;
pac_prioritet[i]=rand()%4+1;
}
cout<<endl;
return 0;
}
int ispis(){
cout<<endl;
for(int i=0;i<N;i++){
cout<<" "<<i+1<<". pacijent--> ";
cout<<"<xi="<<pac_parovi[i]<<",yi="<<pac_parovi[i+N]<<">"<<", prioritet= "<<pac_prioritet[i]<<endl;
}
cout<<endl;
return 0;
}
int simulacija_bez_prioriteta(){
InitQ(red_1);
int ceka=0, broj=1, napusta=0, ulaz=0;
for(int i=0;i<N;i++){
pac.x=pac_parovi[i];
pac.y=pac_parovi[i+N];
EnQueueQ(pac,red_1);
}
while(!IsEmptyQ(red_1)){
pac=FrontQ(red_1);
cout<<endl<<broj<<". pacijent\n";
broj++;
cout<<"---------------------------------\n";
cout<<"U red je usao nakon: "<<ulaz<<" (jedinica vrem.)\n";
cout<<"U redu je cekao: "<<ceka<<" (jedinica vrem.)\n";
ulaz+=pac.x;
napusta=ceka+pac.y;
ceka+=pac.y;
cout<<"U ordinaciji je bio: "<<pac.y<<" (jedinica vrem.)\n";
cout<<"Kliniku je napustion nakon: "<<napusta<<" (jedninica vrem.)\n";
cout<<"--------------------------------------\n\n";
system("pause");
DeQueueQ(red_1);
}
}
int simulacija_s_prioritetima(){
InitQ(red_2);
pacijent trenutno[1000];
for(int i=0;i<N;i++){
pac.x=pac_parovi[i];
pac.y=pac_parovi[i+N];
pac.pac_prioritet=pac_prioritet[i];
EnQueueQ(pac,red_2);
}
for(int i=0;i<N;i++){
trenutno[i]=FrontQ(red_2);
DeQueueQ(red_2);
}
for (int i=N; i>1;i--){
int Max=0;
for (int j=1;j<i;j++)
if (trenutno[j].pac_prioritet>trenutno[Max].pac_prioritet) Max=j;
pacijent pom=trenutno[i-1];
trenutno[i-1]=trenutno[Max];
trenutno[Max]=pom;
}
for(int i=0;i<N;i++)
EnQueueQ(trenutno[i],red_2);
int ceka=0, napusta=0, broj=1, ulaz=0;
while(!IsEmptyQ(red_2)){
pac=FrontQ(red_2);
cout<<" "<<broj<<". pacijent ---> prioritet ("<<pac.pac_prioritet<<")"<<endl;
broj++;
cout<<"----------------------------------"<<endl;
cout<<"U red je usao nakon: "<<ulaz<<" (jedinica vrem nakon prethodnog)"<<endl;
cout<<"U redu je cekao: "<<ceka<<" (jedinica vrem.)"<<endl;
ulaz+=pac.x;
napusta=ceka+pac.y;
ceka+=pac.y;
cout<<"U ordinaciji je bio: "<<pac.y<<" (jedinica vrem.)"<<endl;
cout<<"Kliniku je napustion nakon: "<<napusta<<" (jedninica vrem.)"<<endl;
cout<<"-----------------------------------\n\n";
DeQueueQ(red_2);
system("pause");
}
}
int main(){
int izbor;
do{
cout<<endl;
cout<<" Izbornik: "<<endl;
cout<<"\n---------------------------------------"<<endl;
cout<<"1. Generiranje parova slucajnih brojeva"<<endl;
cout<<"2. Ispis pacijenata (s generiranim brojevima i prioritetima)"<<endl;
cout<<"3. Simuliranje rada lijecnicke ordinacije (bez prioriteta ulazenja)"<<endl;
cout<<"4. Simulacija rada lijecnicke ordinacije (s prioritetima ulazenja)"<<endl;
cout<<"9. Izlaz iz programa"<<endl;
cout<<"Vas izbor: "<<endl;
cin>>izbor;
cout<<endl;
switch(izbor){
case 1: generiranje(); break;
case 2: ispis(); break;
case 3: simulacija_bez_prioriteta(); break;
case 4: simulacija_s_prioritetima();
}
}while(izbor!=9);
system ("pause");
return 0;
}
URL: http://snipplr.com
Comments
 Subscribe to comments
                    Subscribe to comments
                
                