ИНТЕЛЛЕКТУАЛЬНАЯ СИСТЕМА ВЫБОРА РЕСТОРАНА В Г. БЕЛГОРОД - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

ИНТЕЛЛЕКТУАЛЬНАЯ СИСТЕМА ВЫБОРА РЕСТОРАНА В Г. БЕЛГОРОД

Иванова М.Н. 1
1Белгородский государственный национальный исследовательский университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В городе Белгород имеется множество ресторанов различного типа. И не всегда правильно можно определиться какой ресторан вы бы хотели посетить. Каждый из них имеет определенные свойства и критерии, которые не всегда известны клиенту. Поэтому для выбора ресторана актуально было бы создать интеллектуальную систему, которая будет способствовать выбору наилучшего из предложенных вариантов ресторана в зависимости от предпочтений клиента и свойств, которыми обладает ресторан.

Цель курсовой работы – получение практических навыков по проектированию базы знаний и разработка интеллектуальной системы выбора ресторана в г. Белгород. Данная система позволит наиболее эффективно и быстро определить предпочитаемый ресторан, а так же найти адрес этого ресторана.

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

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

  • построить семантическую сеть;

  • разработать базу знаний;

  • заполнить базу знаний;

  • разработать интеллектуальную систему выбора ресторана.

Курсовая работа состоит из введения, четырех глав, заключения, списка литературы и приложения. Во введении определяются цели и задачи курсовой работы, а так же актуальность данной темы. В главе один описывается обзор и анализ предметной области, рассматриваются используемые инструментальные средства, которые используются при создании интеллектуальной системы. В главе два определяются сущности, экземпляры и свойства сущностей для выбранной предметной области, строится семантическая сеть и на её основе разрабатывается и заполняется база знаний. Глава три включает в себя разработку интеллектуального интерфейса разрабатываемой системы. В главе 4 описано руководство пользователя и проводится апробация интеллектуальной системы выбора ресторана. В заключении формируются выводы по данной курсовой работе. Список литературы включает в себя литературу, которая используется в данной работе. Приложение содержит программный код, не вошедший в главу три, который используется при создании интеллектуальной системы выбора ресторана в г. Белгород.

Курсовая работа написана на 24 страницы, в ней присутствует 15 рисунков.

  1. Обзор и анализ предметной области
  1.  
    1. Обзор предметной области

Предприятия общественного питания – это организации, которые оказывают следующие услуги: реализация и изготовление кулинарной продукции; организация её потребления и обслуживания клиентов.

Существуют множество видов таких организаций, но разрабатываемая в данной курсовой работе система применима только в одной из них [12]:

  • ресторан – это предприятие общественного питания, которое включает в себя различный ассортимент блюд, в том числе и сложные блюда, а также заказные и фирменные;

  • кафе – отличие от ресторана в ограниченном ассортименте продукции;

  • пиццерия – может объединить в себе формат ресторана и кафе. Главное отличие, это широкий ассортимент пиццы.

Существует множество различных классификаций предприятий общественного питания – это классификации в зависимости от времени функционирования, времени функционирования, в зависимости от ассортимента выпускаемой продукции, в зависимости от обслуживаемого контингента и другие

В данной курсовой работе следует отметить классификацию, которая согласно Государственному стандарту РФ, классифицирует рестораны в зависимости от ассортимента блюд, качества обслуживания, интерьера и т. д. На основании этого рестораны подразделяются на три класса [7]:

  • ресторан люкс, включает в себя бар и банкетные залы. Интерьер этого ресторана должен иметь высокое архитектурно-художественное оформление. Стиль дизайна должен соответствовать названию ресторана. Персонал одет в фирменную одежду единого образца, в вечернее время организуется музыкальные шоу. В залах имеются специальные места для танцев. Меню в свою очередь должно иметь, не менее половины ассортимента, заказных и фирменных блюд;

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

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

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

  1.  
    1. Анализ предметной области

