Помощь в написании студенческих работ
Антистрессовый сервис

Информационно-справочная система «Киноиндустрия»

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Попытаемся отыскать избыточную связь в инфологической схеме (см. рис. 2.1) и провести преобразование 1. Замечаем, что связи S7 и S8 осуществляются также с помощью 2-х связей S1 (преобразуем в ВПВ) и S2. Также связь S2 осуществляется за счет S9(преобразуем в ВПВ) и S3. Связь S6 осуществляется за счет S1 и S9. Таким образом, связи являются избыточными и их можно удалить. Больше избыточных связей… Читать ещё >

Информационно-справочная система «Киноиндустрия» (реферат, курсовая, диплом, контрольная)

МИНОБРНАУКИ РОССИИ.

Федеральное государственное бюджетное образовательное.

учреждение высшего профессионального образования.

«Ижевский государственный технический университет имени М.Т. Калашникова».

Кафедра «Программное обеспечение».

Пояснительная записка.

к курсовой работе.

по дисциплине «Системы и алгоритмы обработки данных».

на тему: Информационно-справочная система «Киноиндустрия» .

Выполнила:

студентка гр. 4−78−11 Федотова Е.К.

Проверил: Сенилов М.А.

д.т.н., профессор

Ижевск 2012.

ТЕХНИЧЕСКОЕ ЗАДАНИЕ.

Разработать информационно справочную систему «Киноиндустрия».

Система должна содержать информацию о СТУДИЯХ, СТРАНАХ, СПОНСОРАХ, ФИЛЬМАХ, АКТЕРАХ.

В системе должны обрабатываться следующие запросы:

1. Выдать список ФИЛЬМОВ, вышедших на данной СТУДИИ в данной СТРАНЕ.

2. Для данного (или указанного) ФИЛЬМА и данной СТУДИИ привести список АКТЕРОВ.

3. Выдать сведения об АКТЕРАХ данной СТРАНЫ, снимавшихся в данном ФИЛЬМЕ данной СТУДИИ.

4. Указать список всех СПОНСОРОВ, вложивших деньги в данный ФИЛЬМ данной СТУДИИ.

5. Для каждой или указанной СТРАНЫ привести список СТУДИЙ и АКТЕРОВ.

6. Выдать ФИЛЬМ, где участвовал данный АКТЕР.

7. Для указанного ФИЛЬМА выдать СТРАНУ и СТУДИЮ, где он снимался.

8. Для данного АКТЕРА указать СТУДИЮ, где он снимался.

1. Содержательная постановка задачи.

1.1 Характеристика задачи.

1.2 Входные данные.

1.3 Выходные данные.

2. Формализованная постановка задачи.

2.1 Разработка модели предметной области (МПО).

2.1.1 Составление перечня атрибутов и задание их характеристик.

2.1.1 Агрегация атрибутов, выделение объектов и задание их характеристик.

2.1.3 Анализ запросов к информационной базе.

2.1.4 Установление функциональных связей и задание их характеристик.

2.1.5 Установление структурных связей и задание их характеристик.

2.2 Оптимизация и проверка корректности схемы МПО.

3. Абстрактный анализ и синтез МПО.

3.1 Представление МПО с помощью абстрактных структур данных (АСД).

3.2 Предварительное преобразование структуры данных.

3.3 Декомпозиция структуры данных на более простые АСД.

4. Разработка внешних спецификаций программы.

4.1 Разработка представления данных при помощи логических структур данных (ЛСД).

4.2 Интерфейс программы. Разработка макетов ввода-вывода.

4.3 Разработка функций программы.

4.4 Разработка функций программы по обработке ошибок.

5. Разработка внутренних спецификаций программы.

5.1 Разработка структуры программы.

5.2 Разработка представления данных на уровне модели памяти.

5.3 Разработка алгоритмов модулей.

6. Описание программы kurs.

6.1 Вводная часть.

6.2 Функциональное назначение.

6.3 Описание информации.

6.4 Описание логики программы.

6.5 Используемые подпрограммы.

7. Описание подпрограммы zapros1.

7.1 Вводная часть.

7.2 Функциональное назначение.

7.3 Описание информации.

7.4 Описание логики.

8. Описание подпрограммы zapros2.

8.1 Вводная часть.

8.2 Функциональное назначение.

8.3 Описание информации.

8.4 Описание логики.

9. Описание подпрограммы zapros3.

9.1 Вводная часть.

9.2 Функциональное назначение.

9.3 Описание информации.

9.4 Описание логик.

10. Описание подпрограммы zapros4.

10.1 Вводная часть.

10.2 Функциональное назначение.

10.3 Описание информации.

10.4 Описание логики.

11. Описание подпрограммы zapros5.

11.1 Вводная часть.

11.2 Функциональное назначение.

11.3 Описание информации.

11.4 Описание логики.

12. Описание подпрограммы zapros6.

12.1 Вводная часть.

12.2 Функциональное назначение.

12.3 Описание информации.

12.4 Описание логики.

13. Описание подпрограммы zapros7.

13.1 Вводная часть.

13.2 Функциональное назначение.

13.3 Описание информации.

13.4 Описание логики.

14. Описание подпрограммы zapros8.

14.1 Вводная часть.

14.2 Функциональное назначение.

14.3 Описание информации.

14.4 Описание логики.

15. Описание подпрограммы Openf.

15.1 Вводная часть.

15.2 Функциональное назначение.

15.3 Описание информации.

15.4 Описание логики.

16. Тестирование программы.

16.1 Разработка плана тестирования и набора тестов.

16.2 Результаты тестирования Заключение Список литературы Приложение 1. Текст программы Приложение 2. Тексты входных файлов Приложение 3. Руководство программиста Приложение 4. Руководство пользователя.

Целью данной курсовой работы является разработка модели предметной области (МПО), ее анализ, синтез и программная реализация на языке программирования Pascal. Информационно-справочная система, для которой будет реализована МПО, — Киноиндустрия". Данная система служит для облегчения работы со статистическими данными при обработке результатов. Используя данную информационную систему можно существенно упростить поиск и просмотр основных данных в этой области. Так же существует возможность хранения информационной базы на жестких дисках и внешних носителях.

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

Методология проектирования опирается на курс «Структуры и алгоритмы обработки данных в ЭВМ» .

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

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

1. СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ.

1.1 Характеристика задачи.

Название информационно-справочной системы «Киноиндустрия». Данная система рассматривает реализацию следующих запросов:

1. Выдать список ФИЛЬМОВ, вышедших на данной СТУДИИ в данной СТРАНЕ.

2. Для данного (или указанного) ФИЛЬМА и данной СТУДИИ привести список АКТЕРОВ.

3. Выдать сведения об АКТЕРАХ данной СТРАНЫ, снимавшихся в данном ФИЛЬМЕ данной СТУДИИ.

4. Указать список всех СПОНСОРОВ, вложивших деньги в данный ФИЛЬМ данной СТУДИИ.

5. Для каждой или указанной СТРАНЫ привести список СТУДИЙ и АКТЕРОВ.

6. Выдать ФИЛЬМ, где участвовал данный АКТЕР.

7. Для указанного ФИЛЬМА выдать СТРАНУ и СТУДИЮ, где он снимался.

8. Для данного АКТЕРА указать СТУДИЮ, где он снимался.

Реализация каждого запроса будет осуществляться посредством подпрограмм.

Данную задачу удобно решать на ЭВМ т.к. это обеспечивает:

— высокую скорость обработки информации;

— удобные средства для ввода, поиска и вывода информации;

— хранение большого количества информации при малых материальных и технических затратах.

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

1.2 Входные данные.

Поскольку объектами данной информационно — справочной системы являются СТУДИЯ, СТРАНА, СПОНСОР, ФИЛЬМ, АКТЕР, то входные данные согласно этим объектам разделены на два входных файла «strstd.dat» и «actors.dat».

