hospital-management-system icon indicating copy to clipboard operation
hospital-management-system copied to clipboard

doctor1.cpp

Open danghieu2004 opened this issue 9 months ago • 0 comments

#include #include #include

using namespace std;

class Doctor { private: string name; int age; string phoneNumber; bool hasAppointment; bool hasWorked;

public: Doctor(string name, int age, string phoneNumber) : name(name), age(age), phoneNumber(phoneNumber), hasAppointment(false), hasWorked(false) {}

string getName() const {
    return name;
}

void AddAppointment() {
    hasAppointment = true;
    cout << "Added appointment schedule for doctor " << name << endl;
}

void RemoveAppointment() {
    hasAppointment = false;
    cout << "Deleted doctor's appointment " << name << endl;
}

void SetWorkedStatus(bool status) {
    hasWorked = status;
    cout << "Updated the doctor's working status " << name << endl;
}

void DisplayInfo() {
    cout << "Doctor's information:" << endl;
    cout << "Name: " << name << endl;
    cout << "Age: " << age << endl;
    cout << "The phone number: " << phoneNumber << endl;
    cout << "Appointment schedule: " << (hasAppointment ? "Yes" : "No") << endl;
    cout << "Used to work at a hospital: " << (hasWorked ? "Yes" : "No") << endl;
}

};

int main() { string name, phoneNumber; int age; vector<Doctor> doctors;

while (true) {
    cout << "===== Hospital Management System =====" << endl;
    cout << "1. Add doctor" << endl;
    cout << "2. Delete doctor" << endl;
    cout << "3. Display doctor information" << endl;
    cout << "4. Add an appointment to your doctor" << endl;
    cout << "5. Delete doctor's appointment" << endl;
    cout << "6. Update the doctor's working status" << endl;
    cout << "0. Exit the program" << endl;
    cout << "Please select an option: ";
    int choice;
    cin >> choice;

    switch (choice) {
        case 0:
            cout << "Program exited." << endl;
            return 0;

        case 1:
            cout << "Enter the doctor's name: ";
            cin.ignore();
            getline(cin, name);
            cout << "Enter age: ";
            cin >> age;
            cout << "Enter the phone number: ";
            cin.ignore();
            getline(cin, phoneNumber);

            doctors.push_back(Doctor(name, age, phoneNumber));
            cout << "Doctor added successfully!" << endl;
            break;

        case 2:
            if (doctors.empty()) {
                cout << "There is no doctor to remove." << endl;
            } else {
                cout << "List of doctors:" << endl;
                for (int i = 0; i < doctors.size(); ++i) {
                    cout << i + 1 << ". " << doctors[i].getName() << endl;
                }
                cout << "Please select the doctor's order number to delete: ";
                int index;
                cin >> index;

                if (index >= 1 && index <= doctors.size()) {
                    doctors.erase(doctors.begin() + index - 1);
                    cout << "Doctor successfully deleted!" << endl;
                } else {
                    cout << "Invalid order number." << endl;
                }
            }
            break;

        case 3:
            if (doctors.empty()) {
                cout << "There are no doctors to show." << endl;
            } else {
                cout << "List of doctors" << endl;
                for (int i = 0; i < doctors.size(); ++i) {
                    cout << i + 1 << ". " << doctors[i].getName() << endl;
                }
                cout << "Please select a doctor's order number to display information: ";
                int index;
                cin >> index;

                if (index >= 1 && index <= doctors.size()) {
                    doctors[index - 1].DisplayInfo();
                } else {
                    cout << "Invalid order number." << endl;
                }
            }
            break;

        case 4:
            if (doctors.empty()) {
                cout << "There is no doctor to add an appointment." << endl;
            } else {
                cout << "List of doctor:" << endl;
                for (int i = 0; i < doctors.size(); ++i) {
                    cout << i + 1 << ". " << doctors[i].getName() << endl;
                }
                cout << "Please select your doctor's order number to add an appointment: ";
                int index;
                cin >> index;

                if (index >= 1 && index <= doctors.size()) {
                    doctors[index - 1].AddAppointment();
                } else {
                    cout << "Invalid order number." << endl;
                }
            }
            break;

        case 5:
            if (doctors.empty()) {
                cout << "There is no doctor to clear appointments." << endl;
            } else {
                cout << "List of doctor:" << endl;
                for (int i = 0; i < doctors.size(); ++i) {
                    cout << i + 1 << ". " << doctors[i].getName() << endl;
                }
                cout << "Please select the doctor's order number to delete the appointment: ";
                int index;
                cin >> index;

                if (index >= 1 && index <= doctors.size()) {
                    doctors[index - 1].RemoveAppointment();
                } else {
                    cout << "Invalid order number." << endl;
                }
            }
            break;

        case 6:
            if (doctors.empty()) {
                cout << "There is no doctor to update work status." << endl;
            } else {
                cout << "List of doctor:" << endl;
                for (int i = 0; i < doctors.size(); ++i) {
                    cout << i + 1 << ". " << doctors[i].getName() << endl;
                }
                cout << "Please select your doctor's order number to update your working status: ";
                int index;
                cin >> index;

                if (index >= 1 && index <= doctors.size()) {
                    cout << "Enter working status (1: Yes, 0: No): ";
                    int status;
                    cin >> status;
                    doctors[index - 1].SetWorkedStatus(status == 1);
                } else {
                    cout << "Invalid order number." << endl;
                }
            }
            break;

        default:
            cout << "Invalid selection. Please select again." << endl;
            break;
    }
}

return 0;

}

danghieu2004 avatar May 21 '24 14:05 danghieu2004