/ Published in: C++
lijecnicka ordinacija z3
Expand |
Embed | Plain Text
#include <iostream> #include <iomanip> #include <time.h> #include "red_pokazivac.h" //#include "red_polje.h" #define N 10000 using namespace std; void generiraj(int par[],int prioritet_pacijenta[],int broj); void ispis(int par[],int prioritet_pacijenta[],int broj); void simuliranje(int par[],int prioritet_pacijenta[],int broj,int radi); void cekaonica(int par[],int broj); void modifikacija(int par[],int prioritet_pacijenta[],int broj); int main(void){ int broj; int mogucnost; cout << "Unesite broj pacijenata: "; cin >> broj; int *par = new int[2*broj]; int *prioritet_pacijenta = new int[2*broj]; bool generiranje = false; while(mogucnost != 0){ system("CLS"); cout << "IZBORNIK" << endl; cout << "-------------------------------------------------|" << endl; cout << "1. Generiranje pacijenata |" << endl; cout << "2. Simulacija cekaonice |" << endl; cout << "3. Modifikacija simulacije cekaonice |" << endl; cout << "0. Izlaz |" << endl; cout << "-------------------------------------------------|" << endl; cout << "Mogucnost: "; cin >> mogucnost; if(generiranje == false && mogucnost != 0 && mogucnost != 1){ cout << "Pogresan unos!\nOdaberite mogucnost 1!" << endl; system("PAUSE"); continue; } else if(mogucnost == 1){ cout << "Generiranje pacijenata." << endl; generiraj(par,prioritet_pacijenta,broj); generiranje = true; ispis(par,prioritet_pacijenta,broj); } else if(mogucnost == 2) simuliranje(par,prioritet_pacijenta,broj,1); else if(mogucnost == 3) simuliranje(par,prioritet_pacijenta,broj,2); else if(mogucnost == 0) cout << "Izlaz iz programa!" << endl; else cout << "Pogresan unos!" << endl; system("PAUSE"); }; delete[] par; delete[] prioritet_pacijenta; return 0; }; void generiraj(int par[],int prioritet_pacijenta[],int broj){ srand((unsigned)time(0)); int x = 0; while(x < broj){ par[x] = rand() % N + 1; par[broj+x] = rand() % N + 1; prioritet_pacijenta[x] = rand() % 4 + 1; x++; }; }; void ispis(int par[],int prioritet_pacijenta[],int broj){ cout << endl << setw(5) << "[Xi]" << setw(10) << "[Yi]" << setw(17) << "[PRIORITET]" << endl; cout << "---------------------------------|" << endl; int x = 0; while(x < broj){ cout << setw(5) << par[x] << setw(10) << par[broj+x] << setw(12) << prioritet_pacijenta[x] << " |" << endl; x++; }; cout << "---------------------------------|" << endl; }; void simuliranje(int par[],int prioritet_pacijenta[],int broj,int radi){ cout << "Stanje." << endl; ispis(par,prioritet_pacijenta,broj); float vrijeme_pocetak = clock(); if(radi == 1) cekaonica(par,broj); else modifikacija(par,prioritet_pacijenta,broj); float vrijeme_kraj = clock(); cout << "Vrijeme: " << (vrijeme_kraj - vrijeme_pocetak) << " ms" << endl << endl; }; void cekaonica(int par[],int broj){ red *red = InitQ(red); int pocetak; int kraj; int x; int y; int pomocna; pocetak = kraj = x = y = pomocna = 0; element e; cout << endl; while(y < broj){ e.i = par[y]; e.j = par[broj+y++]; EnQueueQ(e,red); cout << ++x << ". pacijent:" << endl; pomocna = FrontQ(red).i; cout << "Na vrhu reda se nalazi: " << pomocna << endl; cout << "Vrijeme dolaska pacijenata: " << pocetak << endl; kraj = FrontQ(red).j; cout << "Vrijeme u ordinaciji: " << kraj << endl; pocetak = pocetak + kraj; cout << "Vrijeme odlaska iz ordinacije: " << pocetak << endl << endl; pocetak = pocetak + pomocna; DeQueueQ(red); }; delete [] red; }; void modifikacija(int par[],int prioritet_pacijenta[],int broj){ int *parovi = new int[2*broj]; int *prioriteti = new int[2*broj]; int x = 0; int y; int pom1; int pom2; int pom3; while(x < broj){ parovi[x]=par[x]; parovi[broj+x]=par[broj+x]; prioriteti[x]=prioritet_pacijenta[x]; x++; }; x = 1; while(x < broj){ pom1 = prioriteti[x]; pom2 = parovi[x]; pom3 = parovi[broj+x]; y = x - 1; while(y>=0 && prioriteti[y] > pom1){ prioriteti[y+1] = prioriteti[y]; parovi[y+1] = parovi[y]; parovi[broj+y+1] = parovi[broj+y--]; }; prioriteti[y+1] = pom1; parovi[y+1] = pom2; parovi[broj+y+1] = pom3; x++; }; cekaonica(parovi,broj); delete[] parovi; delete[] prioriteti; };
You need to login to post a comment.
