返回顶部

收藏

医疗过程模拟主程序

更多
#include <cstdlib>
#include <iostream>
#include <ctime>
//#include "red_pokazivac.h"
#include "red_polje.h"

using namespace std;

int n;
clock_t vrijeme1,vrijeme2;
double razlika;

double vrijeme_pocetak(){
  vrijeme1=clock();
  return (double)vrijeme1;
};

double vrijeme_kraj(){
    vrijeme2=clock();
    return (double)vrijeme2;
};

double vrijeme_proteklo(){
    razlika=vrijeme2-vrijeme1;
    return razlika;
};

void generiranje(r *pacijenti){

     srand(time(0));
     cout<<"Koliko parova zelite generirati? (1-10000)"<<endl;
     cin>>n;
     tpopis novi;
     for(int i=0;i<n;i++){
             novi.red_br=i+1;
             novi.prvi=((rand()%10001)/1000)+1;
             novi.drugi=((rand()%10001)/1000)+1;
             novi.pok=(rand()%4)+1;
             enqueueq(novi,pacijenti);
     }
};

void ispis(r *pacijenti){

     vrijeme_pocetak();
     cout<<"Ispis svih pacijenata"<<endl;
     tpopis tekuci;
     if(isemptyq(pacijenti)) 
             cout<<"Red je prazan"<<endl;
     while(!isemptyq(pacijenti)){
             tekuci=frontq(pacijenti);
             dequeueq(pacijenti);
             cout<<"-----------------------------------"<<endl;
             cout<<"Pacijent broj "<<tekuci.red_br<<endl;
             cout<<"Ceka na red: "<<tekuci.prvi<<" min"<<endl;
             cout<<"U ordinaciji je bio: "<<tekuci.drugi<<" min"<<endl;
             cout<<"Prioritet mu je: "<<tekuci.pok<<endl;
             cout<<"-----------------------------------"<<endl;
     }
     vrijeme_kraj();
     cout<<"Vrijeme trajanja programa: "<<vrijeme_proteklo()/1000<<" s"<<endl;
};

void nula(tpopis *polje){
     for(int i=0;i<n;i++){
              polje[i].red_br=0;
              polje[i].prvi=0;
              polje[i].drugi=0;
              polje[i].pok=0;
     }
     n=0;
}
void modifikacija(r *pacijenti){

     vrijeme_pocetak();
     tpopis ordinacija[10000];
     int brojac=0;
     while(!isemptyq(pacijenti)){
        ordinacija[brojac]=frontq(pacijenti);
        brojac++;
        dequeueq(pacijenti);
     }

     //sortiranje bubble sort
     bool zamjena=true;
     for(int i=n-1;i>0&&zamjena; i--){
             zamjena=false;
             for(int j=0;j<i;j++){
                     if(ordinacija[j].pok<ordinacija[j+1].pok){
                                                           tpopis pom=ordinacija[j];
                                                           ordinacija[j]=ordinacija[j+1];
                                                           ordinacija[j+1]=pom;
                                                           zamjena=true;
                     }
                     if(ordinacija[j].pok==ordinacija[j+1].pok){
                                                            if(ordinacija[j].prvi<ordinacija[j+1].prvi){
                                                                   tpopis pom=ordinacija[j];
                                                                   ordinacija[j]=ordinacija[j+1];
                                                                   ordinacija[j+1]=pom;
                                                                   zamjena=true;
                                                            }
                     }
             }
     }

     for(int i=0;i<n;i++)   
            enqueueq(ordinacija[i],pacijenti);

     cout<<"Ispis svih pacijenata"<<endl;
     tpopis tekuci;
     if(isemptyq(pacijenti)) 
            cout<<"Red je prazan"<<endl;
     while(!isemptyq(pacijenti)){
             tekuci=frontq(pacijenti);
             dequeueq(pacijenti);
             cout<<"-----------------------------------"<<endl;
             cout<<"Pacijent broj "<<tekuci.red_br<<endl;
             cout<<"Ceka na red: "<<tekuci.prvi<<" min"<<endl;
             cout<<"U ordinaciji je bio: "<<tekuci.drugi<<" min"<<endl;
             cout<<"Prioritet mu je: "<<tekuci.pok<<endl;
             cout<<"-----------------------------------"<<endl;
    }
    vrijeme_kraj();
    cout<<"Vrijeme izvodenja funkcije u sekundama: "<<vrijeme_proteklo()/1000<<endl; 
    nula(ordinacija);
}     

int main(){

    int izbor;
    r *pacijenti;
    pacijenti=new r;
    initq(pacijenti);
    do{
                     cout<<"\n";
                     cout<<"IZBORNIK"<<endl;
                     cout<<"1. Generiranje pacijenata"<<endl;
                     cout<<"2. Simulacija"<<endl;
                     cout<<"3. Modifikacija"<<endl;
                     cout<<"9. Izlaz\n"<<endl;
                     cin>>izbor;
                     switch(izbor){
                                   case 1: generiranje(pacijenti); 
                                        break;
                                   case 2: ispis(pacijenti);
                                        break;
                                   case 3: modifikacija(pacijenti);
                                        break;
                                   case 9: 
                                        return 0;
                                   default: cout<<"Krivi unos!"<<endl;

                                  }
    }while(izbor != 9);

    system("PAUSE");
    return 0;
}

标签:C++

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2017-07-23 12:42:20奇数魔方阵 by Kevin.
  2. 2017-07-18 14:15:24两种方法计算“算术表达式” by aiheng1988
  3. 2015-09-09 16:29:06将jpg转换为bmp格式的文件 by qqmmcc
  4. 2015-09-09 09:29:49可执行文件加密 by walker30
  5. 2015-09-08 18:42:46TCP端口占用查询 by 灵剑子
  6. 2015-09-08 14:16:34Luffar schack五子棋 by 蟋蟀哥
  7. 2015-09-08 10:39:34wav转mp3的程序 by 灵剑子
  8. 2015-09-05 16:54:59逐行搜索目录中的文件内容并输出到Excel by 蟋蟀哥
  9. 2015-09-03 20:10:15LZW+AES+Base64编码解码剪贴板文本 by 童学芬
  10. 2015-09-01 17:47:21猫里奥 by aiheng1988
  11. 2015-08-31 15:33:59模拟键盘操作发送字符串 by 千万不要郁闷

发表评论