Файл «actors.dat» содержит информацию о ФИЛЬМАХ, СПОНСОРАХ И АКТЕРАХ и имеет следующую структуру:

Название фильма Жанр фильма Бюджет Время выхода в прокат Название спонсора Количество вложенных средств Прибыль ФИО актера Гонорар Файл «strstd.dat» содержит информацию о СТРАНАХ И СТУДИЯХ и имеет следующую структуру:

Название страны Столица Название студии Место съемок.

1.3 Выходные данные.

В качестве выходных данных используются (выдаются на экран):

— в 1 запросе — список фильмов.

— во 2 запросе — список актеров.

— в 3 запросе — сведения об актерах.

— в 4 запросе — список спонсоров.

— в 5 запросе — список студий, актеров.

— в 6 запросе — фильм.

— в 7 запросе — страна, студия.

— в 8 запросе — студия, А так же выводятся следующие сообщения об ошибках:

— страна не найдена.

— студия не найдена.

— фильм не найден.

— актер не найден.

2. ФОРМАЛИЗОВАННАЯ ПОСТАНОВКА ЗАДАЧИ.

2.1 Разработка модели предметной области (МПО).

2.1.1 Составление перечня атрибутов и задание их характеристик.

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

Таблица 2.1.

Код характеристики.

Название характеристики.

А1.

Шаблон значений атрибута.

А2.

Процент наличия значений атрибута в экземплярах объекта.

А3.

Ограничения на доступ к значениям атрибута.

А4.

Частота использования атрибута.

А5.

Область допустимых значений.

А6.

Признак выводимости значений.

А7.

Признак дублирования значений.

Таблица 2.2. Описание объекта СТУДИЯ.

Имя атрибута.

А1.

А2.

А3.

А4.

А5.

А6.

А7.

Роль атрибута.

НАЗВ.

X (25).

;

;

;

;

;

;

Название студии.

МЕСТО СЪЕМОК.

Х (30).

;

;

;

;

;

;

Место проведения съемок.

Таблица 2.3. Описание объекта СТРАНА.

Имя атрибута.

А1.

А2.

А3.

А4.

А5.

А6.

А7.

Роль атрибута.

НАЗВ.

Х (20).

;

;

;

;

;

;

Название страны.

СТОЛИЦА.

Х (20).

;

;

;

;

;

;

Столица.

Таблица 2.4. Описание объекта СПОНСОР.

Имя атрибута.

А1.

А2.

А3.

А4.

А5.

А6.

А7.

Роль атрибута.

НАЗВ.

Х (40).

;

;

;

;

;

;

Название фирмы.

КОЛ СРЕДСТВ.

9(8).

;

;

;

;

;

;

Вложение.

ПРИБЫЛЬ.

9(8).

;

;

;

;

;

;

Прибыль с проката.

Таблица 2.5. Описание объекта ФИЛЬМ.

Имя атрибута.

А1.

А2.

А3.

А4.

А5.

А6.

А7.

Роль атрибута.

НАЗВ.

Х (30).

;

;

;

;

;

ДА.

Название фильма.

ЖАНР.

Х (15).

;

;

;

;

;

ДА.

Жанр фильма.

БЮДЖЕТ.

9(8).

;

;

;

;

;

;

Бюджет фильма.

ВРЕМЯ ВЫХ.

9(6).

;

;

;

;

;

ДА.

Время выхода в прокат.

Таблица 2.6. Описание объекта АКТЕР.

Имя атрибута.

А1.

А2.

А3.

А4.

А5.

А6.

А7.

Роль атрибута.

ФИО.

Х (30).

;

;

;

;

ДА.

;

ФИО актера.

ГОНОРАР.

9(8).

;

;

;

;

ДА.

;

Гонорар за фильм.

2.1.2 Агрегация атрибутов, выделение объектов и задание их характеристик.

Зададим для объектов характеристики, которые приведены в таблице 2.7, и составим перечень характеристик выделенных объектов, представленный в таблице 2.8.

Таблица 2.7. Характеристики объекта.

Код характеристики.

Название характеристики.

В1.

Способ обращения к экземплярам объекта.

В2.

Структурная активность объекта.

В3.

Ограничения на доступ к экземплярам объекта.

В4.

Частота использования.

В5.

Количество экземпляров объекта.

В6.

Изменчивость состава экземпляров объекта.

Таблица 2.8. Перечень характеристик выделенных объектов.

Имя объекта.

В1.

В2.

В3.

В4.

В5.

Примечание.

СТУДИЯ.

К (НАЗВ) М.

;

;

;

;

СТРАНА.

К (НАЗВ).

;

;

;

;

СПОНСОР.

К (НАЗВ) М.

;

Руководство студии (фильма).

;

;

ФИЛЬМ.

К (НАЗВ) М.

;

;

;

;

АКТЕР.

К (ФИО) М.

;

;

;

;

2.1.3 Анализ запросов к информационной базе.

1. Выдать список ФИЛЬМОВ, вышедших на данной СТУДИИ в данной СТРАНЕ.

2. Для данного (или указанного) ФИЛЬМА и данной СТУДИИ выдать список АКТЕРОВ.

3. Выдать сведения об АКТЕРАХ данной СТРАНЫ, снимавшихся в данном ФИЛЬМЕ данной СТУДИИ.

4. Выдать список всех СПОНСОРОВ, вложивших деньги в данный ФИЛЬМ данной СТУДИИ.

5. Для каждой или указанной СТРАНЫ выдать список СТУДИЙ и АКТЕРОВ.

6. Выдать ФИЛЬМ, где участвовал данный АКТЕР.

7. Для указанного ФИЛЬМА выдать СТРАНУ и СТУДИЮ, где он снимался.

8. Для данного АКТЕРА выдать СТУДИЮ, где он снимался.

2.1.4 Установление функциональных связей и задание их характеристик.

Выделим функциональные связи (ФС) по каждому из запросов (см. п. 2.1.3.):

1. Запрос можно представить следующей многомерной функциональной связью:

T (СТРАНА, СТУДИЯ) = 1: М, т.к.: в каждой стране может быть несколько студий, а определенная студия находится только в одной стране.

Применим преобразование 1.

2. Запрос можно представить следующей многомерной функциональной связью:

T (СТУДИЯ, ФИЛЬМ) = 1: М, т.к.: в каждой студии может сниматься несколько фильмов, а определенный фильм снят только в одной студии.

Применим преобразование 1.

3. Запрос можно представить следующей многомерной функциональной связью:

T (СТРАНА, СТУДИЯ) = 1: М, т.к.: в каждой стране может быть несколько студий, а определенная студия находится только в одной стране.

Применим преобразование 1.

T (СТУДИЯ, ФИЛЬМ) = 1: М, т.к.: в каждой студии может быть снято несколько фильмов, а определенный фильм снят только в одной студии.

Применим преобразование 1.

4. Запрос можно представить следующей многомерной функциональной связью:

T (СТУДИЯ, ФИЛЬМ) = 1: М, т.к.: в каждой студии может быть снято несколько фильмов, а определенный фильм снят только в одной студии.

Применим преобразование 1.

5. Запрос можно представить следующими одномерными функциональными связями:

6. Запрос можно представить следующей одномерной функциональной связью:

7. Запрос можно представить следующими одномерными функциональными связями:

8. Запрос можно представить следующей одномерной функциональной связью:

Присвоим номера функциональным связям.

1 запрос:

1.1 Т (СТРАНА, СТУДИЯ) = 1: М.

1.2 Т (СТУДИЯ, ФИЛЬМ) = 1: М.

2 запрос:

2.1 Т (СТУДИЯ, ФИЛЬМ) = 1: М.

2.2 Т (ФИЛЬМ, АКТЕР) = 1: М.

3 запрос:

3.1 Т (СТРАНА, СТУДИЯ) = 1: М.

