Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Изучение системных свойств символа в диалекте языка ЛИСП(1).doc
Скачиваний:
8
Добавлен:
01.05.2014
Размер:
172.03 Кб
Скачать

Раздел 3

Описание пользовательского интерфейса

При запуске программы на экран должно выводиться главное меню, которое может иметь следующий вид:

  1. Загрузить базу данных из файла

  2. Сохранить базу данных в файле

  3. Добавить новую запись

  4. Просмотреть все записи

  5. Выполнить запрос

  6. Выход

Главное меню состоит из шести пунктов, осуществляющих загрузку созданной базы данных из файла, сохранение ее в файле, добавление новой записи в отношение РБД, просмотр текущего состояния базы данных с выводом всех записей на экран, выполнение структурированного запроса и выход. Пользователь выбирает один из пунктов меню путем ввода соответствующего номера. При сохранении или загрузке базы данных пользователю можно предоставить возможность вводить в ходе диалога имя файла. При добавлении новой записи в отношение РБД пользователь определяет очередное поле записи в соответствии с подсказкой, содержащей имя поля. Если ввод данных в некоторое поле является обязательным, то при попытке пользователя оставить это поле незаполненным (например, нажатием на клавишу“Enter”), подсказка возникает вторично. Если пользователь опять не указал значение поля, ввод новой записи прекращается.

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

При выполнении пункта меню «Выход» программа завершает работу.

Раздел 4

Перечень заданий на курсовое проектирование

Задача 1

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

На почте производится регистрация корреспонденции, присланной жителям участка. Для каждого почтового отправления записываются его регистрационный номер, вид (посылка, бандероль, ценное либо заказной письмо), адрес отправителя, вес, объявленная ценность, адрес получателя, дата поступления в почтовое отделение, дата вручения адресату. Записать эти сведения в РБД.

Задание 1.1.Реализовать функции, позволяющие ответить на запросы: а) сколько почтовых отправлений определенного вида получено почтовым отделением за последний месяц; б) какие почтовые отправления доставлены за указанный период по определенному адресу.

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

Задание 1.3.Внести в РБД информацию о почтовых отправлениях с указанными регистрационными номерами в связи с их доставкой в текущий день адресатам.

Задача 2

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

Имеется информация об автомобилях, продаваемых через салон. О каждом экземпляре нужно знать марку автомобиля, мощность и номер двигателя, дату выпуска, страну поставки, тип и цвет кузова, число пассажирских мест, цену, дату продажи, имя покупателя. Записать данные в РБД.

Задание 2.1.Реализовать функции: а) внести новую запись (с обязательным заполнением поля с номером двигателя) в ответ на появляющуюся на экране подсказку с именем вводимого поля; б) подсчитать, сколько автомобилей определенной марки продана через салон за указанный период.

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

Задание 2.3.Удалить из РБД информацию об экземпляре автомобиля с заданным номером двигателя в связи со снятием его с продажи. Выяснить, какие автомобили поставляет определенная страна, указав их марки и мощность двигателя.

Задача 3

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

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

Записать информацию в РБД.

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

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

Задача 4

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

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

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

Задание 4.2.Реализовать функции: внести изменения в РБД, связанные с изменением числа студентов в некоторой группе либо заменой ее старосты; б) выяснить, какие группы заданного курса относятся к определенной выпускающей кафедре.

Задача 5

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

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

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

Задание 5.2.Внести изменения в запись с определенным номером аудитории (изменив ее вместимость). Выяснить, какие лекционные аудитории, рассчитанные на число студентов не меньше заданного, имеются в определенном корпусе.

Задача 6

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

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

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

Задание 6.2.Внести изменения в информацию, записанную в РБД (сведения о комплектующих, цена, адрес клиента). Выяснить, кто заказывал в текущем месяце комплекты из указанного материала.

Задача 7

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

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

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

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

Задача 8

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

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

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

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

Приложение

Фрагменты программы на mulispс пояснениями

Создание РБД осуществляется обращением к файлу rbd.lsp. В ходе его выполнения запоминается список имен объектов базы данных как значение символа с именемPHOTO. Затем вводятся значения атрибутов и управление передается файлуctrl.lsp. При выполнении последнего файла выводится заставка.

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

; файл : rbd.lsp

; создан : 9.09.05

; изменен :16.09.05; автор : Смирнов Н.

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

; : «Функциональное и логическое программирование»

; действия : загрузить программу в рабочее пространство

; : передать управление ctrl.lsp

;

; ТАБЛИЦА – ОТНОШЕНИЕ РБД

;

