Проектирование базы данных на языке программирования C++

XXIV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Проектирование базы данных на языке программирования C++

Харитонов В.Ю. 1
1Многопрофильный колледж ФГБОУ ВО "ТГТУ"
Мосягина Н.Г. 1
1Многопрофильный колледж ФГБОУ ВО "ТГТУ"
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

C++ является мощным языком программирования, который предоставляет широкие возможности для системного программирования и разработки высокопроизводительных приложений. Однако C++ также может быть успешно использован для проектирования баз данных эффективных систем управления данными.

Возможности использования C++ для работы с базами данных:

  • высокая производительность, C++ известен своей эффективностью и скоростью выполнения. Это делает его идеальным выбором для работы с большими объемами данных и выполнения ресурсоемких запросов;

  • контроль, C++ предоставляет разработчику полный контроль над ресурсами и памятью, что позволяет оптимизировать работу с базами данных и избегать утечек памяти;

  • гибкость, C++ позволяет создавать как простые, так и сложные приложения для работы с базами данных; благодаря широкому набору библиотек, разработчик может выбрать оптимальный подход для конкретного проекта;

  • широкая поддержка, существует множество библиотек и инструментов для работы с базами данных в C++ (ODBC (Open Database Connectivity): стандартный интерфейс для доступа к разным СУБД; JDBC (Java Database Connectivity): Аналогичный стандарт для Java, но с поддержкой C++).

Таким образом, проблема разработка баз данных с использованием возможностей языка С++, является актуальной.

Цель работы: осушествить проектирование базы данных учета товаров, разработать процедуры для поиска и обработки данных.

Для осуществления поставленной цели было необхолимо решить следующие задачи:

  • изучение этапов проектирования базы данных;

  • исследование возможностей языка языка С++ для разработки систем управления данными;

  • разработка приложения на языке С++ для создания базы данных;

  • разработка процедур для поиска и обработки данных.

Для решения поставленных задач был проведен анализ литературных источников [1-5], изучены возможности языка C++ для создания и работы со структурированными типами данных, разработана модель базы данных на основе структур данных (struct), предложены собственные процедуры обработки данных.

1. Основная часть

1.1 Этапы проектирования базы данных

Основными этапами проектирования базы данных являются:

  • определение модели данных: на этом этапе определяется структура базы данных, включая таблицы, столбцы, типы данных и связи между таблицами;

  • выбор среды разработки: выбор среды разработки или СУБД зависит от требований проекта, включая тип данных, размер базы данных, производительность и стоимость;

  • разработка объектов: C++ позволяет использовать объекты (классы) для взаимодействия с базой данных;

  • создание и использование классов: создаются классы для представления таблиц и строк базы данных;

  • обработка результатов: полученные данные из базы данных обрабатываются в C++ приложении;

  • тестирование и отладка: проводится тестирование и отладка кода для обеспечения корректной работы с базой данных.

1.2 Разработка структуры базы данных и функций обработки данных на языке С++

Для формирования базы данных, содержащей основные сведения о товарах (код товара, наименование, цена), нам потребуется структура:

struct Product { // Структура для хранения данных о товаре

int id;

string name;

double price;

};

Также необходимо задать начальные значение.

const int MAX_PRODUCTS = 100; // Константа для максимального количества товаров

Product products[MAX_PRODUCTS]; // Глобальный массив для хранения товаров

int productCount = 0; // Переменная для отслеживания текущего количества товаров

Рассмотрим две функции базы данных:

1) Функция на добавление товаров:

void dobavit(int id, string name, double price) {

// Проверка, что в массиве есть место для нового товара

if (productCount < MAX_PRODUCTS) { // Создание нового объекта товара

Product newProduct{ id, name, price };

products[productCount] = newProduct; // Добавление товара в массив

productCount++;

cout << "Товар добавлен!" << endl;

}

else {

cout << "Превышено максимальное количество товаров." << endl;

}

}

2) Функция поиска товаров по ID:

Product find(int id) {

for (int i = 0; i < productCount; i++) {

if (products[i].id == id) {

return products[i];

}

} // Если товар не найден, возвращаем пустую структуру

Product emptyProduct;

return emptyProduct;

}

После вызова первой функции начинаем заполнять базу данных:

int choice;

cin >> choice;