3.2 Т (СТУДИЯ, ФИЛЬМ) = 1: М.

3.3 Т (ФИЛЬМ, АКТЕР) = 1: М.

4 запрос.

4.1 Т (СТУДИЯ, ФИЛЬМ) = 1: М.

4.2 Т (ФИЛЬМ, СПОНСОР) = М: М.

5 запрос.

5.1 Т (СТРАНА, СТУДИЯ) = 1: М.

5.2. Т (СТРАНА, АКТЕР) = 1: М.

6 запрос.

6.1. Т (АКТЕР, ФИЛЬМ) = М: 1.

7 запрос.

7.1 Т (ФИЛЬМ, СТРАНА) = М: М.

7.2 Т (ФИЛЬМ, СТУДИЯ) = М: 1.

8 запрос.

8.1 Т (АКТЕР, СТУДИЯ) = М: 1.

Таблица 2.9. Перечень функциональных связей.

№ ФС.

Исходные данные.

Конечные объекты.

Тип соответствия.

Параметры выборки.

Частота.

Ограничение на время.

Ограниче-ние на право.

1.1.

СТРАНА.

СТУДИЯ.

1: М.

Исх.:К (НАЗВ).

;

;

;

1.2.

СТУДИЯ.

ФИЛЬМ.

1: М.

Исх.:К (НАЗВ) Кон: М.

;

;

;

2.1.

СТУДИЯ.

ФИЛЬМ.

1: М.

Исх.:К (НАЗВ).

;

;

;

2.2.

ФИЛЬМ.

АКТЕР.

1: М.

Исх.:К (НАЗВ) Кон: М.

;

;

;

3.1.

СТРАНА.

СТУДИЯ.

1: М.

Исх.:К (НАЗВ).

;

;

;

3.2.

СТУДИЯ.

ФИЛЬМ.

1: М.

Исх.:К (НАЗВ).

;

;

;

3.3.

ФИЛЬМ.

АКТЕР.

1: М.

Исх.:К (НАЗВ) Кон: М.

4.1.

СТУДИЯ.

ФИЛЬМ.

1: М.

Исх.:К (НАЗВ).

;

;

;

4.2.

ФИЛЬМ.

СПОНСОР.

М: М.

Исх.:К (НАЗВ) Кон: М.

;

;

;

5.1.

СТРАНА.

СТУДИЯ.

1: М.

Исх.:К (НАЗВ) Кон: М.

;

;

;

5.2.

СТРАНА.

АКТЕР.

1: М.

Исх.:К (НАЗВ) Кон: М.

;

;

;

6.1.

АКТЕР.

ФИЛЬМ.

М: 1.

Исх.:К (ФИО).

;

;

;

7.1.

ФИЛЬМ.

СТРАНА.

М: М.

Исх: К (НАЗВ).

;

;

;

7.2.

ФИЛЬМ.

СТУДИЯ.

М: 1.

Исх: К (НАЗВ).

;

;

;

8.1.

АКТЕР.

СТУДИЯ.

М: 1.

Исх: К (ФИО).

;

;

;

2.1.5 Установление структурных связей и задание их характеристик.

Проанализировать функциональные связи и отобразим их в структурные связи (СС). Для данной процедуры используются следующие правила:

Правило 1. Положим, определена одномерная ФС F Y X1. где T (X1,Y)=1:M, тогда:

— исходный объект Х1 объявляется владельцем СС;

— конечный объект Y объявляется подчинённым;

— значение характеристики С1 назначается ВП.

Правило 2. Положим, определена одномерная ФС F Y X2. где T (X2,Y)=M:1, тогда:

— конечный объект ФС Y объявляется владельцем СС;

— исходный объект Х2 объявляется подчинённым;

— значение характеристики С1 назначается ПВ.

Правило 3. Положим, определена одномерная ФС F Y X3. где T (X3,Y)=М:M, тогда:

— исходный объект Х3 и конечный объект Y объявляются владельцами двух СС;

—подчинённым в обеих СС объявляется новый объект, который назовём объектом-связкой;

— в СС, где владелец — исходный объект ФС Х3, направление движения объявляется С1=ВП;

— в СС, где владелец — конечный объект ФС Y, направление движения объявляется С1=ПВ;

— для объекта-связки в обеих СС выбирается класс членства С6=ОБ (обязательный).

Правило 4. Пусть дана многомерная ФС канонического вида F Y X4Х5, тогда:

— все исходные и конечный объекты объявляются владельцами нескольких СС;

— подчинённым во всех СС объявляется новый объект-связка;

— объект-связка объявляется обязательным участником всех СС, то есть для него во всех СС выбирается класс членства С6=ОБ;

— для одной из СС, где владелец — исходный объект ФС, направление движения назначается С1=ВП, а во всех остальных — С1=ПВ.

Проанализируем характеристики ФС.

1.1. Т (СТРАНА, СТУДИЯ) = 1: М, => по правилу 1 устанавливается связь S1, в которой объект СТРАНА является владельцем СС, СТУДИЯ — подчиненным объектом, значение характеристики С1 назначается ВП.

1.2. Т (СТУДИЯ, ФИЛЬМ) = 1: М, => по правилу 1 устанавливается связь S2, в которой объект СТУДИЯ является владельцем СС, ФИЛЬМ — подчиненным объектом, значение характеристики С1 назначается ВП.

2.1. Т (СТУДИЯ, ФИЛЬМ) = 1: М, => данная связь S2 уже установлена.

2.2. Т (ФИЛЬМ, АКТЕР) = 1: М, => по правилу 1 устанавливается связь S3, в которой объект ФИЛЬМ является владельцем СС, АКТЕР — подчиненным объектом, значение характеристики С1 назначается ВП.

3.1. Т (СТРАНА, СТУДИЯ) = 1: М, => данная связь S1 уже установлена.

3.2. Т (СТУДИЯ, ФИЛЬМ) = 1: М, => данная связь S2 уже установлена.

3.3. Т (ФИЛЬМ, АКТЕР) = 1: М, => данная связь S3 уже установлена.

4.1. Т (СТУДИЯ, ФИЛЬМ) = 1: М, => данная связь S2 уже установлена.

4.2. Т (ФИЛЬМ, СПОНСОР) = М: М, => к этой связи применимо правило 3. Устанавливается связь S4, в которой объект ФИЛЬМ является владельцем СС, объект-связка — подчиненным объектом, значение характеристики С1 назначается ВП; Устанавливается связь S5, в которой объект СПОНСОР является владельцем СС, объект-связка — подчиненным объектом, значение характеристики С1 назначается ПВ.

5.1. Т (СТРАНА, СТУДИЯ) = 1: М, => данная связь S1 уже установлена.

5.2. Т (СТРАНА, АКТЕР) = 1: М, => по правилу 1 устанавливается связь S6, в которой объект СТРАНА является владельцем СС, АКТЕР — подчиненным объектом, значение характеристики С1 назначается ВП.

6.1. Т (АКТЕР, ФИЛЬМ) = М: 1, к этой связи применимо правило 2. Отображение этой ФС корректирует значение С1 для ранее установленной СС S3. Теперь для S3 С1=ВПВ.

7.1. Т (ФИЛЬМ, СТРАНА) = М: М, => к этой связи применимо правило 3. Устанавливается связь S7, в которой объект ФИЛЬМ является владельцем СС, объект-связка — подчиненным объектом, значение характеристики С1 назначается ВП; Устанавливается связь S8, в которой объект СТРАНА является владельцем СС, объект-связка — подчиненным объектом, значение характеристики С1 назначается ПВ.

7.2. Т (ФИЛЬМ, СТУДИЯ) = М: 1, к этой связи применимо правило 2. Отображение этой ФС корректирует значение С1 для ранее установленной СС S2. Теперь для S2 С1=ВПВ.

