Advertisement
vallec

Пациенти

Dec 15th, 2024
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.33 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. // Клас Дата
  6. class Date {
  7. private:
  8.     int day, month, year;
  9.  
  10. public:
  11.     // Конструктор с параметри
  12.     Date(int d, int m, int y) : day(d), month(m), year(y) {}
  13.  
  14.     // Копиращ конструктор
  15.     Date(const Date& other) : day(other.day), month(other.month), year(other.year) {}
  16.  
  17.     // Метод за извеждане на датата във форматиран вид
  18.     void print() const {
  19.         cout << day << "/" << month << "/" << year;
  20.     }
  21. };
  22.  
  23. // Клас Посещения
  24. class Visit {
  25. private:
  26.     string egn;
  27.     string name;
  28.     string complaint;
  29.     Date visitDate;
  30.     string prescribedMedications[5];
  31.     int medicationCount; // Брояч за броя на въведените лекарства
  32.  
  33. public:
  34.     // Конструктор с параметри
  35.     Visit(string egn, string name, string complaint, Date date, string medications[], int count)
  36.         : egn(egn), name(name), complaint(complaint), visitDate(date), medicationCount(0) {
  37.         // Копиране на до 5 лекарства
  38.         medicationCount = (count > 5) ? 5 : count;
  39.         for (int i = 0; i < medicationCount; i++) {
  40.             prescribedMedications[i] = medications[i];
  41.         }
  42.     }
  43.  
  44.     // Предефиниране на операцията <<
  45.     friend ostream& operator<<(ostream& os, const Visit& visit) {
  46.         os << "EGN: " << visit.egn << endl;
  47.         os << "Name: " << visit.name << endl;
  48.         os << "Complaint: " << visit.complaint << endl;
  49.         os << "Visit Date: ";
  50.         visit.visitDate.print();
  51.         os << endl << "Prescribed Medications: ";
  52.         if (visit.medicationCount == 0) {
  53.             os << "None";
  54.         } else {
  55.             for (int i = 0; i < visit.medicationCount; i++) {
  56.                 os << visit.prescribedMedications[i] << " ";
  57.             }
  58.         }
  59.         os << endl;
  60.         return os;
  61.     }
  62.  
  63.     // Метод за проверка на оплакването
  64.     bool hasComplaint(const string& searchComplaint) const {
  65.         return complaint == searchComplaint;
  66.     }
  67. };
  68.  
  69. // Главна функция
  70. int main() {
  71.     // Данни за лекарства
  72.     string meds1[] = {"Paracetamol", "Ibuprofen"};
  73.     string meds2[] = {"Theraflu", "Vitamin C", "Honey"};
  74.     string meds3[] = {"Aspirin", "Water"};
  75.     string meds4[] = {"Nasal Spray", "Vitamin D"};
  76.  
  77.     // Масив от обекти Visit
  78.     Visit visits[] = {
  79.         Visit("1234567890", "Ivan Ivanov", "Headache", Date(15, 12, 2024), meds1, 2),
  80.         Visit("0987654321", "Petya Petrova", "Flu", Date(16, 12, 2024), meds2, 3),
  81.         Visit("1111111111", "Georgi Georgiev", "Headache", Date(17, 12, 2024), meds3, 2),
  82.         Visit("2222222222", "Maria Marinova", "Cold", Date(18, 12, 2024), meds4, 2),
  83.     };
  84.  
  85.     // Зададено оплакване за търсене
  86.     string searchComplaint = "Headache";
  87.  
  88.     // Извеждане на всички пациенти със зададеното оплакване
  89.     cout << "Patients with complaint: " << searchComplaint << endl;
  90.     for (const Visit& visit : visits) {
  91.         if (visit.hasComplaint(searchComplaint)) {
  92.             cout << visit << endl;
  93.         }
  94.     }
  95.  
  96.     return 0;
  97. }
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement