Базовая библиотечная система на прологе

Я хочу сделать основную систему управления библиотекой в ​​прологе. Программа должна отвечать на запросы, например, какая книга выпущена, какой студент и какой ежедневник будет возвращен. Мне нужно руководство с точки зрения того, какие именно компоненты мне нужно выучить для этого (так как я очень плохо знаком с прологом), я хочу развить его быстро, так как у меня нет времени, чтобы изучить все это. Я буду использовать визуальный пролог 7.3

Спасибо заранее MGD

1 ответ

Решение

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

С Visual-Prolog вы должны начать с дизайна пользовательского интерфейса, что я откровенно счел обескураживающим из-за того, что поиграл с кодировкой Prolog. Подумайте об элементах "окна", которые вы хотите: возможно, поле ввода для ввода имени пользователя и другое поле ввода для ввода названия книги, с некоторыми кнопками для "поиска", как подсказывает спецификация "программа должна отвечать на запросы". Вывод будет содержать информацию о том, выписана ли книга, когда она должна быть и т. Д.

Тогда функциональная часть вашего дизайна может начаться. Visual-Prolog просит вас объявить определенные вещи: домены (эквивалентные типам данных в других языках) и предикаты (отношения имен и домены, к которым применяются их различные аргументы, примерно эквивалентные подпрограммам в других языках).

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

Поскольку вы хотите "быстро его развить", вам, вероятно, следует начать с очень простого набора доменов и предикатов. Возможно, "user" и "book" - это базовые домены, с которых нужно начинать, и checkOut/2 - основной предикат (указывающий на то, что конкретный пользователь в данный момент имеет конкретную книгу). Тогда вам, вероятно, нужно будет добавить (как минимум) функцию сохранения даты возвращения книги. Такой дизайн будет проще, если вы раньше занимались разработкой реляционных баз данных.

Соединение пользовательского интерфейса (UI) с "базой знаний" пользователей и книг библиотеки - это вопрос написания предикатов, которые служат обработчиками событий для визуальных элементов UI. Это несколько проще, если вы знакомы с Visual Basic. В любом случае вы можете "заглушить" обработчики событий, пока вы создаете "внешний вид" части пользовательского интерфейса, заменяя их содержательными реализациями, когда ваш проект переходит к разработке "базы знаний".

Другие вопросы по тегам