8.1. Т (АКТЕР, СТУДИЯ) = М: 1, => к этой связи применимо правило 2, устанавливается связь S9, в которой объект СТУДИЯ является владельцем СС, АКТЕР — подчиненным объектом, значение характеристики С1 назначается ПВ.

Совокупность структурных связей представляют инфологическую схему МПО, представленную на рис. 2.1.

Рис. 2.1. Инфологическая схема Каждой структурной связи (СС) присваиваем уникальное имя и определим её характеристики. Значение этих характеристик определяется на основе характеристик ФС. Перечень характеристик СС приведён в таблице 2.9.

Таблица 2.10. Характеристики структурных связей.

Код.

Название характеристики.

С1.

С2.

С3.

С4.

С5.

С6.

С7.

С8.

Направление движения по СС Способ упорядочения экземпляров подчинённого объекта Ограничения на право движения по СС Частота использования Количество экземпляров подчинённого объекта в СС Класс членства подчинённого объекта Перемещаемость экземпляров подчинённого объекта СС Ограничения на время движения по СС.

Таблица 2.11. Перечень структурных связей.

Имя СС.

С1.

С2.

С3.

С4.

С5.

С6.

С7.

С8.

S1.

ВП.

НАЗВ.

;

;

ПЕР.

;

;

S2.

ВПВ.

НАЗВ.

;

;

ПЕР.

;

;

S3.

ВПВ.

ФИО.

;

;

ПЕР.

;

;

S4.

ВП.

;

;

ПЕР.

ОБ.

;

;

S5.

ПВ.

;

;

ПЕР.

ОБ.

;

;

S6.

ВП.

ФИО.

;

;

ПЕР.

;

;

S7.

ВП.

;

;

ПЕР.

ОБ.

;

;

S8.

ПВ.

;

;

ПЕР.

ОБ.

;

;

S9.

ПВ.

ФИО.

;

;

ПЕР.

;

;

2.2 Оптимизация и проверка корректности схемы МПО.

Полученный первоначально вариант схемы МПО далее подлежит всестороннему анализу с целью проверки возможности оптимизации (упрощения), а также проверке на полноту и корректность.

Оптимизация заключается в преобразованиях схемы МПО с целью её упрощения. Основное правило допустимых преобразований: из схемы МПО можно исключить СС, если оставшиеся СС дают возможность обеспечить корректное выполнение всех ФС перечня. В процессе преобразований могут быть также исключены некоторые объекты-связки. Наиболее типичные преобразования структуры — это.

1) исключение избыточной CC.

2) исключение избыточного объекта-связки.

Попытаемся отыскать избыточную связь в инфологической схеме (см. рис. 2.1) и провести преобразование 1. Замечаем, что связи S7 и S8 осуществляются также с помощью 2-х связей S1 (преобразуем в ВПВ) и S2. Также связь S2 осуществляется за счет S9(преобразуем в ВПВ) и S3. Связь S6 осуществляется за счет S1 и S9. Таким образом, связи являются избыточными и их можно удалить. Больше избыточных связей нет. Полученная оптимизированная инфологическая схема МПО представлена на рис. 2.2.

Рис. 2.2. Оптимизированная инфологическая схема В качестве ОС1 выберем Договор.

Таблица 2.12. Перечень структурных связей.

Имя СС.

С1.

С2.

С3.

С4.

С5.

С6.

С7.

С8.

S1.

ВПВ.

НАЗВ.

;

;

ПЕР.

;

;

S3.

ВПВ.

ФИО.

;

;

ПЕР.

;

;

S4.

ВП.

;

;

ПЕР.

ОБ.

;

;

S5.

ПВ.

;

;

ПЕР.

ОБ.

;

;

S9.

ВПВ.

ФИО.

;

;

ПЕР.

;

;

3. АБСТРАКТНЫЙ АНАЛИЗ И СИНТЕЗ МПО.

3.1 Представление МПО с помощью абстрактных структур данных (АСД).

На основе схемы структурных связей приведем экземпляр МПО, достаточно полно отображающий режимы работы информационной системы (см. рис. 3.1).

Рис. 3.1. Граф экземпляра модели предметной области.

3.2 Предварительное преобразование структуры данных.

Просмотрим перечень ФС (табл. 2.9). В графе «Параметры выборки» у всех объектов установлены признаки, поэтому экземпляры каждого из этих объектов связываем в прямую разомкнутую цепь.

Просмотрим перечень СС (табл. 2.12).

1) Характеристику C1=ВП имеют СС S4. В каждом экземпляре СС S4 каждый экземпляр объекта-владельца и соответствующие ему экземпляры подчиненного объекта связываются в прямую разомкнутую цепь.

2) Характеристику С1=ВПВ имеет СС S1, S3, S9. В каждом экземпляре этой СС каждый экземпляр объекта-владельца и соответствующие ему экземпляры подчиненного объекта связываются в двунаправленную разомкнутую цепь. (рис. 3.2).

Рис. 3.2.

3.3 Декомпозиция структуры данных на более простые АСД.

Представим АСД 1. АСД 1 является размеченным графом (см. рис. 3.3).

Рис. 3.3. Схема АСД 1.

Представим АСД2. АСД 2 является размеченным графом (см. рис. 3.4).

Рис. 3.4. Схема АСД 2.

Представим АСД3. АСД 3 является размеченным графом (см. рис. 3.5). Объединим Объекты ДОГОВОР и СПОНСОР в кортеж.

Рис. 3.5 Схема АСД 3.

4. РАЗРАБОТКА ВНЕШНИХ СПЕЦИФИКАЦИЙ ПРОГРАММЫ.

4.1 Разработка представления данных при помощи логических структур данных (ЛСД).

Разработаем и проанализируем алгоритмы обработки структуры данных.

АЛГОРИТМ анонс фильмов ВХОДНЫЕ ДАННЫЕ название страны, студии ВЫХОДНЫЕ ДАННЫЕ фильмы.

1. задать страну;

2. найти страну;

3. задать студию;

4. найти студию;

5. вывести список фильмов, снятых на данной студии;

КОНЕЦ анонс фильмов АЛГОРИТМ актерский состав ВХОДНЫЕ ДАННЫЕ название студии, фильма ВЫХОДНЫЕ ДАННЫЕ список актеров.

1. задать студию;

2. найти студию;

3. задать фильм;

4. найти фильм;

5. вывести список актеров, снятых в данном фильме;

КОНЕЦ актерский состав АЛГОРИТМ актеры ВХОДНЫЕ ДАННЫЕ название студии, фильма ВЫХОДНЫЕ ДАННЫЕ список актеров.

1. задать страну;

2. найти страну.

3. задать студию;

4. найти студию;

5. задать фильм;

6. найти фильм;

7. вывести список актеров, снятых в данном фильме;

КОНЕЦ актеры АЛГОРИТМ спонсоры ВХОДНЫЕ ДАННЫЕ название студии, фильма ВЫХОДНЫЕ ДАННЫЕ список спонсоров.

1. задать студию;

2. найти студию;

3. задать фильм;

4. найти фильм;

5. вывести список спонсоров, вложивших деньги в данный фильм;

КОНЕЦ спонсоры АЛГОРИТМ резервы страны ВХОДНЫЕ ДАННЫЕ название страны ВЫХОДНЫЕ ДАННЫЕ список студия, актеров.

1. задать страну;

2. найти страну;

3. вывести список студий, находящихся в данной стране;

4. найти фильмы, снятые на данной студии;

5. вывести список актеров;

КОНЕЦ резервы страны АЛГОРИТМ фильм ВХОДНЫЕ ДАННЫЕ ФИО актера ВЫХОДНЫЕ ДАННЫЕ фильм.

1. задать ФИО актера;

2. найти актера;

3. вывести фильм, в котором он снялся;

КОНЕЦ фильм АЛГОРИТМ фильм2.