Интеллектуальная система – это своего рода такая программная или техническая система, которая способна решать задачи, принадлежащие к конкретной области или задачи, считающиеся традиционно творческими, знания о которой хранятся в памяти этой системы [3].

Знания – это метаданные или хорошо структурированные данные [18].

Структура интеллектуальной системы включает три основных блока: база знаний, решатель и интеллектуальный интерфейс.

База знаний – это база данных, разработанная для оперирования знаниями. Она содержит информацию по некоторой области знаний, в дальнейшем для использования её человеком для выполнения конкретной цели.

Решатель или машина вывода – это программа, которая из предварительно созданной базы выполняет логический вывод.

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

Существует пять видов интеллектуальных систем [2]:

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

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

  3. Гибридная интеллектуальная система – это система, которая использует более одного метода имитации интеллектуальной деятельности человека. Гибридная интеллектуальная система является совокупностью экспертных систем, аналитических моделей, нечетких систем, имитационных статистических моделей, генетических алгоритмов.

  4. Интеллектуальная информационная система – это система, которая основана на знаниях.

  5. Экспертная система – это такая компьютерная система, которая способна в некоторой сфере деятельности заменить эксперта-специалиста для решения определенной задачи.

В данной курсовой работе будет разработана интеллектуальная экспертная система выбора ресторана в г. Белгород. При её разработке, первое, что нужно сделать – это определить задачи, которые необходимо решить, выявить цели разработки, провести анализ проблемной области, для выявления используемых понятий. Выбрать ИС для представления и манипулирования знаниями. Далее осуществляется наполнение базы знаний. Создается прототип экспертной системы и тестируется её работа.

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

Экспертное знание – это теоретическое понимание и практические навыки решения вместе взятые. Главным элементом экспертной системы так же является база знаний, она составляется на основе полученных экспертных знаний. Ценность экспертной системы зависит от качества разработанной базы знаний.

  1.  
    1. Инструментальные средства создания интеллектуальной системы

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

Рассмотрим клиент-серверную СУБД, каждый из клиентских запросов на обработку данных обрабатывается клиент-серверной СУБД централизованно. Сама же СУБД находится на сервере вместе с базой данных и осуществляет доступ к базе данных напрямую, в монопольном режиме. Достоинства: удобство предоставления таких характеристик как высокая доступность, надежность, безопасность; допустима более низкая загрузка локальной сети; удобное централизованное управление. Недостаток – повышенные требования к серверу.

Примерами данной СУБД являются: Interbase, IBM DB2, MS SQL Server, Firebird и другие.

В данной курсовой работе использовалась одна из перечисленных система управления базами данных – Firebird. Это система, которая работает более чем на одной операционной системе и так же на разнообразных Unix платформах [10].

Для разработки интеллектуального интерфейса была выбрана система Borland C++ Builder. Эта система эксплуатируется программистами для разработки ПО на языке C++ и поддерживает работу с базами данных под управлением Firebird [1]. Inter Base представляет собой многопользовательскую реляционную СУБД, которая взаимодействует с клиентом, принимая от него запросы на языке SQL, и возвращая запрошенные данные [11].

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

  1. Проектирование базы знаний
2.1 Разработка семантической сети

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

Семантическая сеть – это один из способов представления знаний. Она имеет вид ориентированного графа, вершины которого это объекты предметной области, а стрелки это святи между ними [13].

В сематической сети, которая описывает рассматриваемую предметную область, можно выделить следующие типы понятий: сущность (абстрактный объект предметной области), экземпляр (конкретный представитель сущности) и свойство (характеристика сущностей).

В соответствии с данной классификацией и проведением анализа предметной области, были выделены и разгруппированы следующие понятия:

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

Экземпляры: Башня, Корчма, Мезонин, Зима, Белладжио, ГринBeer, Эль Хаус, La Terrazza, Forno a legna, Бризоль, Чайхана, Хутор Лазы, 12 стульев.

