База данных продуктового магазина

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

Нормативные ссылки

Введение

Постановка задачи

Описание запросов к базе данных

Результаты ручного выполнения запросов и руководство по сборке и запуску на проверку программ

Заключение

Список литературы

Приложение

Нормативные ссылки

ГОСТ Р 1. 5−2004 Стандарты национальные Российской Федерации.

Правила построения, изложения, оформления и обозначения

ГОСТ 2. 104−68 ЕСКД. Основные надписи

ГОСТ 7. 80−2000 СИБИД. Библиографическая запись. Заголовок. Общие

требования и правила составления

ГОСТ 7. 82−2001 СИБИД. Библиографическая запись. Библиографическое

описание электронных ресурсов. Общие требования и правила составления

ГОСТ 7. 9−95 СИБИД. Реферат и аннотация. Общие требования

ГОСТ 19. 001−77 ЕСПД. Общие положения

ГОСТ 19. 104−78 ЕСПД. Основные надписи

ГОСТ 19. 105−78 ЕСПД. Общие требования к программным документам

ГОСТ 19. 401−78 ЕСПД. Текст программы. Требования к содержанию и

оформлению

ГОСТ 19. 402−78 ЕСПД. Описание программы

ГОСТ 19. 404−79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению

Введение

Пролог -- язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

Основными понятиями в языке Пролог являются факты, правила логического вывода и запросы, позволяющие описывать базы знаний, процедуры логического вывода и принятия решений.

Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

Особую роль в интерпретаторе Пролога играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщённых запросов с переменными в качестве аргументов созданная система Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода.

Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщёнными сведениями.

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

Постановка задачи

Главной задачей курсового проекта является разработка базы данных продуктового магазина с запросами к ней:

Добавление новых моделей

Удаление товаров

Изменение стоимости товара

Вывод списка товаров в категориях

База будет разработана в среде SWI-Prolog.

Описание запросов к базе данных

Запросы:

«Поиск по идентификатору» необходим для того чтобы узнать информацию о товаре.

process (3): —

write ('------Поиск по ID------'), nl, nl,

write ('Введите ID записи: '), nl,

read (ID), nl,

После выбора на экран выводится:

ID: 2

Название модели: galaxy_note

Производитель: samsung

Дисплей: 5. 3

Процессор: samsung_exynos_4210

Камера: 8

Кол-во на складе: 550

Цена: 11 500

— «Добавление записи» служит для добавления товара в базу данных.

write ('-----Добавление записи-----'), nl, nl,

write ('ID записи: '),

read (ID),

write ('Название модели: '),

read (MODEL_NAME),

write ('Производитель: '),

read (MANUFACTURER),

write ('Дисплей: '),

read (DISPLAY),

write ('Процессор: '),

read (PROCESSOR),

write ('Камера: '),

read (CAMERA),

write ('Кол-во на складе: '),

read (KOLVO),

write ('Цена за ед. '),

read (PRICE),

assertz (record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE)), nl, nl,

write ('Запись добавленна!'), nl, nl, menu

«Поиск по производителю» позволяет найти нужный товар в базе данных.

write ('------Поиск по Производителю------'), nl, nl,

write ('Поиск по производителю: '), nl,

read (MANUFACTURER), nl,

write ('------------------'),

record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE),

nl, write (' ID: '), write (ID),

nl, write (' Название модели: '), write (MODEL_NAME),

nl, write (' Производитель: '), write (MANUFACTURER),

nl, write (' Дисплей: '), write (DISPLAY),

nl, write (' Процессор: '), write (PROCESSOR),

nl, write (' Камера: '), write (CAMERA),

nl, write (' Кол-во на складе: '), write (KOLVO),

nl, write (' Цена: '), write (PRICE),

nl, write ('------------------'),

nl, nl,!, menu.

«Удаление записи» позволяет удалить товар из базы данных.

write ('------Удаление записи------'), nl, nl,

write ('Введите ID записи: '),

read (ID),

A = record (ID,_,_,_,_,_,_,_),

retractall (A),