ВХОДНЫЕ ДАННЫЕ фильм ВЫХОДНЫЕ ДАННЫЕ страна, студия.

1. задать фильм;

2. найти фильм;

3. вывести студию, на которой он снимался;

4. вывести страну, в которой снимался фильм;

КОНЕЦ фильм2.

АЛГОРИТМ студия ВХОДНЫЕ ДАННЫЕ ФИО актера ВЫХОДНЫЕ ДАННЫЕ студия.

1. задать ФИО актера;

2. найти актера;

3. найти фильм, в котором он снимался;

4. вывести студию;

КОНЕЦ студия.

4.2 Интерфейс программы. Разработка макетов ввода-вывода.

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

=МЕНЮ=.

1. Выдать список ФИЛЬМОВ, вышедших на данной СТУДИИ в данной стране.

2. Для данного ФИЛЬМА и данной СТУДИИ привести список АКТЕРОВ.

3. Выдать сведения об АКТЕРАХ данной СТРАНЫ, снимавшихся в данном ФИЛЬМЕ данной СТУДИИ.

4. Указать список всех СПОНСОРОВ, вложивших деньги в данный ФИЛЬМ данной СТУДИИ.

5. Для указанной СТРАНЫ привести список СТУДИЙ и АКТЕРОВ.

6. Выдать ФИЛЬМ, где участвовал данный АКТЕР.

7. Для указанного ФИЛЬМА выдать СТРАНУ и СТУДИЮ, где он снимался.

8. Для данного АКТЕРА указать СТУДИЮ, где он снимался.

Esc. Выход.

Рис. 4.1. Главное меню программы Рассмотрим пункты меню:

Пункт 1 — реализует запрос № 1.Для активизации этого пункта меню пользователь должен нажать «1». Выводится сообщение, представленное на рис. 4.2.

введите название страны введите название студии.

Рис. 4.2. Сообщения «Запрос 1».

Пункт 2 — реализует запрос № 2.Для активизации этого пункта меню пользователь должен нажать «2». Выводится сообщение, представленное на рис. 4.3..

введите название студии введите название фильма.

Рис. 4.3. Сообщения «Запрос 2».

Пункт 3 — реализует запрос № 3.Для активизации этого пункта меню пользователь должен нажать «3». Выводится сообщение, представленное на рис. 4.4.

введите название страны введите название студии введите название фильма.

Рис. 4.4. Сообщения «Запрос 3».

Пункт 4 — реализует запрос № 4.Для активизации этого пункта меню пользователь должен нажать «4». Выводится сообщение, представленное на рис. 4.3.

Пункт 5 — реализует запрос № 5.Для активизации этого пункта меню пользователь должен нажать «5». Выводится сообщение, представленное на рис. 4.5.

введите название страны.

Рис. 4.5. Сообщения «Запрос 5».

Пункт 6 — реализует запрос № 6.Для активизации этого пункта меню пользователь должен нажать «6». Выводится сообщение, представленное на рис. 4.6.

введите ФИО актера.

Рис. 4.6. Сообщения «Запрос 6».

Пункт 7 — реализует запрос № 7.Для активизации этого пункта меню пользователь должен нажать «7». Выводится сообщение, представленное на рис. 4.7.

введите название фильма.

Рис. 4.7. Сообщения «Запрос 7».

Пункт 8 — реализует запрос № 8.Для активизации этого пункта меню пользователь должен нажать «8». Выводится сообщение, представленное на рис. 4.6.

Пункт «Выход" — реализует выход из меню программы. Для активизации этого пункта меню пользователь должен нажать «Esc.».

4.3 Разработка функций программы.

Программа состоит из функций реализации запросов (далее ЗАПРОС 1−8). Ниже приводится описание этих функций:

zapros1 — обрабатывает информационную базу согласно запросу 1.

zapros2 — обрабатывает информационную базу согласно запросу 2.

zapros3 — обрабатывает информационную базу согласно запросу 3.

zapros4 — обрабатывает информационную базу согласно запросу 4.

zapros5 — обрабатывает информационную базу согласно запросу 5.

zapros6 — обрабатывает информационную базу согласно запросу 6.

zapros7 — обрабатывает информационную базу согласно запросу 7.

zapros8 — обрабатывает информационную базу согласно запросу 8.

4.4 Разработка функций программы по обработке ошибок.

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

5. РАЗРАБОТКА ВНУТРЕННИХ СПЕЦИФИКАЦИЙ ПРОГРАММЫ.

5.1 Разработка структуры программы.

Структура программы представлена на рис. 5.1 в виде иерархической схемы.

Рис. 5.1 Структура программы где:

Zapros1 — процедура реализации запроса 1;

Zapros2 — процедура реализации запроса 2;

Zapros3 — процедура реализации запроса 3;

Zapros4 — процедура реализации запроса 4;

Zapros5 — процедура реализации запроса 5;

Zapros6 — процедура реализации запроса 6;

Zapros7 — процедура реализации запроса 7;

Zapros8 — процедура реализации запроса 8.

5.2 Разработка представления данных на уровне модели памяти.

Представление данных на уровне модели памяти имеет вид, представленный на рис. 5.2,рис.5.3, рис. 5.4.

Рис. 5.2 Схема представления ЛСД 1.

Рис. 5.3. Схема представления ЛСД 2.

Рис. 5.4. Схема представления ЛСД 3.

5.3 Разработка алгоритмов модулей.

Программа состоит из единственного модуля kurs. pas, который содержит в себе процедуры обработки запросов и основную программу.

6. ОПИСАНИЕ ПРОГРАММЫ Kurs.

6.1 Вводная часть.

Программа Kurs реализует запросы к информационной базе, содержащей сведения о «Киноиндустрии», которые хранятся на момент выполнения в памяти ЭВМ. Сведения в память ЭВМ заносятся из входных файлов strstd. dat, actors.dat.

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

6.2 Функциональное назначение.

Программа Kurs предназначена для реализации запросов к информационной базе. Она не предусматривает редактирования существующих и ввод новых данных. Ввод новых данных производится путем изменения входных файлов в любом текстовом редакторе. Для работы программы требуются следующие устройства:

накопитель на гибких или жестких магнитных дисках;

свободная оперативная память не менее 200 Кб;

дисплей;

клавиатура.

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

6.3 Описание информации.

Входные данные поступают из входных файлов «strstd.dat» и «actors.dat».

Файл «actors.dat» имеет следующую структуру:

Название фильма Жанр фильма Бюджет Время выхода в прокат Название спонсора Количество вложенных средств Прибыль ФИО актера Гонорар Файл «strstd.dat» состоит из нескольких следующих структур:

Название страны Столица Название студии Место съемок При работе программы выводится меню, описанное в п. 4.2.

Перечень сообщений используемых в работе программы при запросах представлен на рис. 4.2−4.7 в пункте 4.2.

Перечень сообщений используемых в работе программы представлен в таблице 6.1.

Таблица 6.1. Сообщения.

Текст сообщения.

Содержание сообщения.

Действие.

Введите название страны.

Требуется ввести название страны для выполнения запроса.

Введите название страны для выполнения запроса.

Введите название студии.

Требуется название студии для выполнения запроса.

Введите название студии для выполнения запроса.

Введите ФИО актера.

Требуется ввести ФИО актера для выполнения запроса.

Введите ФИО актера для выполнения запроса.

Введите название фильма.

Требуется ввести название фильма для выполнения запроса.

Введите название фильма для выполнения запроса.

Страна не найдена.

Необходимой по запросу страны не найдено.

Никаких действий предпринимать не нужно, можно снова зайти в нужный запрос и изменить входные данные.

Студия не найдена.

Необходимой по запросу студии не найдено.

Никаких действий предпринимать не нужно, можно снова зайти в нужный запрос и изменить входные данные.

Фильм не найден.

