Читайте также:
|
|
Постановка задачи
Используя возможности СУБД Access требуется рассчитать оплату услуг мобильной связи за период времени в одну неделю. Для этого необходимо:
· создать базу данных из связанных таблиц;
· подготовить запросы для вычисления стоимости телефонных разговоров абонентов по заданным услугам;
· создать формы для удобства работы с базой данных, построить диаграммы;
· вывести бланк квитанции за услуги мобильной связи.
№ зачетной книжки: 133071, М=1, N=7.
КодУслуги: 01И, 02И, 03В, 04В, 05И, 07М, 09М, 11М, 15Д, 16Д.
Сеть: Смартс
Выполнение работы
1. Создадим в СУБД Access базу данных, состоящую из трех таблиц – Абоненты, Заказы, Услуги.
Структура таблиц в режиме конструктора:
Рис 1. Структура таблицы Абоненты.
Рис 2. Структура таблицы Заказы.
Рис 3. Структура таблицы Услуги.
2. Заполним таблицу Абоненты списком товарищей, друзей, родственников и т.д.:
Рис 4. Таблица Абоненты.
3. Таблицу Услуги заполним в соответствии с вариантом:
Рис 5. Таблица Услуги.
4. Заполним таблицу заказы для каждого абонента не менее 2-х услуг за прошедшую неделю:
Рис 6. Таблица Заказы.
5. Свяжем таблицы между собой по соответствующим ключевым полям.
Рис. 7 Схема данных
6. Отсортируем таблицу Абоненты в алфавитном порядке.
Рис. 8 Таблица Абоненты (сортировка по полю Фамилия – возрастанию)
7. Применить фильтр к таблице Заказы в соответствии с вариантом: все исходящие и все междугородние.
Рис. 9 Установка условий фильтра.
После нажатия на кнопку ОК, в таблице отобразятся следующие данные:
Рис. 10 Результат применеия фильтра.
8. Рассчитаем стоимость оказанных услуг по всем заказм за заданный период. Для этого создадим запрос «ЗапрБазовый».
Для создания вычисляемых полей используем построитель выражений, в котором введем следующие условия для полей:
Часы: Hour([Заказы]![Окончание])-Hour([Заказы]![Начало])
Минуты: Minute([Заказы]![Окончание])-Minute([Заказы]![Начало])
Секунды: Second([Заказы]![Окончание])-Second([Заказы]![Начало])
ДлитРазговора:TimeSerial(Hour([Заказы]![Окончание])-Hour([Заказы]![Начало]);Minute([Заказы]![Окончание])-Minute([Заказы]![Начало]);Second([Заказы]![Окончание])-Second([Заказы]![Начало]))
Длит/мин: Round(TimeSerial(Hour([Заказы]![Окончание])-Hour([Заказы]![Начало]);Minute([Заказы]![Окончание])-Minute([Заказы]![Начало]);Second([Заказы]![Окончание])-Second([Заказы]![Начало]))*24*60;2)
Рис. 11 Запрос «ЗапрБазовый» в режиме конструктора
Рис. 12 Результат выполнения запроса «ЗапрБазовый»
Отсортируем запрос в порядке возрастания продолжительности предоставляемых услуг.
На основе «ЗапрБазовый» и таблицы Услуги создадим запрос «ЗапрСтоимость». Условие поля Стоимость:
Стоимость: FormatCurrency(IIf(Hour([ЗапрБазовый]![Начало])>0 And Hour([ЗапрБазовый]![Начало])<8;[ЗапрБазовый]![Длит/мин]*[Услуги]![ТарифН];[ЗапрБазовый]![Длит/мин]*[Услуги]![ТарифД]))
Рис. 13 Запрос «ЗапрСтоимость» в режиме конструктора
Рис. 14 Результат выполнения запроса «ЗапрСтоимость»
Отсортируем запрос по дате и по длительности в порядке возрастания.
Рис. 15 Результат сортировки запроса «ЗапрСтоимость»
9. Создадим запросы:
Список заказов за последние 2 дня недели:
Рис. 16 Режим конструктора
Рис. 17 Результат выполнения запроса
Список наименований услуг, даты их предоставления с категорией абонентов «друзья» и «знакомые».
Рис. 18 Режим конструктора
Рис. 19 Результат выполнения запроса
Фамилия абонента, разговор с которым был самым коротким.
Рис. 20 Режим конструктора
Рис. 21 Результат выполнения запроса
Количество услуг, оказанных категориям абонентов «сокурсники/сослуживцы»
Рис. 22 Режим конструктора
Рис. 23 Результат выполнения запроса
10. С помощью Мастера форм создадим форму «Услуги».
Рис. 24 Мастер форм (шаг 1)
Рис. 25 Мастер форм (шаг 2)
Рис. 26 Мастер форм (шаг 3)
Рис. 27 Мастер форм (шаг 4)
Рис. 28 Форма «Услуги»
11. Построим круговую диаграмму стоимости услуг абонентов с помощью мастера. Сначала создадим запрос ЗапросДляДиаграммы с полями: НаименованиеУслуги и Стоимость, используя поля таблицы Услуги и ЗапросСтоимость
Рис. 29 Работа Мастера диаграмм
Рис. 30 Круговая диаграмма
12. Аналогично, с помощью мастера построим временную диаграмму, отражающую ежедневное среднее значение длительности предоставляемых услуг. Также предварительно создав запрос «ЗапросДляВремДиагр». На диаграмме отобразим линию тренда (рис. 32).
Рис. 31. Запрос «ЗапросДляВремДиагр» в режиме конструктора.
Рис. 32 Временная диаграмма
13. Подготовим отчет об услугах, предоставленных абоненту за текущую неделю.
Для этого на основе таблицы Абоненты и «ЗапрСтоимость» создадим запрос «ЗапрОтчет». Условие для поля ФИО: [Абоненты]![Фамилия] & " " & Left([Абоненты]![Имя];1) & ". " & Left([Абоненты]![Отчество];1) & "."
Рис. 33 Запрос ЗапрОтчет в режиме конструктора.
На основе «ЗапрОтчет» создадим следующий отчет:
Рис. 34 Отчет об услугах
Дата добавления: 2015-08-26; просмотров: 75 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Современные концепции социального прогнозирования и проектирования | | | СЕКТЕРТАРИ СОЮЗА ПИСАТЕЛЕЙ РОССИИ |