write ('Запись удалена!'), nl, nl, nl, menu.

«Просмотр всех данных» выводит все товары по категориям.

write ('------Просмотр всех данных------'), nl, nl,

record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE),

nl, write (' ID: '), write (ID),

nl, write (' Название модели: '), write (MODEL_NAME),

nl, write (' Производитель: '), write (MANUFACTURER),

nl, write (' Дисплей: '), write (DISPLAY),

nl, write (' Процессор: '), write (PROCESSOR),

nl, write (' Камера: '), write (CAMERA),

nl, write (' Кол-во на складе: '), write (KOLVO),

nl, write (' Цена: '), write (PRICE),

nl, write ('------------------'),

nl, nl, fail;

menu.

Результаты ручного выполнения запросов и руководство по сборке и запуску на проверку программ

Ввод запросов осуществляется в программе SWI-prolog 6.4.1. После каждого ввода запроса необходимо ставить точку для успешного его выполнения.

База данных магазина

Рисунок 1

Поиск товара.

Рисунок 2

Добавление товара в базу.

Рисунок 3

Удаление товара.

Рисунок 4

Просмотр товаров.

Рисунок 5

Заключение

В данном курсовом проекте по дисциплине «Функциональное и логическое программирование» мы написали запросы на языке пролог, к составленной нами базы данных магазина продуктов. Также мы составили подробное описание выполнения запросов и результат, который они нам дают. В итоге можно сказать с уверенностью, что среда разработки SWI-Prolog является универсальным средством решения подобных задач, главным достоинствами является простота кода, малый листинг программ, скорость выполнения программ, решение является бесплатным и возможна интеграция с объектно-ориентированными средами примером которой может являться одна из самых распространенных с++.

база данный магазин запрос

Список литературы

Братко И. Программирование на языке Пролог для искусственного интеллекта: пер. с англ. — М.: Мир, 1990. — 560 с.: ил.

Братко И. Алгоритмы искусственного интеллекта на языке PROLOG, 3-е издание.: пер. с англ. — М.: ИД «Вильямс», 2004. — 640 с.: ил.

Малпас Дж. Реляционный язык Пролог и его применение: пер. с англ. — М.: Наука, 1990. — 464 с.

Метакидес Г., Нероуд А. Принципы логики и логического программирования. — Пер. с англ. — М.: Факториал, 1998. — 288 с.

Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог: пер. с англ. — М.: Мир, 1990. — 333 с.: ил.

Стобо Дж. Язык программирования Пролог: пер. с англ. — М.: Радио и связь, 1993. — 368 с.: ил.

Хоггер К. Введение в логическое программирование. — Пер. с англ. — М.: Мир, 1988. — 348 с.

Приложение A

Листинг запросов к БД (hhhhhh. pl)

: -dynamic record/8.

record (1,'sensation','htc', 4. 3,'qualcomm_msm8260', 8,100,6600).

record (2,'galaxy_note','samsung', 5. 3,'samsung_exynos_4210', 8,550,11 500).

record (3,'galaxy_note_ii','samsung', 5. 55,'samsung_exynos_4412', 8,245,14 600).

record (4,'xperia_z_ultra','sony', 6. 44,'qualcomm_snapdragon800', 8,590,18 000).

start: —

write ('--------------------------------------------'), nl,

write ('--------БД МАГАЗИНА Mobium----------'), nl,

write ('--------------------------------------------'), nl, nl, menu.

menu: —

write ('Введите номер 1,2,3 или 4'), nl,

write ('1. Добавить запись в БД'), nl,

write ('2. Удалить запись из БД'), nl,

write ('3. Поиск по ID'), nl,

write ('4. Просмотр всех записей'), nl,

write ('5. Поиск по производителю'), nl,

write ('6. Поиск по цене'), nl,

write ('7. Завершение работы'), nl,

read©, nl,

process©,!.

process (1): —

write ('-----Добавление записи-----'), nl, nl,

write ('ID записи: '),

read (ID),

write ('Название модели: '),

read (MODEL_NAME),

