Загрузка данных
#define _CRT_SECURE_NO_WARNINGS
#include "hospital.h"
#include <iostream>
using namespace std;
// ========== ГЛОБАЛЬНЫЕ ДАННЫЕ ==========
Patient patients[20];
int patientCount = 0;
Doctor doctors[10];
int doctorCount = 0;
Ward wards[10];
int wardCount = 0;
Department dept;
bool deptCreated = false;
// ========== ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ==========
void clearInput() {
cin.clear();
cin.ignore(10000, '\n');
}
void pause() {
cout << "\nНажмите Enter, чтобы продолжить...";
cin.get();
}
// ========== ДЕЙСТВИЯ МЕНЮ ==========
void addPatient() {
if (patientCount >= 20) {
cout << "Достигнут максимум больных (20)!\n";
return;
}
char name[50];
int age;
cout << "\n--- Добавление больного ---\n";
cout << "Имя: ";
cin >> name;
cout << "Возраст: ";
cin >> age;
patients[patientCount].SetName(name);
patients[patientCount].SetAge(age);
patientCount++;
cout << "Больной добавлен.\n";
}
void addDoctor() {
if (doctorCount >= 10) {
cout << "Достигнут максимум врачей (10)!\n";
return;
}
char name[50], spec[50];
int exp;
cout << "\n--- Добавление врача ---\n";
cout << "Имя: ";
cin >> name;
cout << "Специальность: ";
cin >> spec;
cout << "Стаж (лет): ";
cin >> exp;
doctors[doctorCount].SetName(name);
doctors[doctorCount].SetSpecialty(spec);
doctors[doctorCount].SetExperience(exp);
doctorCount++;
cout << "Врач добавлен.\n";
}
void addWard() {
if (wardCount >= 10) {
cout << "Достигнут максимум палат (10)!\n";
return;
}
int num, cap;
cout << "\n--- Добавление палаты ---\n";
cout << "Номер палаты: ";
cin >> num;
cout << "Вместимость: ";
cin >> cap;
wards[wardCount].SetRoomNumber(num);
wards[wardCount].SetCapacity(cap);
wardCount++;
cout << "Палата добавлена.\n";
}
void createDepartment() {
if (deptCreated) {
cout << "Отделение уже создано: " << dept.GetName() << endl;
return;
}
char deptName[50];
cout << "\n--- Создание отделения ---\n";
cout << "Название отделения: ";
cin >> deptName;
dept.SetName(deptName);
for (int i = 0; i < doctorCount; i++) {
dept.AddDoctor(doctors[i]);
}
for (int i = 0; i < wardCount; i++) {
dept.AddWard(wards[i]);
}
deptCreated = true;
cout << "Отделение создано. Добавлено врачей: " << doctorCount
<< ", палат: " << wardCount << endl;
}
void showAllPatients() {
cout << "\n=== БОЛЬНЫЕ (" << patientCount << ") ===\n";
if (patientCount == 0) {
cout << " Список пуст.\n";
return;
}
for (int i = 0; i < patientCount; i++) {
patients[i].Show();
}
}
void showAllDoctors() {
cout << "\n=== ВРАЧИ (" << doctorCount << ") ===\n";
if (doctorCount == 0) {
cout << " Список пуст.\n";
return;
}
for (int i = 0; i < doctorCount; i++) {
doctors[i].Show();
}
}
void showAllWards() {
cout << "\n=== ПАЛАТЫ (" << wardCount << ") ===\n";
if (wardCount == 0) {
cout << " Список пуст.\n";
return;
}
for (int i = 0; i < wardCount; i++) {
wards[i].Show();
}
}
void showDepartment() {
if (!deptCreated) {
cout << "Отделение ещё не создано.\n";
return;
}
cout << endl;
dept.Show();
}
void showMenu() {
cout << "\n========== БОЛЬНИЦА ==========\n";
cout << "1. Добавить больного\n";
cout << "2. Добавить врача\n";
cout << "3. Добавить палату\n";
cout << "4. Создать отделение\n";
cout << "5. Показать больных\n";
cout << "6. Показать врачей\n";
cout << "7. Показать палаты\n";
cout << "8. Показать отделение\n";
cout << "0. Выход\n";
cout << "Ваш выбор: ";
}
// ========== MAIN ==========
int main() {
setlocale(LC_ALL, "Russian");
int choice;
do {
showMenu();
cin >> choice;
clearInput();
switch (choice) {
case 1: addPatient(); break;
case 2: addDoctor(); break;
case 3: addWard(); break;
case 4: createDepartment(); break;
case 5: showAllPatients(); break;
case 6: showAllDoctors(); break;
case 7: showAllWards(); break;
case 8: showDepartment(); break;
case 0: cout << "Выход...\n"; break;
default: cout << "Неверный выбор. Попробуйте снова.\n";
}
if (choice != 0) pause();
} while (choice != 0);
return 0;
}