Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. #ifndef PAZIENTE_H
  2. #define PAZIENTE_H
  3. #include <iostream>
  4. #include <string>
  5. using namespace std;
  6. enum CodiceUrgenza {BIANCO = 0, VERDE, GIALLO, ROSSO};
  7. class Paziente
  8. {
  9. private:
  10. string nome;
  11. CodiceUrgenza codice;
  12. public:
  13. Paziente() : nome(""), codice(BIANCO) {}
  14. Paziente(string n, CodiceUrgenza c) : nome(n), codice(c) {}
  15. CodiceUrgenza getCodice() const { return codice; }
  16. void setCodice(CodiceUrgenza codice) { this->codice = codice; }
  17. const string& getNome() const { return nome; }
  18. void setNome(const string& nome) { this->nome = nome; }
  19. bool operator==(const Paziente& p) const { return codice == p.codice; }
  20. bool operator<(const Paziente& p) const { return codice < p.codice; }
  21. bool operator<=(const Paziente& p) const { return codice <= p.codice; }
  22. bool operator>(const Paziente& p) const { return codice > p.codice; }
  23. bool operator>=(const Paziente& p) const { return codice >= p.codice; }
  24. };
  25. #endif
  26.  
  27.  
  28.  
  29. /*Utilizzare l’ereditarietà per realizzare la classe CodaPazienti che implementi una coda con priorità di pazienti, in cui i pazienti che arrivano sono serviti in base al codice di urgenza (da rosso a bianco) e, a parità di urgenza, nel consueto ordine FIFO (First In First Out).*/
  30.  
  31. #ifndef CODAPAZIENTI_H
  32. #define CODAPAZIENTI_H
  33. #include<list>
  34. #include"paziente.h"
  35.  
  36. class CodaPazienti: public list<Paziente>
  37. {
  38. public:
  39. void aggiungi(const Paziente& p)
  40. {
  41. list<Paziente>::iterator it=this->begin();
  42. while(it!=this->end() && (*it)>=p)
  43. it++;
  44. insert(it,p);
  45. }
  46. void pop_front(){list<Paziente>::pop_front();}
  47. //string front(){return list<Paziente>::front();}
  48. //string back(){return list<Paziente>::back();}
  49. //int size(){return list<Paziente>::size();}
  50. bool empty(){return list<Paziente>::empty();}
  51. void print(){for(list<Paziente>::iterator i=this->begin(); i!=this->end(); i++) cout<<(*i).getNome()<<" ";}
  52. };
  53. #endif
  54.  
  55.  
  56. #include"codapazienti.h"
  57. int main()
  58. {
  59. CodaPazienti A;
  60. Paziente B ("Harry",BIANCO);
  61. Paziente C ("Rohn",GIALLO);
  62. Paziente D ("Ciccio",ROSSO);
  63. Paziente E ("BOMBO",VERDE);
  64. Paziente F ("Giulia_Valentinaaa",ROSSO);
  65. A.aggiungi(B);
  66. A.aggiungi(C);
  67. A.aggiungi(F);
  68. A.aggiungi(E);
  69. A.aggiungi(D);
  70.  
  71. A.print();
  72. return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement