Skip to content

KKKutuzov/My_database

Repository files navigation

Производственный склад

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

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

Также нужно выполнять операции "сборки", добавления и удаления деталей Кроме этого нужно добавлять новые детали и устройства с их картами сборки и распечатывать карты сборки в удобном для восприятия виде

Задание W2

Имена всех деталей и устройств хранятся в одном динамическом массиве Вместе с именами хранится количество деталей и список индексов для составных частей устройства.

Кроме этого для быстрого поиска есть хеш-множество, сопоставляющее имени устройства или детали его индекс в этом массиве

Для компиляции сервера выполнить:

make

Для запуска сервера выполнить:

./server

Для запуска клиента запустить:

python3 client.py

Типы запросов:

  • canmake
  • addDetail
  • show
  • deleteDetail
  • addRecipe
  • make
  • getquant
  • makefrom

CANMAKE

Запускается командой:

canmake <detailname>, <quant> end

Выводит на экран ответ на вопрос можем ли собрать это устройство. Если же его собрать нельзя, выводит причину.

ADDDETAIL

Запускается командой:

adddetail <detailname>, <quant> end

Добавляет устройство на склад.

SHOW

Запускается командой:

show  end

Выводит на экран всю информацию о складе. Сперва доступные детали и их количество, далее все известные рецепты.

DELETEDETAIL

Запускается командой:

deletedetail <detailname>, <quant> end

Удалит деталь со склада в нужном количестве, если это возможно..

ADDRECIPE

Запускается командой:

AddRecipe <DETAILNAME>, <FIRTST_ITEM>, <QUANT>, <SECOND_ITEM>, <QUANT>, ... <ITEM>, <QUANT>, end

Добавляет рецепт детали на склад.

MAKE

Запускается командой:

make <detailname>, <quant> end

Собирает нужное количество деталей.

GETQUANT

Запускается командой:

getquant <detailname> end

Выводит количетсво этой детали на складе.

MAKEFROM

Запускается командой:

makefrom <detailname>, ... , <detailname>, end

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

Замечания

Все команды переводятся в нижний регист. Чтобы завершить работу клиента, необходимо выполнить команду в клиенте:

stop

Чтобы через клиент закрыть сервер, необходимо выполнить команду в клиенте:

exit end

About

Client server database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published