Необходимого по запросу фильма не найдено.

Никаких действий предпринимать не нужно, можно снова зайти в нужный запрос и изменить входные данные.

Актер не найден.

Необходимого по запросу актера не найдено.

Никаких действий предпринимать не нужно, можно снова зайти в нужный запрос и изменить входные данные.

6.4 Описание логики программы.

Алгоритм основной программы приведен рис. 6.1.

Рис. 6.1. Схема основной программы.

6.5 Используемые подпрограммы.

Программа Kurs использует следующие подпрограммы:

procedure Openf осуществляет чтение данных из файла и заносит данные в оперативную память.

procedure zapros1 осуществляет выполнение 1-ого запроса.

procedure zapros2 осуществляет выполнение 2-ого запроса.

procedure zapros3 осуществляет выполнение 3-его запроса.

procedure zapros4 осуществляет выполнение 4-ого запроса.

procedure zapros5 осуществляет выполнение 5-ого запроса.

procedure zapros6 осуществляет выполнение 6-ого запроса.

procedure zapros7 осуществляет выполнение 7-ого запроса.

procedure zapros8 осуществляет выполнение 8-ого запроса.

7. ОПИСАНИЕ ПОДПРОГРАММЫ zapros1.

7.1 Вводная часть.

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

7.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 1.

7.3 Описание информации.

Входные данные:.

Название страны, студии.

Выходные данные:.

Список фильмов.

7.4 Описание логики.

Логика подпрограммы zapros1 представлена на рис. 7.1.

Рис. 7.1. Логика подпрограммы zapros1.

8. ОПИСАНИЕ ПОДПРОГРАММЫ zapros2.

8.1 Вводная часть.

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

8.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 2.

8.3 Описание информации.

Входные данные:.

Название студии, фильма.

Выходные данные:.

Список актеров.

8.4 Описание логики.

Логика подпрограммы zapros2 представлена на рис. 8.1.

Рис. 8.1. Логика подпрограммы zapros2.

9. ОПИСАНИЕ ПОДПРОГРАММЫ zapros3.

9.1 Вводная часть.

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

9.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 3.

9.3 Описание информации.

Входные данные:.

Название страны, студии, фильма.

Выходные данные:.

Список актеров.

9.4 Описание логики.

Логика подпрограммы zapros3 представлена на рис. 9.1.

Рис. 9.1. Логика подпрограммы zapros3.

10. ОПИСАНИЕ ПОДПРОГРАММЫ zapros4.

10.1 Вводная часть.

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

10.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 4.

10.3 Описание информации.

Входные данные:.

Название студии, фильма.

Выходные данные:.

Список спонсоров.

10.4 Описание логики.

Логика подпрограммы Z4 представлена на рис. 10.1.

Рис. 10.1. Cхема подпрограммы zapros4.

11. ОПИСАНИЕ ПОДПРОГРАММЫ zapros5.

11.1 Вводная часть.

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

11.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 5.

11.3 Описание информации.

Входные данные:.

Название страны.

Выходные данные:.

Список актеров, студий.

11.4 Описание логики.

Логика подпрограммы zapros5 представлена на рис 11.1.

Рис. 11.1. Схема подпрограммы zapros5.

12. ОПИСАНИЕ ПОДПРОГРАММЫ zapros6.

12.1 Вводная часть.

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

12.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 6.

12.3 Описание информации.

Входные данные:.

ФИО актера.

Выходные данные:.

Фильм, в котором он снимался.

12.4 Описание логики.

Логика подпрограммы zapros6 представлена на рис 12.1.

Рис. 12.1. Схема подпрограммы zapros6.

13. ОПИСАНИЕ ПОДПРОГРАММЫ zapros7.

13.1 Вводная часть.

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

13.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 7.

13.3 Описание информации.

Входные данные:.

Название фильма.

Выходные данные:.

Студия и страна, где он снимался.

13.4 Описание логики.

Логика подпрограммы zapros7 представлена на рис 13.1.

Рис. 13.1. Схема подпрограммы zapros7.

14. ОПИСАНИЕ ПОДПРОГРАММЫ zapros8.

14.1 Вводная часть.

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

14.2 Функциональное назначение.

Подпрограмма предназначена для реализации запроса 8.

14.3 Описание информации.

Входные данные:.

ФИО актера.

Выходные данные:.

Студия, где он снимался.

14.4 Описание логики.

Логика подпрограммы zapros8 представлена на рис 14.1.

Рис. 14.1. Логика подпрограммы zapros8.

15. ОПИСАНИЕ ПОДПРОГРАММЫ Openf.

15.1 Вводная часть.

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

15.2 Функциональное назначение.

Подпрограмма предназначена для загрузки базы.

15.3 Описание информации.

Входные данные:.

Файлы, содержащие информацию о студиях и странах (strstd.dat), а также о фильмах, актерах и спонсорах (actors.dat).

Выходные данные:.

Нет.

15.4 Описание логики.

Логика подпрограммы Openf представлена на рис 15.1.

Рис. 15.1.

16. ТЕСТИРОВАНИЕ ПРОГРАММЫ.

16.1 Разработка плана тестирования и набора тестов.

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

Запрос 1.

Введено:

Австралия.

Touchstone pictures.

Ожидается:.

Аферисты Комедия.

Семь Триллер

Запрос 2.

Введено:

Warner Brothers.

Восставшие из ада.

Ожидается:.

Джессика Симпсон.

Уорни Гамбл.

Запрос 3.

Введено:

США.

Kolumbia pictures.

Терминатор

Ожидается :.

Арнольд Шварцнеггер

Запрос 4.

Введено:

Warner Brothers.

Восставшие из ада.

Ожидается:.

Greit.

Запрос 5.

Введено:

США.

Ожидается:.

Columbia pictures.

Hollywood.

Trektil.

Preston.

Арнольд Шварценеггер

Стивен Стрейт.

Запрос 6.

Введено:

Сэмюэл Л.Джексон.

Ожидается :.

Семь Триллер

Запрос 7.

Введено:

Аферисты.

Ожидается:.

Touchstone pictures.

Ronnu.

Австралия Канберра Запрос 8.

Введено:

Сэмюэл Л.Джексон.

Ожидается:.

Touchstone pictures.

Ronnu.

16.2 Результаты тестирования.

Распечатаем полные результаты, полученные по каждому из запросов.

Запрос 1.

введите название страны Австралия введите название студии.

Touchstone pictures.

Список фильмов Аферисты Комедия.

Семь Триллер

Запрос 2.

введите название студии.

Warner Brothers.

введите название фильма Восставшие из ада Список актеров Джессика Симпсон.

Уорни Гамбл.

Запрос 3.

введите название страны США введите название студии.

Columbia pictures.

введите название фильма Терминатор Список актеров Арнольд Шварценеггер

Запрос 4.

введите название студии.

Warner Brothers.

введите название фильма Восставшие из ада.

Greit.

Запрос 5.

введите название страны США Список студий.

Columbia pictures.

Hollywood.

Trektil.

Preston.

Список актеров Арнольд Шварценеггер

Стивен Стрейт.

Запрос 6.

введите ФИО актера Сэмюэл Л. Джексон актер снимался в данном фильме Семь Триллер

Запрос 7.

введите фильм Аферисты фильм снимался на данной студии.

Touchstone pictures.

Ronnu.

фильм снимался в данной стране Австралия Канберра Запрос 8.

введите ФИО актера Сэмюэл Л. Джексон актер снимался на данной студии.

Touchstone pictures.

Ronnu.

ЗАКЛЮЧЕНИЕ.

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

Методология проектирования опиралась на курс «Структуры и алгоритмы обработки данных в ЭВМ» .

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

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

программа спецификация руководство пользователь.

