Консольное приложение на C++, работающее со справочником сотрудников в базе данных PostgreSQL.
Программа поддерживает следующие режимы работы:
- Создание таблицы сотрудников
- Добавление одного сотрудника
- Вывод всех сотрудников
- Автоматическая генерация большого количества сотрудников
- Выборка сотрудников по критериям и замер времени
Приложение написано с использованием объектно-ориентированного подхода и библиотеки libpqxx для работы с PostgreSQL.
- Операционная система Linux / macOS / WSL (Windows Subsystem for Linux)
- Компилятор с поддержкой C++20
- PostgreSQL 14+ (или совместимая версия)
- Клонируйте репозиторий с submodule для libpqxx:
git clone --recurse-submodules https://github.com/username/employee_app.git
cd employee_appЕсли вы уже клонировали без --recurse-submodules, то инициализируйте submodule командой:
git submodule update --init --recursive- Установите зависимости:
sudo apt update
sudo apt install -y cmake g++ libpq-dev postgresqllibpqxx подключается как submodule, отдельная установка libpqxx-dev не нужна.
- Создайте базу данных:
sudo -u postgres psql
CREATE DATABASE employees;
\q- Настройте файл .env на основе шаблона:
cp env_template .envЗатем откройте .env и при необходимости измените параметры подключения к базе данных:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=123
POSTGRES_DB=employees
POSTGRES_HOST=localhost
POSTGRES_PORT=5432- Соберите проект:
mkdir build && cd build
cmake ..
makeПосле сборки в папке build/ появится бинарный файл myApp.
Запускать приложение нужно из терминала с указанием режима:
./myApp 1| Режим | Описание | Пример запуска |
|---|---|---|
| 1 | Создание таблицы сотрудников | ./myApp 1 |
| 2 | Добавление одного сотрудника | ./myApp 2 "Ivanov Petr Sergeevich" 2000-01-01 Male |
| 3 | Вывод всех сотрудников | ./myApp 3 |
| 4 | Автоматическая генерация 1,000,000 сотрудников и 100 мужского пола с фамилией на "F" | ./myApp 4 |
| 5 | Выборка сотрудников мужского пола с фамилией на "F" и замер времени | ./myApp 5 |
Приложение подключается к PostgreSQL, используя параметры из файла .env.
По умолчанию можно задать следующие значения:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=123
POSTGRES_DB=employees
POSTGRES_HOST=localhost
POSTGRES_PORT=5432 Эти параметры будут автоматически подставляться при запуске приложения.
Если нужно, можно изменить их в файле .env перед сборкой или запуском.
Удаление базы данных:
sudo -u postgres dropdb employeesУдаление скомпилированных файлов:
rm -rf build- Для корректной работы программы база данных
employeesдолжна существовать. - Программа кроссплатформенная и не требует Docker.