; символ PHOTOхранит в качестве значения список всех объектов РБД

;

(setq PHOTO ‘(PRED1 PRED2 PRED3 PRED4)

; присваиваем значения атрибутам РБД

(put ‘PRED1 ‘ ‘ )

(put ‘PRED1 ‘ ‘ )

(put ‘PRED1 ‘ ‘ )

(put ‘PRED1 ‘ ‘ )

(put ‘PRED2 ‘ ‘ )

(put ‘PRED2 ‘ ‘ )

(put ‘PRED2 ‘ ‘ )

(put ‘PRED2 ‘ ‘ )

(put ‘PRED3 ‘ ‘ )

(put ‘PRED3 ‘ ‘ )

(put ‘PRED3 ‘ ‘ )

(put ‘PRED3 ‘ ‘ )

(put ‘PRED4 ‘ ‘ )

(put ‘PRED4 ‘ ‘ )

(put ‘PRED4 ‘ ‘ )

(put ‘PRED4 ‘ ‘ )

;

; выполняем очистку экрана

(clear-screen)

; загружаем содержимое файла ctrl.lsp

(rds ‘ctrl)

(rds)

; = = = = = = = = = = = = = = = = = = = =

; файл : ctrl.lsp

; создан : 10.09.05

; изменен : 12.09.05

; автор : Смирнов Н.

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

; : «Функциональное и логическое программирование»

; действия : вывод заставки на экран

;

(clear-screen)

(CENTER«Автор Смирнов Николай, группа 03ПА»)

(CENTER«Курсовой проект по дисциплине»)

(CENTER«\«Функциональное и логическое программирование\»» )

(CENTER«Задание 10.1»)

(terpri)

;

; = = = = = = = = = = = = = = = = = = = =

; вывод на экран главного меню

(defun MAINMENU ()

(WRITE-STRING “ = = = = = = = = = = = = = = = = = = = = “)

(TERPRI)

(foreground-color 9)

(WRITE-STRING “ ||”) (TERPRI)

(WRITE-STRING“ ||= = = = = = = = = = = = = = = = = = = = Операции над БД”)

(TERPRI)

(WRITE-STRING“ ||”)

(foreground-color 12)

(WRITE-STRING“ <1> Загрузить базу данных из файла“)

(TERPRI)

(WRITE-STRING“ <2> Сохранить базу данных в файле“)

(TERPRI)

(WRITE-STRING“ <3> Добавить в базу данных новую запись“)

(TERPRI)

(WRITE-STRING“ <4> Просмотреть всю базу данных“)

(TERPRI)

(WRITE-STRING “ <5> Выполнить запрос“)

(TERPRI)

(WRITE-STRING “ <6> Выход“)

(TERPRI 2)

(foreground-color 9)

(WRITE-STRING“ Выберите пункт меню, нажав на нужную цифру“)

)

; = = = = = = = = = = = = = = = = = = = =

; основная программа

(defunMAIN()

(MAINMENU)

(rds)

(setgVAR(READ))

; = = = = = = = = = = = = = = = = = = = =

; загрузка базы данных из файла

(if (eql VAR 1)

(prong (clear-screen)…

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

; к функции LOAD

(clear-screen) (MAIN)…

; = = = = = = = = = = = = = = = = = = = =

(if (eql VAR 2)

(prong (clear-screen)…

; сюда помещается реакция, в процессе которой сохраняется база данных

; с обращением к функции SAVE

; = = = = = = = = = = = = = = = = = = = =

; добавление новой записи

(if (eql VAR 3)

(prong (clear-screen)…

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

; нужно ввести значения ее полей и добавить имя новой записи в список PHOTO

(clear-screen) (MAIN)…

; = = = = = = = = = = = = = = = = = = = =

; просмотр всех записей базы данных

(if (eql VAR 4)

(prong (clear-screen)…

; сюда помещается реакция, в процессе которой просматривается содержимое базы данных, записанной в файл.

; Необходимо предусмотреть обработку исключительной ситуации «в БД нет записей».

; Если записи есть, то нужно процти последовательно элементы списка PHOTO, выводя для каждого список его свойств

(clear-screen) (MAIN)…

; = = = = = = = = = = = = = = = = = = = =

; выполнение запроса

(if (eql VAR 5)

(prong (clear-screen)…

; сюда помещается реакция, в процессе которой выполняется запрос

(clear-screen) (MAIN)…

; = = = = = = = = = = = = = = = = = = = =

; выход из сеанса общения

(if(eqlVAR6) (system))

; если нажали на недопустимую клавишу

(MAIN)