1. Методические указания для самостоятельной работы студентов по дисциплине «Структуры и алгоритмы обработки данных в ЭВМ» Ч. 1 / Ижевск. гос. техн. университет. Сост. М. А. Сенилов, Ижевск, 1998. 23 с.

2. Лекции по дисциплине «Структуры и алгоритмы обработки данных».

ПРИЛОЖЕНИЕ 1.

Текст программы.

program kurs;

uses crt;

type tsponsor=^SPONSOR;

SPONSOR=record.

NAZV:string;

KOLSR:integer;

PRIBUL:integer;

next:tsponsor;

end;

tactor=^ACTOR;

ACTOR=record.

FIO:string;

GONORAR:integer;

Next:tactor;

end;

tfilm=^FILM;

FILM=record.

NAZV:string;

ZHANR:string;

BUDGET:integer;

TIMEV:integer;

Next:tfilm;

Ukaz_sp:tsponsor;

Ukaz_ac:tactor;

end;

tstudia=^STUDIA;

STUDIA=record.

NAZV:string;

MESTOS:string;

Next:tstudia;

Ukaz_f:tfilm;

end;

tstrana=^STRANA;

STRANA=record.

NAZV:string;

STOLICA:string;

Next:tstrana;

Ukaz_st:tstudia;

end;

var f, f2: text;

key:char;

fs, str: tstrana;

fst, std: tstudia;

fsp, sp: tsponsor;

ff, fil: tfilm;

fa, ac: tactor;

procedure Openf;

begin.

assign (f,'D:strstd.dat');

reset (f);

assign (f2,'D:actors.dat');

reset (f2);

str:=nil;

std:=nil;

if (not eof (f)) then.

begin.

new (fs);

new (fst);

str:=fs;

std:=fst;

readln (f, fs^.NAZV);

readln (f, fs^.STOLICA);

readln (f, fst^.NAZV);

readln (f, fst^.MESTOS);

fs^.ukaz_st:=fst;

while not eof (f) do.

begin.

new (fs^.next);

fs:=fs^.next;

readln (f, fs^.NAZV);

readln (f, fs^.STOLICA);

new (fst^.next);

fst:=fst^.next;

readln (f, fst^.NAZV);

readln (f, fst^.MESTOS);

end;

fs^.ukaz_st:=fst;

fs^.next:=nil;

fst^.next:=nil;

end;

sp:=nil;

fil:=nil;

ac:=nil;

if (not eof (f2)) then.

begin.

new (fsp);

new (ff);

new (fa);

sp:=fsp;

fil:=ff;

ac:=fa;

readln (f2,ff^.NAZV);

readln (f2,ff^.ZHANR);

readln (f2,ff^.BUDGET);

readln (f2,ff^. TIMEV);

readln (f2,fsp^.NAZV);

readln (f2,fsp^.KOLSR);

readln (f2,fsp^.PRIBUL);

readln (f2,fa^.FIO);

readln (f2,fa^.GONORAR);

ff^.ukaz_sp:=fsp;

ff^.ukaz_ac:=fa;

fst^.ukaz_f:=ff;

while not eof (f2) do.

begin.

new (ff^.next);

ff:=ff^.next;

readln (f2,ff^.NAZV);

readln (f2,ff^.ZHANR);

readln (f2,ff^.BUDGET);

readln (f2,ff^. TIMEV);

new (fsp^.next);

fsp:=fsp^.next;

readln (f2,fsp^.NAZV);

readln (f2,fsp^.KOLSR);

readln (f2,fsp^.PRIBUL);

new (fa^.next);

fa:=fa^.next;

readln (f2,fa^.FIO);

readln (f2,fa^.GONORAR);

end;

ff^.ukaz_sp:=fsp;

ff^.ukaz_ac:=fa;

fst^.ukaz_f:=ff;

ff^.next:=nil;

fsp^.next:=nil;

fa^.next:=nil;

end;

close (f);

close (f2);

end;{Openf}.

procedure menu;

begin.

Openf;

writeln ('=МЕНЮ=',#10#13,.

'1. Выдать список ФИЛЬМОВ, вышедших на данной СТУДИИ в данной стране',#10#13,.

'2. Для данного ФИЛЬМА и данной СТУДИИ привести список АКТЕРОВ',#10#13,.

'3. Выдать сведения об АКТЕРАХ данной СТРАНЫ, снимавшихся в данном ФИЛЬМЕ данной СТУДИИ',#10#13,.

'4. Указать список всех СПОНСОРОВ, вложивших деньги в данный ФИЛЬМ данной СТУДИИ ',#10#13,.

'5. Для указанной СТРАНЫ привести список СТУДИЙ и АКТЕРОВ',#10#13,.

'6. Выдать ФИЛЬМ, где участвовал данный АКТЕР',#10#13,.

'7. Для указанного ФИЛЬМА выдать СТРАНУ и СТУДИЮ, где он снимался',#10#13,.

'8. Для данного АКТЕРА указать СТУДИЮ, где он снимался',#10#13,.

'Esc. Выход');

end;{menu}.

procedure zapros1;

var nstr, nst: string;

begin.

write ('введите название страны');

readln (nstr);

while str^.NAZV<>nstr do.

begin.

str:=str^.next;

if str=nil then.

begin.

writeln ('страна не найдена');

break;

end;

end;

write ('Введите название студии ');

readln (nst);

while std^.NAZV<>nst do.

begin.

std:=std^.next;

if std=nil then.

begin.

writeln ('Студия не найдена');

break;

end;

end;

while std^.next^.ukaz_f<>std^.ukaz_f do.

begin.

writeln ('список фильмов:');

writeln (fil^.NAZV, fil^.ZHANR, fil^.BUDGET, fil^.TIMEV);

std^.ukaz_f:=std^.ukaz_f^.next;

end;

end;{zapros1}.

procedure zapros2;

var nst, nf: string;

begin.

write ('введите название студии');

readln (nst);

while std^.NAZV<>nst do.

begin.

std:=std^.next;

if std=nil then.

begin.

writeln ('студия не найдена');

break;

end;

end;

write ('Введите название фильма ');

readln (nf);

while fil^.NAZV<>nf do.

begin.

fil:=fil^.next;

if fil=nil then.

begin.

writeln ('фильм не найден');

break;

end;

end;

while fil^.next^.ukaz_ac<>fil^.ukaz_ac do.

begin.

writeln ('список актеров');

writeln (ac^.FIO, ac^.GONORAR);

fil^.ukaz_ac:=fil^.ukaz_ac^.next;

end;

end;{zapros2}.

procedure zapros3;

var nstr, nst, nf: string;

begin.

write ('Введите название страны ');

readln (nstr);

while str^.NAZV<>nstr do.

begin.

str:=str^.next;

if str=nil then.

begin.

writeln ('страна не найдена');

break;

end;

end;

write ('Введите название студии ');

readln (nst);

while std^.NAZV<>nst do.

begin.

std:=std^.next;

if std=nil then.

begin.

writeln ('Студия не найдена');

break;

end;

end;

write ('Введите фильм ');

readln (nf);

while fil<>nil do.

begin.

if fil^.NAZV=nf then.

begin.

repeat.

writeln ('список актеров');

writeln (ac^.FIO, ac^.GONORAR);

fil^.ukaz_ac:=fil^.ukaz_ac^.next;

until fil^.next^.ukaz_ac=fil^.ukaz_ac;

end.

else.

fil:=fil^.next;

end;

end;{zapros3}.

procedure zapros4;

var nst, nf: string;

begin.

write ('введите название студии');

readln (nst);

while std^.NAZV<>nst do.

begin.

std:=std^.next;

if std=nil then.

begin.

writeln ('студия не найдена');

break;

end;

end;

write ('Введите название фильма ');

readln (nf);

while fil^.NAZV<>nf do.

begin.

fil:=fil^.next;

if fil=nil then.

begin.

writeln ('Студия не найдена');

break;

end;

end;