write ('Производитель: '),

read (MANUFACTURER),

write ('Дисплей: '),

read (DISPLAY),

write ('Процессор: '),

read (PROCESSOR),

write ('Камера: '),

read (CAMERA),

write ('Кол-во на складе: '),

read (KOLVO),

write ('Цена за ед. '),

read (PRICE),

assertz (record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE)), nl, nl,

write ('Запись добавленна!'), nl, nl, menu.

process (2): —

write ('------Удаление записи------'), nl, nl,

write ('Введите ID записи: '),

read (ID),

A = record (ID,_,_,_,_,_,_,_),

retractall (A),

write ('Запись удалена!'), nl, nl, nl, menu.

process (3): —

write ('------Поиск по ID------'), nl, nl,

write ('Введите ID записи: '), nl,

read (ID), nl,

write ('------------------'),

record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE),

nl, write (' ID: '), write (ID),

nl, write (' Название модели: '), write (MODEL_NAME),

nl, write (' Производитель: '), write (MANUFACTURER),

nl, write (' Дисплей: '), write (DISPLAY),

nl, write (' Процессор: '), write (PROCESSOR),

nl, write (' Камера: '), write (CAMERA),

nl, write (' Кол-во на складе: '), write (KOLVO),

nl, write (' Цена: '), write (PRICE),

nl, write ('------------------'),

nl, nl,!, menu.

process (4): -write ('------Просмотр всех данных------'), nl, nl,

record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE),

nl, write (' ID: '), write (ID),

nl, write (' Название модели: '), write (MODEL_NAME),

nl, write (' Производитель: '), write (MANUFACTURER),

nl, write (' Дисплей: '), write (DISPLAY),

nl, write (' Процессор: '), write (PROCESSOR),

nl, write (' Камера: '), write (CAMERA),

nl, write (' Кол-во на складе: '), write (KOLVO),

nl, write (' Цена: '), write (PRICE),

nl, write ('------------------'),

nl, nl, fail;

menu.

process (5): —

write ('------Поиск по Производителю------'), nl, nl,

write ('Поиск по производителю: '), nl,

read (MANUFACTURER), nl,

write ('------------------'),

record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE),

nl, write (' ID: '), write (ID),

nl, write (' Название модели: '), write (MODEL_NAME),

nl, write (' Производитель: '), write (MANUFACTURER),

nl, write (' Дисплей: '), write (DISPLAY),

nl, write (' Процессор: '), write (PROCESSOR),

nl, write (' Камера: '), write (CAMERA),

nl, write (' Кол-во на складе: '), write (KOLVO),

nl, write (' Цена: '), write (PRICE),

nl, write ('------------------'),

nl, nl,!, menu.

process (6): —

write ('------Просмотр всех данных------'), nl, nl,

write ('Минимальная цена'), nl,

read (MIN), nl,

write ('Максимальная цена'), nl,

read (MAX), nl,

record (ID, MODEL_NAME, MANUFACTURER, DISPLAY, PROCESSOR, CAMERA, KOLVO, PRICE),

PRICE> MIN, PRICE< MAX,

nl, write (' ID: '), write (ID),

nl, write (' Название модели: '), write (MODEL_NAME),

nl, write (' Производитель: '), write (MANUFACTURER),

nl, write (' Дисплей: '), write (DISPLAY),

nl, write (' Процессор: '), write (PROCESSOR),

nl, write (' Камера: '), write (CAMERA),

nl, write (' Кол-во на складе: '), write (KOLVO),

nl, write (' Цена: '), write (PRICE),

nl, write ('------------------'),

nl, nl, fail, menu.

process (7): —

write ('Вы уверенны, что хотите завершить работу? (y/n)'),

read (A), esc (A).

esc (A): —

A == 'y', halt.

esc (A): —

A == 'n', nl, start.

process (C): —

C< 1, error.

process (C): —

C> 6, error.

error: -write ('ERROR! enter number 1,2,3 or 4'), nl, nl, menu.

ПоказатьСвернуть
Заполнить форму текущей работой