普通类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通类相关的知识,希望对你有一定的参考价值。
3. zadatak: simulacija reda lijeÄniÄke ordinacije, strukture podataka.
#include <iostream> #include <ctime> //#include "red_pokazivac.h" #include "red_polje.h" using namespace std; int broj_pacijenata = 0; tpacijent *p_pacijent, *r_pacijent; bool sim = false; void generiranje () { int n; do { cout << " Koliko parova slucajnih brojeva zelite generirati? "; cin >> n; if (n<1) cout << "Greska! Unesli ste krivi broj! "; } while(n<1); broj_pacijenata += n; p_pacijent = new tpacijent [n]; r_pacijent = new tpacijent [n]; for (int i=0; i<broj_pacijenata; i++) { r_pacijent[i].Xi = rand()%10000+1; r_pacijent[i].Yi = rand()%10000+1; r_pacijent[i].P = rand()%4+1; } cout << " Zapisi su uspjesno izgenerirani i dodani u polje. "; } int provjera_zapisa (int P, int broj) { if (broj == 0) return -1; int br = -1; for (int i=0; i<broj; i++) { if (FrontQ(red).P > P && br<0) br = i; EnQueueQ(FrontQ(red),red); DeQueueQ(red); } if (br >= 0) return br; else return -1; } void cekanje (int sec) { clock_t kraj; kraj = clock() + sec*CLOCKS_PER_SEC; while (clock() < kraj) {} } clock_t vrijeme_pocetak, vrijeme_kraj; void simulacija (bool prioritet) { for (int i=0; i<broj_pacijenata; i++) p_pacijent[i] = r_pacijent[i]; vrijeme_pocetak = clock(); if (broj_pacijenata == 0) { cout << " Polje je prazno, koristite mogucnost 1. "; sim = false; return; } char p_prioritet[4][50] = {"kriticni slucaj", "rizicni slucaj", "slucaj niskog rizika", "nije hitan slucaj"}; tpacijent pacijent; int i=0, broj=0, br_zap; cout << endl; cout << "Simulacija: "; while (i<broj_pacijenata || !IsEmptyQ(red)) { cout << "------------------------------------------------------------------------------- "; if (i == 0) { pacijent = p_pacijent[i]; i++; cout << "Prvi pacijent je usao u ordinaciju. Tamo ce provesti " << pacijent.Yi << " vremenskih jedinica. "; if (prioritet) cout << "Njegov prioritet je " << p_prioritet[pacijent.P-1] << ". "; cekanje(1); } else if (i < broj_pacijenata) { if (pacijent.Yi > p_pacijent[i].Xi) { pacijent.Yi -= p_pacijent[i].Xi; cout << "U cekaonicu je usao novi pacijent."; if (!prioritet) EnQueueQ(p_pacijent[i], red); else { cout << " Njegov prioritet je: " << p_prioritet[p_pacijent[i].P-1] << ". "; br_zap = provjera_zapisa(p_pacijent[i].P, broj); if (br_zap >= 0) { provjera_zapisa (5, br_zap); EnQueueQ(p_pacijent[i], red); provjera_zapisa(5, broj-br_zap); if (br_zap) cout << "Pacijent je preskocio " << broj - br_zap << " pacijenta/pacijenata u redu jer ima veci prioritet. "; else cout << "Pacijent je dosao na celo reda jer ima najveci prioritet. "; cekanje(1); } else EnQueueQ(p_pacijent[i], red); } i++; broj++; cout << "U cekaonici je trenutno " << broj << " pacijenata. "; cout << "Pacijent u ordinaciji ce se tamo zadrzati: " << pacijent.Yi << " vremenskih jedinica. "; cekanje(1); } else if (pacijent.Yi < p_pacijent[i].Xi) { p_pacijent[i].Xi -= pacijent.Yi; if (IsEmptyQ(red)) { pacijent = p_pacijent[i]; i++; } else { pacijent = FrontQ(red); DeQueueQ(red); broj--; } cout << "U ordinaciju je usao novi pacijent. Tamo ce provesti: " << pacijent.Yi << " vremenskih jedinica. "; if (prioritet) cout << "Njegov prioritet je: " << p_prioritet[pacijent.P-1] << ". "; cout << "U cekaonici je trenutno " << broj << " pacijent/pacijenata. "; cekanje(1); } else { cout << "U cekaonicu je usao novi pacijent. "; if (!prioritet) EnQueueQ(p_pacijent[i], red); else { cout << " Njegov prioritet je: " << p_prioritet[p_pacijent[i].P-1] << ". "; br_zap = provjera_zapisa(p_pacijent[i].P, broj); if (br_zap >= 0) { provjera_zapisa(5, br_zap); EnQueueQ(p_pacijent[i], red); provjera_zapisa(5, broj - br_zap); if (br_zap) cout << "Pacijent je preskocio " << broj - br_zap << " pacijenta/pacijenata u redu jer ima veci prioritet. "; else cout << "Pacijent je dosao na celo reda jer ima najveci prioritet. "; } else EnQueueQ(p_pacijent[i], red); } i++; pacijent = FrontQ(red); DeQueueQ(red); cout << "U ordinaciju je usao novi pacijent. Tamo ce provesti: " << pacijent.Yi << " vremenskih jedinica. "; if (prioritet) cout << "Njegov prioritet je: " << p_prioritet[pacijent.P-1] << ". "; cout << "U cekaonici je trenutno " << broj << " pacijent/pacijenata. "; cekanje(1); } } else { pacijent = FrontQ(red); DeQueueQ(red); cout << "U ordinaciju je usao novi pacijent. Tamo ce provesti: " << pacijent.Yi << " vremenskih jedinica. "; broj--; if (prioritet) cout << "Njegov prioritet je: " << p_prioritet[pacijent.P-1] << ". "; cout << "U cekaonici je trenutno " << broj << " pacijent/pacijenata. "; } } vrijeme_kraj = clock(); broj_pacijenata = 0; sim = true; InitQ(red); } void vrijeme () { if (broj_pacijenata == 0 && !sim) { cout << " Greska! Niste pokrenuli simulaciju. "; return; } cout << " Zadnja simulacija je trajala " << ((float)vrijeme_kraj-vrijeme_pocetak)/1000 << " sec. "; } int main () { int izbor; InitQ(red); srand(time(0)); rand(); do { cout << "Izbornik: "; cout << "1. Generiranje niza od N parova slucajnih brojeva [1-10000] "; cout << "2. Simulacija reda lijecnicke ordinacije [bez prioriteta] "; cout << "3. Simulacija reda lijecnicke ordinacije [s prioritetom] "; cout << "4. Izracun vremena trajanja simulacije "; cout << "0. Izlaz iz programa "; cout << "Vas izbor: "; cin >> izbor; switch (izbor) { case 1: generiranje(); break; case 2: simulacija(0); break; case 3: simulacija(1); break; case 4: vrijeme(); break; case 0: cout << endl; system("pause"); return 0; } cout << endl; } while (1); }
以上是关于普通类的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用
片段(Java) | 机试题+算法思路+考点+代码解析 2023
elasticsearch代码片段,及工具类SearchEsUtil.java
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段