/
AirLexa
/
05
Обзор
Документация
Войти
/
AirLexa
/
05
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Lesson_05/Task_1.cpp
117 строк
4 KB
AirLexa
update: Task_1.cpp
03 май 2026, 07:08
Верифицирован
03 май 2026, 07:08
f6087c0
Код
Авторство
О чём код?
#include "ClientManager.h" #include <iostream> #include <string> #include <vector> #include <windows.h> using namespace std; // Функция для вывода данных клиента void printClient(const ClientData& client) { cout << "ID: " << client.id << ", Имя: " << client.firstName << ", Фамилия: " << client.lastName << ", Email: " << client.email << endl; if (client.phones.empty()) { cout << " Телефонов нет" << endl; } else { for (const auto& phone : client.phones) { cout << " Телефон: " << phone << endl; } } } // Альтернативная обработка void logToFile(const vector<ClientData>& clients, const string& searchQuery) { cout << "\n[ЛОГ] Поиск по запросу \"" << searchQuery << "\" найден " << clients.size() << " клиент(ов)" << endl; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); cout << "=== Управление клиентами ===" << endl; try { ClientManager manager("clients_db", "postgres", "postgres"); // Создание таблиц manager.createTables(); cout << "\n--- Добавление клиентов ---" << endl; manager.addClient("Иван", "Петров", "ivan@example.com"); manager.addClient("Мария", "Сидорова", "maria@example.com"); manager.addClient("Петр", "Иванов", "petr@example.com"); cout << "\n--- Добавление телефонов ---" << endl; manager.addPhone(1, "+7-999-123-4567"); manager.addPhone(1, "+7-999-123-4568"); manager.addPhone(2, "+7-888-555-1234"); cout << "\n=== Демонстрация работы метода поиска ===" << endl; string searchQuery = "Иван"; cout << "\n1. Поиск по запросу: \"" << searchQuery << "\"" << endl; vector<ClientData> foundClients = manager.searchClient(searchQuery); if (foundClients.empty()) { cout << "Клиенты не найдены." << endl; } else { cout << "Найдено клиентов: " << foundClients.size() << endl; for (const auto& client : foundClients) { printClient(client); } } searchQuery = "maria@example.com"; cout << "\n2. Поиск по запросу: \"" << searchQuery << "\"" << endl; foundClients = manager.searchClient(searchQuery); for (const auto& client : foundClients) { cout << "Найден: " << client.firstName << " " << client.lastName << " (ID: " << client.id << ")" << endl; } searchQuery = "888"; cout << "\n3. Поиск по запросу: \"" << searchQuery << "\" (поиск по телефону)" << endl; foundClients = manager.searchClient(searchQuery); logToFile(foundClients, searchQuery); for (const auto& client : foundClients) { printClient(client); } searchQuery = "xyz123"; cout << "\n4. Поиск по запросу: \"" << searchQuery << "\" (без результатов)" << endl; foundClients = manager.searchClient(searchQuery); if (foundClients.empty()) { cout << "Клиенты не найдены. Можно выполнить другое действие." << endl; } cout << "\n=== Дополнительные операции ===" << endl; cout << "\n--- Изменение данных клиента ---" << endl; manager.updateClient(1, "Иван", "Петрович", "ivan.new@example.com"); cout << "\n--- Проверка изменений ---" << endl; foundClients = manager.searchClient("ivan.new@example.com"); for (const auto& client : foundClients) { printClient(client); } } catch (const exception& e) { cerr << "\n!!! ОШИБКА: " << e.what() << endl; cerr << "Программа завершена с ошибкой." << endl; return -1; } cout << "\nПрограмма успешно завершена." << endl; return 0; }