- •Пояснительная записка
- •Содержание
- •Введение
- •2. Выбор модели жизненного цикла
- •Разработка требований
- •Описание бизнес процесса
- •3.1.1 Бизнес требования
- •3.1.2.Факторы бизнес-риска
- •3.1.3. Масштабы и ограничения
- •3.1.4.Бизнес-контекст
- •Обзор аналогов
- •Моделирование требований
- •3.3.1. Описание предметной области
- •3.3.2. Входная информация задачи
- •3.3.3 Выходная информация задачи
- •Проектирование
- •Выбор архитектуры системы
- •Проектирование структуры системы
- •Проектирование логики работы
- •Проектирование интерфейса
- •Разработка программного кода
- •Верификация и аттестация.
- •Выбор методов верификации и аттестации
- •Инспектирование
- •Тестирование
- •Программная документация
- •Инструкция по установке
- •Инструкция пользователя
- •Заключение
- •Список источников информации
- •Приложение 1 Спецификация требований к по
- •1. Введение
- •2. Общее сведение
- •3. Функции системы
3. Функции системы
3.1 Программа может быть запущена и работать в одном окне. Функции обладают высоким приоритетом при разработке.
3.2 Высокий приоритет, функция позволяет внести пользователя в базу данных и перейти в работу самой программы.
3.3 Нажатие кнопки регистрации – регистрация пользователя
3.4 При регистрации должны быть заполнены все поля.
4. Требования к внешнему интерфейсу
4.1 Интерфейсы пользователя
Интерфейс состоит из окна со списком в котором перечислены все фильмы, имеющиеся в прокате, ценой на билеты и генерация свободных мест на выбранный сеанс.
Интерфейсы передачи информации
Для взаимодействия с пользователем используется база данных. Система предоставляет пользователю работу в среде и результат.
5. Другие нефункциональные требования
5.1 Требования к производительности
Время отклика баз данных должно быть минимальным. Требования к производительности с максимально возможной точностью будут доступны в следующих версиях данного документа.
5.2 Требования к безопасности
Пользователь не может изменить базу данных.
Приложение 2
Программный код
INSERT INTO Фильмы ( Название, Режиссер, Оператор, Жанр, Производство, Продолжительность, Стоимость, Кадр )
SELECT Forms![Перечень фильмов]!Name AS Выражение1, Forms![Перечень фильмов]!direct AS Выражение2, Forms![Перечень фильмов]!operator AS Выражение3, Forms![Перечень фильмов]!genre AS Выражение4, Forms![Перечень фильмов]!made AS Выражение5, Forms![Перечень фильмов]!last AS Выражение6, Forms![Перечень фильмов]!price AS Выражение7, Forms![Перечень фильмов]!кадр AS Выражение8;
SQL-код: INSERT INTO Призы ( Приз, Фильм )
SELECT всп2.Приз, Forms![Перечень фильмов]!Name AS Выражение1
FROM всп2;
INSERT INTO Роли ( Актер, Фильм )
SELECT всп.ФИО, Forms![Перечень фильмов]!Name AS Выражение1
FROM всп;
DELETE всп.ФИО FROMвсп;
(в "З1_всп2" вместо "всп" – "всп2")
DELETE Фильмы.Название
FROM Фильмы
WHERE (((Фильмы.Название)=[Forms]![Перечень фильмов]![Уд_ф]));
INSERT INTO Сеансы ( Кинотеатр, Фильм, Зал, Дата, Время, Цена, [Кол-во мест] )
SELECT Forms!Кинотеатры![к/т] AS Выражение1, Forms!Кинотеатры!Movie AS Выражение2, всп_сеансы.зал, всп_дни.[все дни], всп_сеансы.время, Round(((Round((Hour(всп_сеансы!время)+0.4)/4,0)/4)*(2-(Кинотеатры!Категория)*0.4)*(Фильмы!Стоимость/600))*(1+(всп_дни!выходные IsNotNull)/5)/10,0)*10 AS Выражение3, Залы.Вместимость
FROM всп_дни, Фильмы, Кинотеатры INNER JOIN (всп_сеансы INNER JOIN Залы ON всп_сеансы.зал = Залы.[№ зала]) ON Кинотеатры.Название = Залы.Кинотеатр
WHERE (((Залы.Кинотеатр)=[Forms]![Кинотеатры]![к/т]) AND ((всп_сеансы.дни)="все дни") AND ((Фильмы.Название)=[Forms]![Кинотеатры]![Movie]));
(В "З_С1" – вместо "все дни" – "выходные", в "З_С" – "будни")
INSERT INTO всп_дни( выходные, [все дни] )
SELECT Forms!Кинотеатры!Curdata AS Выражение1, Forms!Кинотеатры!Curdata AS Выражение2
FROM 1строка
WHERE (((Weekday([Forms]![Кинотеатры]![Curdata]))=1 Or (Weekday([Forms]![Кинотеатры]![Curdata]))=7));
( В d_2 вместо "выходные" – "будни" и вместо "=1", "=7" - "<>1", "<>7"
DELETE всп_сеансы.зал, всп_сеансы.дата AS Выражение1, всп_сеансы.время
FROM всп_сеансы;
DELETE всп_дни.выходные, всп_дни.будни, всп_дни.[все дни]
FROM всп_дни;
DELETE Сеансы.Фильм, Сеансы.Кинотеатр
FROM Сеансы
WHERE (((Сеансы.Фильм)=[Forms]![Кинотеатры]![DelMovie]) AND ((Сеансы.Кинотеатр)=[Forms]![Кинотеатры]![к/т]));
SELECT Сеансы.Фильм, Min(Сеансы.Дата) AS [Min-Дата], Max(Сеансы.Дата) AS [Max-Дата]
FROM Сеансы
WHERE (((Сеансы.Кинотеатр)=[Forms]![С_Репертуар]![к/т]))
GROUP BY Сеансы.Фильм;
SELECT Кинотеатры.Район, Кинотеатры.Адрес
FROM Кинотеатры
WHERE (((Кинотеатры.Название)=[Forms]![С_адрес]![к/т]));
SELECT Сеансы.Цена, Сеансы.[Кол-во мест], Сеансы.Кинотеатр, Сеансы.Зал, Сеансы.Дата, Сеансы.Время
FROM Сеансы
WHERE (((Сеансы.Кинотеатр)=[Forms]![С_сеансы]![к/т]) AND ((Сеансы.Зал)=[Forms]![С_сеансы]![зал]) AND ((Сеансы.Дата)=[Forms]![С_сеансы]![Дата]) AND ((Сеансы.Время)=[Forms]![С_сеансы]![Время]));
SELECT Фильмы.Жанр, Фильмы.Производство, Фильмы.Режиссер, Фильмы.Кадр
FROM Фильмы
WHERE (((Фильмы.Название)=[Forms]![С_фильмы]![фильм]));
SELECT Призы.Фильм
FROM Призы
GROUP BY Призы.Фильм;
SELECT Сеансы.Кинотеатр, Сеансы.Дата, Сеансы.Зал, Сеансы.Время
FROM Сеансы
WHERE (((Сеансы.Фильм)=[Forms]![С_награды]![Фильм]))
ORDER BY Сеансы.Кинотеатр, Сеансы.Дата, Сеансы.Зал, Сеансы.Время;
SELECT Призы.Приз
FROM Призы
WHERE (((Призы.Фильм)=[Forms]![С_награды]![Фильм]));
INSERT INTO Кинотеатры ( Название, Район, Адрес, Категория )
SELECT Forms![Перечень кинотеатров]!Название AS Выражение1, Forms![Перечень кинотеатров]!Район AS Выражение2, Forms![Перечень кинотеатров]!Адрес AS Выражение3, Forms![Перечень кинотеатров]!Категория AS Выражение4
FROM 1строка;
DELETE Кинотеатры.Название
FROM Кинотеатры
WHERE (((Кинотеатры.Название)=([Forms]![Перечень кинотеатров]![Уд к/т])));
DELETE Сеансы.Кинотеатр
FROM Сеансы
WHERE (((Сеансы.Кинотеатр)=[Forms]![Перечень кинотеатров]![Уд к/т]));
UPDATE Сеансы SET Сеансы.[Кол-во мест] = (Сеансы![Кол-во мест])-(Forms!Билеты!Поле14)
WHERE (((Сеансы.Кинотеатр)=[Forms]![Билеты]![к/т]) AND ((Сеансы.Зал)=[Forms]![Билеты]![зал]) AND ((Сеансы.Дата)=[Forms]![Билеты]![Дата]) AND ((Сеансы.Время)=[Forms]![Билеты]![Время]));
UPDATE Доход SET Доход.Доход = Доход!Доход+Forms!Билеты!Сум
WHERE (((Доход.Кинотеатр)=[Forms]![Билеты]![к/т]) AND ((Доход.День)=[Forms]![Билеты]![Дата]));
INSERT INTO всп_аф( время, день )
SELECT Сеансы.Время, "выходные" AS Выражение1
FROM Сеансы
WHERE (((Сеансы.Кинотеатр)=[Forms]![Кинотеатры]![к/т]) AND ((Сеансы.Фильм)=[Forms]![Кинотеатры]![PresMovie]) AND ((Weekday([Сеансы]![Дата]))=1 Or (Weekday([Сеансы]![Дата]))=7))
GROUP BY Сеансы.Время;
(В "з_афиша_будни" вместо "выходные" - "будни", "=1", "=7" – "<>1", "<>7")
SELECT Фильмы.Название, Фильмы.Режиссер, Фильмы.Оператор, Фильмы.Жанр, Фильмы.Производство, Фильмы.Продолжительность, First(Фильмы.Кадр) AS [First-Кадр], Min(Сеансы.Дата) AS [Min-Дата], Max(Сеансы.Дата) AS [Max-Дата], всп_аф.день, всп_аф.время, Сеансы.Кинотеатр
FROM всп_аф, всп_аф AS всп_аф_1, Фильмы INNER JOIN Сеансы ON Фильмы.Название = Сеансы.Фильм
WHERE (((Сеансы.Кинотеатр)=[Forms]![Кинотеатры]![к/т]) AND ((Сеансы.Фильм)=[Forms]![Кинотеатры]![PresMovie]))
GROUP BY Фильмы.Название, Фильмы.Режиссер, Фильмы.Оператор, Фильмы.Жанр, Фильмы.Производство, Фильмы.Продолжительность, всп_аф.день, всп_аф.время, Сеансы.Кинотеатр;
SELECT [кол-во фильмов].Жанр, Count([кол-во фильмов].Жанр) AS [Count-Жанр]
FROM [кол-во фильмов]
GROUP BY [кол-во фильмов].Жанр;
SELECT Кинотеатры.Район, Кинотеатры.Название, Count([кол-во фильмов].[Count-Название]) AS [Count-Count-Название], ср_цена.Название, ср_цена.[Avg-Цена], ([Sum-Доход])/[кол-во фильмов по к/т]![Count-Название] AS Выражение1
FROM [кол-во фильмов], [кол-во фильмов по к/т] INNER JOIN ((Кинотеатры INNER JOIN ср_цена ON Кинотеатры.Название = ср_цена.Кинотеатр) INNER JOIN дох ON Кинотеатры.Название = дох.Кинотеатр) ON [кол-во фильмов по к/т].Кинотеатр = Кинотеатры.Название
GROUP BY Кинотеатры.Район, Кинотеатры.Название, ср_цена.Название, ср_цена.[Avg-Цена], ([Sum-Доход])/[кол-во фильмов по к/т]![Count-Название];