Свойства:

  • высокое или низкое качество блюда;

  • ремонт до 5ти или от 5ти лет;

  • стоянка присутствует или отсутствует;

  • музыка живая или фоновая

  • вместительность танцпола до 50 человек или от 50 человек;

  • кухня ресторана украинская, итальянская, узбекская или русская;

  • тип ресторана люкс, первого класса или второго класса;

  • цена среднего чека на одного человека до 1000рублей, от 1500 рублей до 2500 рублей или от 2500 рублей.

  • местоположение ресторана в центре или на Хар. горе.

На рисунке 1 показано графическое представление описанной семантической сети. В котором обозначены объекты предметной области и выделены связи между ними.

Рисунок 1 – Графическое представление семантической сети

  1.  
    1. Заполнение базы знаний

Этот раздел подразумевает внесение в базу всех знаний и све­дений, собранных в результате проведения анализа по заданной предметной области. Основными требованиями к хранящейся в базе знаний интеллектуальной системы информации, являются:

  • релевантность информации, которая получается с помощью правил вывода базы знаний, то есть обозначение субъективного представления чего-либо в данный момент времени;

  • достоверность информации – показатель качества имеющейся информации в базе данных.

Заполнение базы знаний происходило с помощью системы управления базами данных - Firebird.

С помощью утилиты IBExpert была создана и зарегистрирована БД, на рисунке 2 показана её регистрационная информация.

Рисунок 2 – Регистрационная информация базы данных

Далее была создана таблица Rest в которой в дальнейшем будет храниться и модифицироваться база знаний интеллектуальной системы.

Программный код, используемые при создании таблицы Rest:

create table Rest