switch (choice) {

case 1: {

int id;

string name;

double price;

cout << "Введите ID товара: ";

cin >> id;

cout << "Введите название товара: ";

cin >> name;

cout << "Введите цену товара: ";

cin >> price;

dobavit(id, name, price);

break; }

На рисунке 1 представлен результат работы функции.

Рисунок 1 – Результат работы функции для добавления товара.

Вызовем функцию поиска товаров:

case 2: {

int id;

cout << "Введите ID товара: ";

cin >> id;

Product product = find(id);

if (product.id != 0) {

cout << "Товар найден: " << endl;

cout << "ID: " << product.id << endl;

cout << "Название: " << product.name << endl;

cout << "Цена: " << product.price << endl;

}

else {

cout << "Товар не найден." << endl;

}

break;

}

Здесь по коду товара (id)происходит поиск информации о товаре, на рисунке 2 представлен пример обращения к данной функции.

Рисунок 2 – Пример реалицации функции поиска товаров по ID

1.3 Создание интерфейса

Для работы с программой необходимо оформить интерфейс пользователя, обеспечить вызов фунций приложения. В целях оптимизации приложения, обеспечения возможности работы в разных операционных ситемах и средах, выбран интерфейс командной строки. Далее показана главная часть программы и результаты процессов ввода-вывода данных.

int main() {

setlocale(LC_ALL, "Rus");

system("chcp 1251");

zagruzka("test.txt"); // Загружаем базу данных из файла (если он существует)

while (true) { // Основной цикл программы

cout << "Выберите действие:" << endl; cout << "1. Добавить товар" << endl; cout << "2. Найти товар по ID" << endl; cout << "3. Вычислить среднюю цену" << endl;

cout << "4. Сортировать товары по ID" << endl; cout << "5. Удалить товар по ID" << endl; cout << "6. Сохранить базу данных в файл" << endl; cout << "7. Выход" << endl;

int choice;

cin >> choice;

switch (choice) {

case 1: {

int id;

string name;

double price;

cout << "Введите ID товара: ";

cin >> id;

cout << "Введите название товара: ";

cin >> name;

cout << "Введите цену товара: ";

cin >> price;

dobavit(id, name, price);

break;

}

case 2: {

int id;

cout << "Введите ID товара: ";

cin >> id;

Product product = find(id);

if (product.id != 0) {

cout << "Товар найден: " << endl;

cout << "ID: " << product.id << endl;

cout << "Название: " << product.name << endl;

cout << "Цена: " << product.price << endl;

}

else {

cout << "Товар не найден." << endl;

}

break;

}

case 3: {

double averagePrice = avg();

cout << "Средняя цена товаров: " << averagePrice << endl;

break;

}

case 4: {

sortirovka();

break;

}

case 5: {

int id;

cout << "Введите ID товара для удаления: ";

cin >> id;

delete1(id);

break;

}

case 6: {

save("products.txt");

break;

}

case 7: {

cout << "Выход из программы." << endl;

return 0;

}

default: {

cout << "Неверный выбор." << endl;

break;

} } }}

2. Заключение

В заключении хочется отметить, что C++ - мощный и гибкий язык, который отлично подходит для разработки высокопроизводительных и сложных приложений. Он дает разработчикам полный контроль над ресурсами и позволяет создавать уникальные и эффективные решения. Также C++ предоставляет широкие возможности для работы с базами данных, позволяя создавать эффективные и структурированные приложения. Выбор между функциями и классами зависит от конкретных требований проекта. Однако C++ также является сложным языком, который требует времени и усилий для изучения и освоения.

Разработанное приложение является моделью базы данных учета товаров, использует базовые возможности С++ для оптимизации программного кода, позволяет добавлять новые возможности при изменении параметров предметной области.

3.Список использованных источников и литературы

  1. Кириллина Ю.В., Реинжиниринг бизнес-процессов: методические рекомендации / Ю. В. Кириллина. — Москва: РТУ МИРЭА, 2021. — 31 с. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/226553

  2. Коншина В.Н., Обеспечение качества продукции: практикум: учебное пособие / В. Н. Коншина. — Санкт-Петербург: ПГУПС, 2023. — ISBN 978-5-7641-1834-5. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/329483

  3. Манухина О.В., Информационные системы: учебное пособие / О. В. Манухина. — Чита: ЗабГУ, 2021. — ISBN 978-5-9293-2847-3. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/271508

  4. Остерцова Н.Г. Основы проектирования нормативной и технической документации: методические указания / составитель Н. Г. Острецова. — Вологда: ВГМХА им. Н.В. Верещагина, 2020. — 53 с. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/159440

  5. Соколова, В. В.  Вычислительная техника и информационные технологии. Разработка мобильных приложений : учебное пособие для вузов / В. В. Соколова. — Москва : Издательство Юрайт, 2024. — 160 с. — (Высшее образование). — ISBN 978-5-534-16302-5. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — https://urait.ru/bcode/537272

Просмотров работы: 24