Задание на выполнение
Номер варианта задания выбирается по последней M и предпоследней N цифрам номера студенческого билета. 4.2.1 В СУБД Access создать базу данных, состоящую их трех связанных таблиц – «Абоненты», «Заказы» и «Услуги». При этом исходными данными являются коды абонентов с их реквизитами, коды категорий абонентов, виды и тарифы услуг, на которые имеет право абонент заданной сети, а также время и продолжительность разговора или услуги. В таблицах 4.1 и 4.2 приведены исходные данные, в зависимости от номера варианта. Таблица 4.1.
Таблица 4.2
Продолжение табл. 4.2
ТарифТ – стоимость в рублях одной полной минуты разговора для абонентов Самарской области с сентября 2012 года в интервале времени Т (ТарифД – время с 08:00 до 23:59, ТарифН – время с 00:00 до 07:59). 4.2.2 Таблица «Абоненты» должна отражать список ваших товарищей, родственников, знакомых, сокурсников/сослуживцев (порядка 5-7 человек), а так же организаций, с которыми вы имеете деловые/ производственные телефонные переговоры (порядка 3). В таблице предусмотреть поля: КодАбонента, Фамилия, Имя, Отчество, Адрес, Телефон, Категория. Тип данных поля КодАбонента – Числовой, остальных полей – Текстовый. Абоненты могут принадлежать разным телефонным службам. Код абонента – его порядковый номер в данной таблице. Категория Абонента – закодированные отношения с абонентом (Р-родственник, Д-друг, П-партнер, З-знакомый, С-сокурсник, О-особый, Л-лучшие друзья и т.п). В качестве ключевого поля задать поле Код Абонента. 4.2.3. Таблица «Услуги» должна отражать перечень услуг (10 записей), заданных вариантом (см. табл.4.1) и содержать поля: КодУслуги, НаименованиеУслуги, ТарифД, ТарифН (согласно табл.4.1 и 4.2). Тип данных полей ТарифТ установить Денежный, а КодУслуги и НаименованиеУслуги – Текстовый. В качестве ключевого поля задать поле КодУслуги. 4.2.4. Таблица «Заказы» должна содержать для каждого закодированного абонента некоторые виды услуг из таблицы «Услуги» за период в 1 неделю, предшествующую моменту выполнения задания. В таблице предусмотреть поля: КодАбонента, КодУслуги, Дата, Начало, Окончание. Тип данных полей Дата, Начало, Окончание установить Дата/время (формат поля Дата – краткий формат даты, формат полей Начало, Окончание – длинный формат времени). В качестве ключевых полей задать поля КодАбонента и КодУслуги. При заполнении таблицы «Заказы» по каждому из абонентов предусмотреть: - разные виды услуг (порядка 2-3 видов) из таблицы «Услуги»; - произвольные даты предоставления услуг за выбранную неделю (в формате DD.MM.YY); - произвольное время начала разговора в формате HH:MM:SS (включая ночное и дневное время предоставления услуг); - произвольное время окончания разговора в формате HH:MM:SS, но с учетом реальной длительности оказания услуги. При этом длительность услуги в основном не должна быть равна целому числу минут. Если в варианте присутствует SMS сообщение, то время передачи сообщения принять за 1мин. 4.2.5. Связать таблицы между собой по соответствующим ключевым полям. 4.2.6. Отсортировать таблицу «Абоненты» в алфавитном порядке. 4.2.7. Используя фильтр по варианту N, в таблице «Заказы» отобразить только записи заказов, указанных в табл. 4.3. Таблица 4.3
4.2.8. Рассчитать стоимость оказанных услуг по всем заказам за заданный период времени. Для этого, сначала подготовить базовый запрос – «ЗапрБазовый», в котором рассчитать длительность разговора по каждому пункту заказов. Запрос готовиться на основе таблицы «Заказы», и должен содержать поля: КодАбонента, КодУслуги, Дата, Начало, Окончание предоставляемой услуги. В запросе создать вычисляемые поля Часы, Минуты, Секунды, ДлитРазговора, где с помощью стандартных функций вычислить количество часов (функция Hour()) в формате HH, минут (функция Minute()) в формате MM, секунд (функция Second()) в формате SS и продолжительность разговора (функция TimeSerial()) в формате времени HH:MM:SS. Кроме того, создать поле Длит/мин, в которое ввести выражение [ДлитРазговора]*24*60, пересчитывающее формат времени HH:MM:SS в десятичный эквивалент – минуты, т.к. тарифы оплаты за предоставляемые услуги заданы в рублях за 1 полную минуту, а реальный разговор, как правило, длится несколько минут с секундами. С помощью функции Round() округлить выражение в поле Длит/ мин с точностью до 2 знаков после запятой. Отсортироватьзапрос в порядке возрастания продолжительности (Длин/мин) предоставляемых услуг. На основе базового запроса и таблицы «Услуги» создать новый запрос – «ЗапрСтоимость» для расчета стоимости услуг, предоставляемых абоненту заданной мобильной сети за истекшую неделю. Этот запрос должен содержать в своем составе поля КодАбонента, КодУслуги, Дата, Начало, Длит/мин из базового запроса и поля Тариф_Д, Тариф_Н из таблицы «Услуги». В запросе создать вычисляемое поле Стоимость, в которое ввести выражение для расчета стоимости предоставляемых услуг с учетом длительности разговора и тарифов на предоставляемые услуги. Для построения выражения использовать функцию IIf(<условие>, <выражение1>, <выражение 2>). Установить формат поля Стоимость – Денежный. Примечание 1: при создании запроса на базе уже существующих таблицы и запроса необходимо в режиме конструктора нового запроса («ЗапрСтоимость») организовать связи между таблицей и существующим запросом по одноименным полям (также как создаются межтабличные связи). Отсортировать «ЗапрСтоимость» по дате и по длительности в порядке возрастания их значений. 4.2.9. В соответствии с номером варианта M (табл. 4.4) подготовить запросы на отбор соответствующей информации из базы данных за истекшую неделю. Сохранить запросы под именами ЗапрЗадача1, …, ЗапрЗадача4. Таблица 4.4
Примечание 2: в первой задаче каждого варианта дни недели представлять конкретными датами на предоставляемые услуги. 4.2.10. С помощью Мастера форм создать форму «Абоненты» – для четных M и форму «Услуги» – для нечетных M. 4.2.11. Построить диаграмму стоимости услуг абонентов Вашей базы данных. Для четных вариантов M вид диаграммы – кольцевая, а для нечетных M – круговая. 4.2.12. Согласно варианту N построить временную диаграмму, отражающую зависимость показателя, заданного в табл. 4.5, за истекшую неделю. На диаграмме отобразить линию тренда, а так же закон и точность аппроксимации. Табл. 4.5
Примечание 3: варианты рассматриваются относительно заданной недели. 4.2.13. Подготовить отчет об услугах, предоставленных абоненту мобильной связи за текущую неделю в следующем виде: Отчет об услугах, предоставленных абоненту <Ваша Фамилия>:
К оплате: ХХХ,ХХр. Для этого сначала на основе таблицы «Абоненты» и запроса «ЗапрСтоимость» создать соответствующий запрос «ЗапрОтчет». В режиме конструктора между запросами «ЗапрБазовый» и «ЗапрСтоимость» создать связи по соответствующим полям (см. Примечание 1). В этом же запросе создать вычисляемое поле Ф И О, в которое внести выражение для объединения полей Фамилия, Имя, Отчество в одно поле. При объединении полей в выражении учесть, что фамилия должна быть представлена полностью, а имя и отчество с сокращением – только первые символы с точкой после сокращения имени и отчества (например, Иванов С. М.). Полученное поле Ф И О, согласно заданию,расположить на место второго столбца. Отсортировать запрос по полю Дата. Затем на основе созданного запроса создать требуемый отчет. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|