(id_rest int primary key,

name varchar (60),

address varchar (100),

rayon varchar (60),

cena varchar (60),

kyhnya varchar (60),

muzika varchar (60),

tip_rest varchar (60),

kachestvo_b varchar (60),

tancpol varchar (60),

dostavka varchar (60),

stoyanka varchar (60),

remont varchar (60)

На рисунке 3 представлена заполненная база знаний. Разработанная база знаний хранится в файле imn75321.FDB.

Рисунок 3 – База знаний

Таким образом, в главе 2 была заполненная и спроектирована база знаний разрабатываемой интеллектуальной системы.

  1. Разработка интеллектуального интерфейса

InterBase Express использовалась для создания клиентского приложения.

На рисунке 4 представлена модульная структура разрабатываемого приложения. Она включает в себя объекты для связи приложения с базой данных, а так же для вывода базы знаний в разрабатываемом приложении.

Рисунок 4 – Модульная структура разрабатываемой системы

На рисунках 5 и 6 представлен разработанный интерфейс интеллектуальной системы выбора ресторана в г. Белгород. На рисунке 5 представлена вкладка «Выбор», на ней находятся такие компоненты как DBGrid, RadioGroup и Button. Компонент DBGrid выводит на экран базу знаний. Компонент RadioGroup позволяет выбрать необходимые критерии поиска ресторана. Button – это кнопка, которая выполняет заданные ей функции.

Рисунок 5 – Вкладка «Выбор»

На рисунке 6 представлена вкладка «Дополнение», она содержит следующие компоненты DBGrid, Button, Edit, RadioGroup. Это схожие с предыдущей вкладкой компоненты, за исключением компонента Edit – это поле для ввода или вывода информации и компонента RadioGroup – компонент, предназначенный для объединения в группу нескольких кнопок или других различных компонентов.

Рисунок 6 – Вкладка «Дополнение»

Программный код разработки интеллектуального интерфейса представлен в приложении. В данной главе была рассмотрена разработка интеллектуального интерфейса выбора ресторана в г. Белгород.

  1. Тестирование интеллектуальной системы
4.1 Руководство пользователя

Для начала работы c интеллектуальной системой необходимо открыть файл Project1.exe, он находится в папке ИС.

На вкладке «Выбор» отображается база знаний и так же находятся компоненты выбора, для поиска ресторана по заданным критериям, нужно отметить необходимые критерии выбора в любом количестве, то есть можно выбрать все критерии, один или несколько. Далее нажать на кнопку Найти и в окне вывода появятся записи соответствующие запросу. Кнопка Сбросить предназначена для сброса выбранных критериев и сброса записей предшествующего вывода (рисунок 7).

Рисунок 7 – Интеллектуальная система выбора ресторана в г. Белгород, вкладка «Выбор»

Для перехода на вкладку «Дополнение» необходимо нажать на неё. На этой вкладке расположены кнопки позволяющие просматривать базу знаний и сортировать её записи. Нажав на кнопку Отсортировать записи по цене, записи базы знаний будут отсортированы в порядке возрастания цены. Кнопка Отсортировать записи по имени, позволяет отсортировать записи базы знаний по названию ресторана. На данной вкладке так же есть возможность найти адрес необходимого ресторана. В первом поле нужно ввести название ресторана с большой буквы, нажать на кнопку Найти и во втором поле появится адрес заданного ресторана (рисунок 8).

Рисунок 8 – Интеллектуальная система выбора ресторана в г. Белгород, вкладка «Дополнение»

  1.  
    1. Апробация

Апробация – это проверка на практическом эксперименте работоспособности разработанной системы [19].

На рисунке 9 показан результат работы интеллектуальной системы выбора ресторана в г. Белгород при выборе одного наиболее значимого критерия: Итальянская кухня.

Рисунок 9 - Результат работы интеллектуальной системы выбора ресторана в г. Белгород при выборе одного критерия

На рисунке 10 показан результат работы интеллектуальной системы выбора ресторана в г. Белгород при выборе всех критериев: стоянка у ресторана отсутствует, ремонту больше 5ти лет, качество блюда низкое, доставка блюд на дом отсутствует, музыка фоновая, кухня украинская, ресторан второго класса, вместимость танцпола до 50 человек, расположен в центре города, средняя цена чека на одного человека до 1000 рублей.

Рисунок 10 - Результат работы интеллектуальной системы выбора ресторана в г. Белгород при выборе всех критериев

На следующем рисунке 11 представлен результат работы интеллектуальной системы выбора ресторана в г. Белгород при выборе нескольких критериев ресторана: узбекская кухня, ресторан расположен в центре города и высокое качество блюда. В разработанной базе знаний имеется только один ресторан с узбекской кухней.

Рисунок 11 - Результат работы интеллектуальной системы выбора ресторана в г. Белгород при выборе нескольких критериев

На рисунке 12 представлен результат работы сортировки записей по средней цене чека на одного человека (сортировка по возрастанию) в интеллектуальной системе выбора ресторана в г. Белгород.

Рисунок 12 - Результат работы сортировки записей по средней цене чека на одного человека в интеллектуальной системе выбора ресторана в г. Белгород

На рисунке 13 представлен результат работы сортировки записей по названию ресторана в интеллектуальной системе выбора ресторана в г. Белгород.

Рисунок 13 - Результат работы сортировки записей по названию ресторана в интеллектуальной системе выбора ресторана в г. Белгород

На рисунке 14 представлен результат работы поиска адреса ресторана Мезонин в интеллектуальной системе выбора ресторана в г. Белгород.

Рисунок 14 - Результат работы поиска адреса ресторана Мезонин в интеллектуальной системе выбора ресторана в г. Белгород

На рисунке 15 представлен результат работы интеллектуальной системы при проведении поиска ресторана «Самовар», этого ресторана нет в базе знаний, в этом случае система выдает ошибку с сообщением «Не найдено».

Рисунок 15 - Результат работы поиска адреса ресторана Самовар в интеллектуальной системе выбора ресторана в г. Белгород

Таким образом, в главе 4 была протестированная интеллектуальная система выбора ресторана в г. Белгород, а так же подробно описано руководство пользователю.

Заключение

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

Созданная интеллектуальная система удовлетворяет всем поставленным задачам: содержит в себе разработанную базу знаний на основе построенной семантической сети и позволяет производить выбор ресторана.

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

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

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

Список литературы
  1. Архангельский А.Я. «Программирование в C++ Builder 6», ООО «Бином – Пресс»: М., 2013 г, 1184 с.

  2. Бостром Н. «Искусственный интеллект. Этапы. Угрозы. Стратегии», Манн, Иванов и Фербер, 2016 г., 496 с.

  3. Бровкова М.Б. «Системы искусственного интеллекта в машиностроении», Саратовский государственный технический университет: Саратов, 2004 г., 120 с.

  4. Джарратано Д., Райли Г. «Экспертные системы», Вильямс: М., 2007г., 1146с.

  5. Евменов Е. «Интеллектуальные системы управления», Либроком:М., 2009 г., 304 с.

  6. Емельянов С. «Искусственный интеллект и принятие решений», Ленанд: Питер, 2010 г., 108 с.

  7. Затуливетров А. «РЕСТОРАН ЗА 180 ДНЕЙ. ПРАКТИЧЕСКОЕ ПОСОБИЕ», Ресторанные ведомости, 2012 г., 208 с.

  8. Золотов С.И. «Интеллектуальные информационные системы», Научная книга: Воронеж, 2008г., 140 с.

  9. Карпова Т.С. «Базы данных: модели, разработка, реализация», Питер: СПб, 2011 г., 304 с.

  10. Михелёв В.М. «Базы данных и СУБД» Издательство БелГУ: Белгород., 2007 г. 200 с

  11. Пахомов Б.И. «C и Borland C++ Builder для студента» БХВ –Петербург: Спб., 2012 г. 315 с

  12. Радченко Л.А. «Организация производства на предприятиях общественного питания», Феник: Ростов, 2006 г., 352 с.

  13. Рассел С. «Искусственный интеллект. Современный подход», Вильямс:М., 2015г., 1408 с.

  14. Норвиг П., Рассел С. «Искусственный интеллект. Современный подход. Второе издание», Вильямс:М., 2016г., 1408 с.

  15. Скляр А.Я. «Введение в InterBase» , Горячая линия: М., 2012 г., 520 с.

  16. Baumanki.net [Электронный ресурс] – Режим доступа: http://baumanki.net/lectures/10-informatika-i-programmirovanie/302-iskusstvennyy-intellekt/4029-7-etapy-proektirovaniya-baz-znaniy.html, свободный (19.12.16)

  17. IBExpert [Электронный ресурс] – Режим доступа: www.ibexpert.com, свободный (19.12.16)

  18. ITteach [Электронный ресурс] – Режим доступа: http://itteach.ru/predstavlenie-znaniy/osnovnie-ponyatiya-predstavleniya-znaniy,свободный (18.12.16)

  19. Psilist.net [Электронный ресурс] – Режим доступа: http://psylist.net/pedagogika/aprobac.htm, свободный (19.12.16)

  20. Распознавание [Электронный ресурс] – Режим доступа: http://www.machinelearning.ru/, свободный (19.12.16)

Приложение

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include

#include "Unit1.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

void __fastcall TForm1::Button2Click(TObject *Sender)

{

RadioGroup1->ItemIndex=-1;

RadioGroup2->ItemIndex=-1;

RadioGroup3->ItemIndex=-1;

RadioGroup4->ItemIndex=-1;

RadioGroup5->ItemIndex=-1;

RadioGroup6->ItemIndex=-1;

RadioGroup7->ItemIndex=-1;

RadioGroup8->ItemIndex=-1;

RadioGroup9->ItemIndex=-1;

RadioGroup10->ItemIndex=-1;

DataModule2->IBQuery1->Active=false;

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("select * from rest");

DataModule2->IBQuery1->Active=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

AnsiString a="";

AnsiString b="";

AnsiString c="";

AnsiString d="";

AnsiString e="";

AnsiString f="";

AnsiString g="";

AnsiString h="";

AnsiString i="";

AnsiString j="";

if (RadioGroup1->ItemIndex!=-1) {

if (RadioGroup1->ItemIndex==0)

{a="присутствует";}

else if (RadioGroup1->ItemIndex==1) {

a="отсутствует"; }

}

if (RadioGroup2->ItemIndex!=-1) {

if (RadioGroup2->ItemIndex==0)

{b="до 5ти лет";}

else if (RadioGroup2->ItemIndex==1) {

b="от 5 ти лет"; }

}

if (RadioGroup3->ItemIndex!=-1) {

if (RadioGroup3->ItemIndex==0)

{c="высокое";}

else if (RadioGroup3->ItemIndex==1) {

c="низкое"; }

}

if (RadioGroup4->ItemIndex!=-1) {

if (RadioGroup4->ItemIndex==0){

d="присутствует";}

else if (RadioGroup4->ItemIndex==1) {

d="отсутствует"; }

}

if (RadioGroup5->ItemIndex!=-1) {

if (RadioGroup5->ItemIndex==0){

e="живая";}

else if (RadioGroup5->ItemIndex==1) {

e="фоновая"; }

}

if (RadioGroup6->ItemIndex!=-1) {

if (RadioGroup6->ItemIndex==0){

f="русская";}

else if (RadioGroup6->ItemIndex==1) {

f="украинская"; }

else if (RadioGroup6->ItemIndex==2) {

f="итальянская"; }

else if (RadioGroup6->ItemIndex==3) {

f="узбекская"; }

}

if (RadioGroup7->ItemIndex!=-1) {

if (RadioGroup7->ItemIndex==0){

g="люкс";}

else if (RadioGroup7->ItemIndex==1) {

g="первого класса"; }

else if (RadioGroup7->ItemIndex==2) {

g="второго класса"; }

}

if (RadioGroup8->ItemIndex!=-1) {

if (RadioGroup8->ItemIndex==0){

h="от 50 человек";}

else if (RadioGroup8->ItemIndex==1) {

h="до 50 человек"; }

}

if (RadioGroup9->ItemIndex!=-1) {

if (RadioGroup9->ItemIndex==0){

i="до 1000р.";}

else if (RadioGroup9->ItemIndex==1) {

i="от 1000р. до 2500р."; }

else if (RadioGroup9->ItemIndex==2) {

i="от 2500."; }

}

if (RadioGroup10->ItemIndex!=-1) {

if (RadioGroup10->ItemIndex==0){

j="центр";}

else if (RadioGroup10->ItemIndex==1) {

j="хар.гора"; }

}

DataModule2->IBQuery1->Active=false;

DataModule2->IBQuery1->SQL->Clear();

DataModule2->IBQuery1->SQL->Add("SELECT * from rest WHERE");

if (a!="") {

DataModule2->IBQuery1->SQL->Add("stoyanka LIKE '"+a+"'");

}

if (b!=""){

if (a!=""){

DataModule2->IBQuery1->SQL->Add("and remont LIKE '"+b+"'"); }

else {DataModule2->IBQuery1->SQL->Add("remont LIKE '"+b+"'");}

}

if (c!=""){

if ((a!="") || (b!="")){

DataModule2->IBQuery1->SQL->Add("and kachestvo_b LIKE '"+c+"'"); }

else {DataModule2->IBQuery1->SQL->Add("kachestvo_b LIKE '"+c+"'");}

}

if (d!=""){

if ((a!="") || (b!="") || (c!="")){

DataModule2->IBQuery1->SQL->Add("and dostavka LIKE '"+d+"'"); }

else {DataModule2->IBQuery1->SQL->Add("dostavka LIKE '"+d+"'");}

}

if (e!=""){

if ((a!="") || (b!="") || (c!="") || (d!="")){

DataModule2->IBQuery1->SQL->Add("and muzika LIKE '"+e+"'"); }

else {DataModule2->IBQuery1->SQL->Add("muzika LIKE '"+e+"'");}

}

if (f!=""){

if ((a!="") || (b!="") || (c!="") || (d!="") || (e!="")){

DataModule2->IBQuery1->SQL->Add("and kyhnya LIKE '"+f+"'"); }

else {DataModule2->IBQuery1->SQL->Add("kyhnya LIKE '"+f+"'");}

}

if (g!=""){

if ((a!="") || (b!="") || (c!="") || (d!="") || (e!="") || (f!="")){

DataModule2->IBQuery1->SQL->Add("and tip_rest LIKE '"+g+"'"); }

else {DataModule2->IBQuery1->SQL->Add("tip_rest LIKE '"+g+"'");}

}

if (h!=""){

if ((a!="") || (b!="") || (c!="") || (d!="") || (e!="") || (f!="") || (g!="")){

DataModule2->IBQuery1->SQL->Add("and tancpol LIKE '"+h+"'"); }

else {DataModule2->IBQuery1->SQL->Add("tancpol LIKE '"+h+"'");}

}

if (i!=""){

if ((a!="") || (b!="") || (c!="") || (d!="") || (e!="") || (f!="") || (g!="") || (h!="")){

DataModule2->IBQuery1->SQL->Add("and cena LIKE '"+i+"'"); }

else {DataModule2->IBQuery1->SQL->Add("cena LIKE '"+i+"'");}

}

if (j!=""){

if ((a!="") || (b!="") || (c!="") || (d!="") || (e!="") || (f!="") || (g!="") || (h!="") || (i!="")){

DataModule2->IBQuery1->SQL->Add("and rayon LIKE '"+j+"'"); }

else {DataModule2->IBQuery1->SQL->Add("rayon LIKE '"+j+"'");}

}

DataModule2->IBQuery1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="№";

DBGrid1->Columns->Items[0]->Width=20;

DBGrid1->Columns->Items[1]->Title->Caption="Название";

DBGrid1->Columns->Items[1]->Width=85;

DBGrid1->Columns->Items[2]->Title->Caption="Адрес";

DBGrid1->Columns->Items[2]->Width=225;

DBGrid1->Columns->Items[3]->Title->Caption="Район";

DBGrid1->Columns->Items[3]->Width=60;

DBGrid1->Columns->Items[4]->Title->Caption="Цена";

DBGrid1->Columns->Items[4]->Width=142;

DBGrid1->Columns->Items[5]->Title->Caption="Кухня";

DBGrid1->Columns->Items[5]->Width=90;

DBGrid1->Columns->Items[6]->Title->Caption="Музыка";

DBGrid1->Columns->Items[6]->Width=60;

DBGrid1->Columns->Items[7]->Title->Caption="Тип ресторана";

DBGrid1->Columns->Items[7]->Width=105;

DBGrid1->Columns->Items[8]->Title->Caption="Качество блюда";

DBGrid1->Columns->Items[8]->Width=86;

DBGrid1->Columns->Items[9]->Title->Caption="Танцпол";

DBGrid1->Columns->Items[9]->Width=96;

DBGrid1->Columns->Items[10]->Title->Caption="Доставка";

DBGrid1->Columns->Items[10]->Width=93;

DBGrid1->Columns->Items[11]->Title->Caption="Стоянка";

DBGrid1->Columns->Items[11]->Width=93;

DBGrid1->Columns->Items[12]->Title->Caption="Ремонт";

DBGrid1->Columns->Items[12]->Width=75;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->IndexName="ind_cena";

DataModule2->IBTable1->Active=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Variant v;

v=DataModule2->IBTable1->Lookup("name", Edit1->Text, "address");

if(!(VarType(v)==varNull))

{Edit2->Text=v;}

else

ShowMessage("не найдено");

}

//--------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->IndexName="ind_name";

DataModule2->IBTable1->Active=true;

}

//---------------------------------------------------------------------------

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