while fil^.next^.ukaz_sp<>fil^.ukaz_sp do.

begin.

writeln (sp^.NAZV, sp^.KOLSR, sp^.PRIBUL);

fil^.ukaz_sp:=fil^.ukaz_sp^.next;

end;

end;{zapros4}.

procedure zapros5;

var nstr: string;

s:tstudia;

s2:tfilm;

begin.

write ('введите название страны');

readln (nstr);

while str^.NAZV<>nstr do.

begin.

str:=str^.next;

if str=nil then.

begin.

writeln ('страна не найдена');

break;

end;

end;

while str^.next^.ukaz_st<>str^.ukaz_st do.

begin.

writeln ('список студий:');

writeln (std^.NAZV, std^.MESTOS);

str^.ukaz_st:=str^.ukaz_st^.next;

end;

s:=str^.ukaz_st;

s2:=s^.ukaz_f;

while (str^.next^.ukaz_st<>s) and (s^.next^.ukaz_f<>s2) do.

begin.

while s2^.next^.ukaz_ac<> s2^.ukaz_ac do.

begin.

writeln ('список актеров:');

writeln (ac^.FIO, ac^.GONORAR);

s2^.ukaz_ac:=s2^.ukaz_ac^.next;

end;

end;

end;{zapros5}.

procedure zapros6;

var na: string;

begin.

write ('Введите ФИО актера ');

readln (na);

while fil^.ukaz_ac^.FIO<>na do.

begin.

fil^.ukaz_ac:=fil^.ukaz_ac^.next;

if fil^.ukaz_ac=nil then.

begin.

writeln ('актер не найден');

break;

end;

end;

writeln ('актер снимался в данном фильме: ');

writeln (fil^.NAZV, fil^.ZHANR, fil^.BUDGET, fil^.TIMEV);

end;{zapros6}.

procedure zapros7;

var nf: string;

begin.

write ('Введите фильм ');

readln (nf);

while fil^.NAZV<>nf do.

begin.

fil:=fil^.next;

if fil=nil then.

begin.

writeln ('фильм не найден');

break;

end;

end;

while std^.next^.ukaz_f<>std^.ukaz_f do.

begin.

writeln ('фильм снимался на данной студии: ');

writeln (std^.NAZV, std^.MESTOS);

std^.ukaz_f:=std^.ukaz_f^.next;

end;

while str^.next^.ukaz_st<>str^.ukaz_st do.

begin.

writeln ('фильм снимался в данной стране: ');

writeln (str^.NAZV, str^.STOLICA);

str^.ukaz_st:=str^.ukaz_st^.next;

end;

end;{zapros7}.

procedure zapros8;

var na: string;

begin.

write ('введите ФИО актера');

readln (na);

while ac^.FIO<>na do.

begin.

ac:=ac^.next;

if ac=nil then.

begin.

writeln ('актер не найден');

break;

end;

end;

while fil^.next^.ukaz_ac<>fil^.ukaz_ac do.

fil^.ukaz_ac:=fil^.ukaz_ac^.next;

while std^.next^.ukaz_f<>std^.ukaz_f do.

begin.

writeln ('актер снимался на данной студии: ');

writeln (std^.NAZV, std^.MESTOS);

std^.ukaz_f:=std^.ukaz_f^.next;

end;

end;{zapros8}.

begin.

repeat.

clrscr;

menu;

key:=readkey;

case key of.

#49:begin clrscr; zapros1; readkey; end;

#50:begin clrscr; zapros2; readkey; end;

#51:begin clrscr; zapros3; readkey; end;

#52:begin clrscr; zapros4; readkey; end;

#53:begin clrscr; zapros5; readkey; end;

#54:begin clrscr; zapros6; readkey; end;

#55:begin clrscr; zapros7; readkey; end;

#56:begin clrscr; zapros8; readkey; end;

end;

until key=#27;

end.

ПРИЛОЖЕНИЕ 2.

Тексты входных файлов Файл strstd.dat.

Австралия Канберра.

Touchstone pictures.

Ronnu.

Канада Оттава.

Warner Brothers.

Swiditch.

США Вашингтон.

Columbia pictures.

Hollywood.

США Вашингтон.

Trektil.

Preston.

Файл actors.dat.

Аферисты Комедия.

Nike.

Мастер Пи.

Аферисты Комедия.

Dresscod.

Крис Рок.

Аферисты Комедия.

Coca-Cola.

Мартин Лоуренс.

Семь Триллер

Heineken.

Сэмюэл Л.Джексон.

Семь Триллер

Heineken.

Бред Питт.

Восставшие из ада Ужасы.

Greit.

Джессика Симпсон.

Восставшие из ада Ужасы.

Greit.

Уорни Гамбл.

Терминатор Фантастика.

Stiks.

Арнольд Шварценеггер

10 000 лет до нашей эры Фантастика.

Jertis.

Стивен Стрейт.

ПРИЛОЖЕНИЕ 3.

РУКОВОДСТВО ПРОГРАММИСТА.

1. Назначение программы Данная программа написана на языке программирования Turbo Pascal 7.0, она состоит из одного модуля: Kurs.pas.

2. Условия применения программы Для работы с программой необходимо:

накопитель на жестких или гибких магнитных дисках компьютер, совместимый с IBM PC.

монитор не ниже MGA.

свободная оперативная память не менее 200 Кб.

MS-DOS 3.0 или выше.

3. Обращение к программе Для запуска программы необходимо откомпилировать программу kurs. pas, набрать в командной строке kurs. exe и нажать клавишу ENTER.

4. Входные и выходные данные Входные данные поступают из входных файлов «strstd.dat» и «actors.dat».

Файл «actors.dat» имеет следующую структуру:

Название фильма Жанр фильма Бюджет Время выхода в прокат Название спонсора Количество вложенных средств Прибыль ФИО актера Гонорар Файл «strstd.dat» состоит из нескольких следующих структур:

Название страны Столица Название студии Место съемок.

5. Сообщения Перед оператором могут возникнуть следующие сообщения:

Введите название студии:.

Введите название фильма:.

Введите название страны:.

Введите ФИО актера:.

На эти сообщения нужно вводить данные, соответствующие запросам.

Если по какому-либо из запросов не будет ничего не найдено, то выведется сообщение об ошибке:

Страна не найдена.

Студия не найдена.

Фильм не найден.

Актер не найден..

6. Настройка программы Данная программа не требует никаких действий для настройки ее на состав технических средств.

ПРИЛОЖЕНИЕ 4.

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ.

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

1. Выдать список ФИЛЬМОВ, вышедших на данной СТУДИИ в данной СТРАНЕ.

2. Для данного (или указанного) ФИЛЬМА и данной СТУДИИ привести список АКТЕРОВ.

3. Выдать сведения об АКТЕРАХ данной СТРАНЫ, снимавшихся в данном ФИЛЬМЕ данной СТУДИИ.

4. Указать список всех СПОНСОРОВ, вложивших деньги в данный ФИЛЬМ данной СТУДИИ.

5. Для каждой или указанной СТРАНЫ привести список СТУДИЙ и АКТЕРОВ.

6. Выдать ФИЛЬМ, где участвовал данный АКТЕР.

7. Для указанного ФИЛЬМА выдать СТРАНУ и СТУДИЮ, где он снимался.

8. Для данного АКТЕРА указать СТУДИЮ, где он снимался.

2. Условия применения программы Для работы с программой необходимо:

накопитель на жестких или гибких магнитных дисках компьютер, совместимый с IBM PC.

монитор не ниже MGA.

свободная оперативная память не менее 200 Кб.

MS-DOS 3.0 или выше.

3. Пуск программы Для запуска программы необходимо набрать в командной строке kurs и нажать клавишу .

4. Сообщения оператору Перед оператором могут возникнуть следующие сообщения:

Введите название студии:.

Введите название фильма:.

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