فئة المريض: لغة برمجة c++ على clion
قم بتحديد فئة المريض مع سمات مثل الاسم والعمر والحالة والأولوية.
يمكن تحديد الأولوية بناءً على شدة حالة المريض.
ستكون الحالات عادية وعاجلة وحرجة.
ستكون الأولوية 3 و2 و1.
حرجة = 3 = أقصى أولوية
عاجلة = 2 = أولوية متوسطة
عادية = 1 = أدنى أولوية
تنفيذ قائمة انتظار الأولوية:
قم بتنفيذ بنية بيانات قائمة انتظار الأولوية لإدارة مهام المريض.
يجب أن تتضمن العمليات على قائمة الانتظار ما يلي:
1- إضافة وظيفة المريض:
قم بتنفيذ وظيفة add_patient لإضافة مريض جديد إلى قائمة انتظار الأولوية.
قم بإضافة المريض إلى قائمة انتظار الأولوية بناءً على أولويته/حالته.
2-عملية وظيفة المريض:
قم بتنفيذ وظيفة process_patient لمعالجة/إزالة المريض ذي الأولوية الأعلى
من قائمة الانتظار.
قم باستخراج المريض ذي الأولوية الأعلى من قائمة الانتظار وعرض تفاصيله.
3- تحديث وظيفة المريض:
تعدل هذه الوظيفة أولوية مريض موجود معين في قائمة الانتظار.
تأخذ هذه الوظيفة المريض وأولوية/حالة جديدة للمريض.
في حالة زيادة الأولوية (تدهور حالة المريض) (على سبيل المثال من حالة طبيعية إلى حالة عاجلة)
ستقوم بتحديث حالة المريض وإعادة ترتيب قائمة الانتظار ذات الأولوية بناءً على ذلك. (يتم فتح طريقة إعادة الترتيب للطالب)
في حالة انخفاض الأولوية (تحسن حالة المريض) (على سبيل المثال من حالة حرجة إلى حالة عاجلة)
ستقوم بتحديث حالة المريض وإعادة ترتيب قائمة الانتظار ذات الأولوية بناءً على ذلك.
في حالة بقاء الأولوية المدخلة كما هي، لن يحدث شيء سوى التعامل مع الوظيفة باستخدام cout.
4- وظيفة العرض:
قم بتنفيذ وظيفة display_queue لعرض المرضى الحاليين في قائمة الانتظار ذات الأولوية.
يجب أن تقوم هذه الوظيفة بطباعة تفاصيل كل مريض في قائمة الانتظار، بما في ذلك اسمه وعمره وحالته وأولويته.
5- دالة الحجم:
قم بتنفيذ دالة queue_size لتحديد عدد المرضى الموجودين حاليًا في قائمة الانتظار
ذات الأولوية.
يجب أن تعيد هذه الدالة حجم قائمة الانتظار ذات الأولوية.
6- دالة الاسم الأمامي:
تسترجع هذه الدالة اسم المريض الأكثر إلحاحًا (المريض الموجود في مقدمة قائمة الانتظار ذات الأولوية) دون إزالته أو تغيير حالة قائمة الانتظار.
تطرح استثناءً نصيًا (cout) إذا لم تحتوي قائمة الانتظار على أي مرضى.
يجب أن يتضمن الناتج النهائي تفاصيل كل مريض تمت معالجته، والحالة الحالية لقائمة الانتظار ذات الأولوية (بما في ذلك تفاصيل المريض)، وعدد المرضى في قائمة الانتظار. توفر هذه المحاكاة الموسعة عرضًا أكثر شمولاً لعمليات غرفة الطوارئ،
مما يسمح بمراقبة وإدارة أفضل لمهام المرضى.
إنشاء فئة المريض:
تحديد فئة باسم Patient تحتوي على السمات: الاسم، العمر، الحالة، والأولوية.
يتم تحديد الحالة على أساس شدة الحالة الطبية كالتالي:
حالة حرجة (أولوية 3).
حالة عاجلة (أولوية 2).
حالة عادية (أولوية 1).
بناء قائمة انتظار الأولوية:
إنشاء بنية بيانات قائمة الانتظار ذات الأولوية لإدارة مهام المرضى.
تحتوي قائمة الانتظار على عمليات لإضافة وإزالة المرضى بناءً على أولوياتهم.
تنفيذ عملية add_patient:
إضافة مريض جديد إلى قائمة الانتظار بناءً على الأولوية.
إدخال مريض جديد حسب حالته (الأولوية).
تنفيذ عملية process_patient:
إزالة المريض ذي الأولوية الأعلى من قائمة الانتظار.
عرض تفاصيل المريض الذي تمت معالجته (الاسم، العمر، الحالة، والأولوية).
تنفيذ عملية update_patient:
تعديل أولوية مريض موجود في قائمة الانتظار.
إذا زادت الأولوية (تدهور الحالة)، يتم تحديث الحالة وإعادة ترتيب القائمة.
إذا قلت الأولوية (تحسن الحالة)، يتم أيضًا إعادة الترتيب.
إذا لم تتغير الأولوية، يتم فقط عرض رسالة cout دون إعادة ترتيب.
تنفيذ وظيفة display_queue:
طباعة تفاصيل جميع المرضى الموجودين في قائمة الانتظار (الاسم، العمر، الحالة، والأولوية).
تنفيذ دالة queue_size:
حساب وإعادة حجم قائمة الانتظار، أي عدد المرضى الحاليين.
تنفيذ دالة front_name:
استرجاع اسم المريض ذو الأولوية الأعلى دون إزالته من القائمة.
عرض استثناء باستخدام cout إذا كانت القائمة فارغة.