Лабораторная работа № 18: Планирование перевозок
Составьте оптимальный план перевозок бетонных блоков с трех заводов на четыре стройки. Считаем, что за один рейс машина перевозит один бетонный блок. Задайте мощности заводов, потребности строек и расстояния между заводами и стройками. Холостые пробеги, состояние дорог и прочие факторы не учитываются, что не влияет на общие принципы постановки задачи и ее решения. Последовательность решения задачи:
Создайте таблицы:
- расстояния между заводами и стройками,
- потребности строек (строка),
- мощности заводов (столбец)
- первоначальный план перевозок - количество рейсов с i-го завода
на j-ю стройку:
Ячейка | C | D |
| E | F | I | J | ||||||
3 | Р а с с т о я н и я | ||||||||||||
4 | Стройка1 | Стройка2 | Стройка3 | Стройка4 | Планы заводов | ||||||||
5 | Завод 1 | 900 | |||||||||||
6 | Завод 2 | 200 | |||||||||||
7 | Завод 3 | 300 | |||||||||||
8 | Потребности строек | 100 | 300 | 600 | 400 | S (D8:I*)=S(J5:J7) | |||||||
9 | План перевозок (число рейсов с заводов на стройки) | Вывезено с заводов | |||||||||||
10 | Завод 1 | =CУММА(D9:I9) | |||||||||||
11 | Завод 2 | =CУММА(D10:I10) | |||||||||||
12 | Завод 3 | =CУММА(D11:I11) | |||||||||||
13 | Завезено на стройки | S(D10:
D12) | S(E10:
E12) | S(F10:
F12) | S(I10:
I12) | ||||||||
14 | Число рейсов * расстояния | Cуммарный | |||||||||||
15 | Завод 1 | =D10*D5 | пробег | ||||||||||
16 | Завод 2 | Скопируйте формулу на всю таблицу | всех машин | ||||||||||
17 | Завод 3 | =СУММА(D14:I16) | |||||||||||
Суммарная потребность всех строек должна совпадать с суммарной мощностью всех заводов. Скопируйте План перевозок и перепишите вручную суммарный пробег в другие ячейки, чтобы было с чем сравнивать оптимальный план.
- Запустите Сервис - Поиск решения и заполните окна появившейся экранной формы.
Целевая ячейка в данном случае - J17, в которой находится суммарный пробег машин со всех заводов на все стройки, и значение в которой надо сделать минимальным (или заданным, если надо “нагнать” план по километражу). Изменять можно ячейки D10 - I12 (план перевозок) при условии равенства мощностей заводов и потребностей строек, то есть ячеек J10 - J12 и D13 - I13 значениям, заданным в J5 - J7 и D8 - I8. Кроме того, следует задать условие, что количества рейсов - величины положительные и целые. Запустите выполнение программы (Выполнить).
5. Системы управления базами данных
База данных - это совокупность данных, упорядоченная для их использования в компьютерах, то есть набор данных, организованный по определенным правилам. В настоящее время наиболее популярны три типа структур БД: иерархические (пример - система файлов и папок Windows), сетевые (БД на гиперссылках, в том числе Всемирная Паутина World Wide Web) и реляционные базы данных (от английского relation - отношение, связь), состоящие из двумерных взаимосвязанных таблиц. Однородные данные в таблице (например, оценки студентов по одному из предметов - столбцы таблицы) образуют поля, а совокупность данных, относящихся к одному субъекту (например, фамилия и все оценки в ведомости - строка таблицы) называется записью. Для создания баз данных, их заполнения и корректировки, поиска и выборки необходимой информации и ее представления в наглядном виде используются системы управления базами данных - СУБД.
В состав СУБД входят пакеты программ, библиотеки, а также логическое описание структуры данных и их физическое описание (где и как записаны данные на магнитных носителях), создаваемые СУБД при инициации БД и ее структуры.
В пакет MS Office, разработанный фирмой Microsoft, наряду с Word и Excel входит СУБД Access. Ее характерное отличие от старых СУБД - полное использование возможностей Windows и хранение в одном файле БД нескольких таблиц, запросов, форм, отчетов, макросов и модулей. Запрос
позволяет выбрать из одной или нескольких таблиц необходимые данные, соответствующие заданным критериям, и расположить их в заданной последовательности. Форма позволяет расположить на экране данные, относящиеся к одной записи или строке запроса, в наиболее наглядном виде; при этом форму можно использовать для ввода или корректировки табличных данных. Записи можно просматривать через форму последовательно. Представление данных в отчете
аналогично форме, но в отчет включаются данные из всех записей, он разбит на страницы и полностью подготовлен для печати. Макрос представляет из себя набор команд, позволяющих объединить разрозненные операции обработки данных (аналогично ВАТ-файлу). Модули содержат программы на языке Visual Basic, которые могут разрабатываться пользователем для реализации нестандартных процедур при создании приложения.
Для таблицы может быть установлен Первичный ключ - поле или совокупность полей, значения которых однозначно идентифицируют записи, хранящиеся в таблице. Вторичными ключами называются конкретные параметры, по которым происходит поиск записей.
Таблицы в реляционной базе данных обычно связаны межу собой, причем обычно устанавливают связь поля первичного ключа одной из таблиц с соответствующими полями (не обязательно ключевыми) других таблиц (связь Один-ко-многим). Реляционные базы данных, к которым принадлежит Access, состоят из множества взаимосвязанных двумерных таблиц. Связи обеспечивают поиск информации, целостность данных и их каскадное обновление, то есть невозможность исправлять данные в зависимой таблице без их обновления в главной и возможность изменения данных во всех зависимых таблицах при их обновлении в главной таблице.
Лабораторная работа № 19: Создание таблицы БД Access
Создайте таблицу с анкетными данными, используя все типы переменных СУБД Access:
- Войдите в Access (обычно его ярлык имеет вид ключа), откройте одну из имеющихся в компьютере баз данных или создайте новую, поместив ее в свою папку;
- Инициируйте создание новой таблицы с помощью Конструктора таблиц (Таблицы - Создать - Конструктор);
- Создайте макет таблицы, задавая заголовки ее столбцов (“Имя поля”) и типы переменных в этих столбцах (полях). Для изучения различных типов переменных удобно использовать таблицу с анкетными данными. Можно рекомендовать следующий макет анкеты:
Имя поля |
Тип поля |
Примечания |
№ п/п |
Счетчик |
Заполняется автоматически |
Фамилия |
Текст |
Текст длиной не более 255 символов; ограничьте: 10 - 15 символов |
Имя |
Текст |
|
Дата рождения |
Дата |
Например 12-08-48 |
Зарплата |
Денежный |
Установите вид валюты |
Рост |
Числовой |
Установите тип переменной – целый (Integer, Long) или вещественный (Single, Double) |
Судимость |
Логический |
Переменная имеет два значения - ДА или НЕТ |
Характеристика |
МЕМО |
Длинный текст |
Портрет |
Объект OLE |
- Создайте первичный ключ - поле, данные в котором уникальны и однозначно идентифицируют запись - строку всех прочих данных. В данном случае используем в качестве первичного ключа поле “ № п/п ”. Для создания первичного ключа щелкните по кнопке с рисунком ключа на панели инструментов, а затем укажите на имя поля “Фамилия”;
- Закройте макет таблицы (Файл - Закрыть) с присвоением ему имени; если ключ не был создан, компьютер предложит вам его создать;
- Откройте таблицу с этим именем (Таблица - Открыть) и заполните 5-7 строк. Графу “Характеристика” можно заполнить абракадаброй, чтобы убедиться в возможности хранения длинного текста в поле типа МЕМО. В графу “Портрет” (объект OLE) вставьте изображение, пользуясь командами Вставка - Объект - Рисунок Paint. При этом запустится графический редактор Paint, в котором можно создать рисунок. Возврат в Access осуществляется командой Файл - Выход ... или переходом в Access в Панели задач.
Объекты в поля OLE можно вставлять копированием через Буфер обмена.
Попробуйте импортировать или связать таблицу из другой БД: Таблица – Создать – Импорт (или Связать), затем внимательно читайте тексты и устанавливайте параметры в диалоговых окнах.
Лабораторная работа № 20: Создание связей таблиц БД
Реляционные базы данных, к которым принадлежит Access, состоят из множества взаимосвязанных двумерных таблиц. Связи обеспечивают поиск информации с помощью Схемы данных, целостность данных и их каскадное обновление, то есть невозможность исправлять данные в зависимой таблице без их обновления в главной и возможность изменения данных во всех зависимых таблицах при их обновлении в главной таблице. Чтобы научиться устанавливать связи между таблицами, создайте еще две таблицы вида
Детали Цех
Номер |
Деталь |
Цена |
|
Рабочий |
Деталь |
Количество |
1 |
Болт |
3 |
2 |
3 |
46 |
|
2 |
Гайка |
3 |
3 |
5 |
56 |
|
3 |
Шайба |
2 |
4 |
6 |
4 |
|
4 |
Винт |
5 |
2 |
2 |
43 |
|
5 |
Гвоздь |
1 |
1 |
2 |
53 |
|
6 |
Шатун |
120 |
4 |
1 |
25 |
Воспользуйтесь командами Сервис - Схема данных - Добавить, чтобы поместить в рабочем окне шаблоны всех трех таблиц. Для установления связей поставьте курсор мыши на поле “№ п/п” таблицы “Анкета”, нажмите левую клавишу и протащите мышь на поле “Рабочий” таблицы “Цех”, а затем так же свяжите Номер из “Детали” с полем Детали таблицы “Цех”. Сохраните Схему данных, включив при этом режимы Сохранение целостности данных и Каскадное обновление. Вернитесь в режим таблиц и попробуйте изменять номера рабочих и деталей в зависимых таблицах, а затем в главной.
Лабораторные работы № 21, 22: Создание запросов
Создайте запрос на выборку данных из таблицы “Анкета” и их размещение в заданном порядке:
- Воспользуйтесь командами Запрос – Создать – Конструктор – Добавить и разместите на рабочем поле шаблон таблицы “Анкета”; Закрыть;
- Внесите в шаблон запроса заголовки полей, используя линейки прокрутки в верхней строке (“Поле”) или перетаскивая мышью заголовки полей из шаблона таблицы в шаблон запроса; включите Сортировку по одному из полей;
- Закройте запрос (Файл - Закрыть) с присвоением ему имени;
- Откройте запрос (Открыть) и просмотрите полученные результаты;










встаньте на свободное поле, вызовите Построитель выражений, щелкнув по его ярлыку в Меню, выберите поля (в запросе или таблицах – например, Рост умножьте на Зарплату) и арифметические операции, вставьте их в выражение кнопкой Вставить; замените заголовок Выражение1 на более осмысленный;
- Скопируйте таблицу “Анкета” и результаты запроса в текст Word и таблицу Excel.
Запрос по нескольким таблицам: Запрос - Создать – Конструктор, Добавить все таблицы, Закрыть; осуществите выборку по полям из всех таблиц, например, Фамилия, Деталь, Цена, Количество; с помощью Построителя выражений домножьте Цену на Количество.
Групповые операции: в запросе по всем таблицам удалите поле Детали и все условия (если есть), Вставка – Групповые операции, установите Группировку
по полю Цена*Количество; используйте функцию Sum (Сумма), затем Avg (Среднее), чтобы получить суммарный и средний доход на каждого рабочего; вычислите суммарный доход по каждой детали (запрос с полями Деталь, Цена*Количество).
Создайте запрос с полем Судимость и шестью полями Рост; в режиме Групповые операции установите для полей Рост различные функции: Sum (Сумма), Avg(Среднее), StDev (стандартное отклонение) , Min, Max, Count (количество).
Запрос с обновлением: установите определенную зарплату, например 9999, сотрудникам, у которых рост больше 180: создать запрос с полями Рост и Зарплата, установить Условие Рост >180, в Меню Запрос – С обновлением, в поле Зарплата Замена 9999; после выполнения запроса посмотрите таблицу Анкета. Поднимите в 2 раза зарплату рабочим, у которых доход больше определенной величины, например 1000: создайте запрос с обновлением с полями Фамилия, Зарплата и Sum(Цена*Количество), Условие Sum(Цена*Количество)>1000, Замена Построитель выражений Зарплата*2.
Лабораторная работа № 23: Создание формы
Эффективное средство для просмотра, изменения и добавления информации в базу данных - экранные формы. Форма позволяет последовательно представить на экране записи (строки) из таблицы, но расположить окна полей в любых местах экрана, сделать их любого размера и цвета, с различными рамками, надписями и рисунками. Форма особенно удобна для просмотра полей типов МЕМО
и Объект OLE, то есть длинных текстов и графики. Работа персонала с информационными компьютерными системами часто сводится к заполнению экранных форм, что позволяет избегать ошибок при вводе и не требует специальной подготовки сотрудников. Современные языки программирования: Visual Basic, Delphi, C++ отличаются от старых именно большим набором средств для создания экранных форм и размещения на них элементов управления - окон, кнопок, списков и т.д., а также позволяют работать со всеми типами переменных Access и обращаться к таблицам Excel и другим базам данных.
Создайте форму по таблице “Анкета” в режиме Мастера и преобразуйте в режиме Конструктора:
- Вызовите Мастер форм: Форма - Мастер, укажите эту таблицу в качестве источника данных, затем установите параметры в диалоговом режиме;
- просмотрите записи, затем вызывайте Конструктор (Вид – Конструктор); если не появится Панель инструментов – щелкните по клавише с молоточками;
- растяните мышью границы рабочего поля; щелкните по форме правой клавишей мыши и поменяйте ее цвет;
- Создайте заголовок формы: щелкните по букве А на панели инструментов, затем поставьте курсор мыши в предполагаемый верхний левый угол окна надписи, нажмите левую клавишу и растяните окно до нужных размеров; отпустите клавишу и внесите в окно нужный текст; щелкните мышью вне окна, а потом по окну правой клавишей мыши: откроется контекстное меню “Свойства”, с помощью которого задайте размер, цвет и шрифт надписи, цвет фона и параметры обрамления; щелкая по окну левой клавишей мыши, можно обеспечить перетаскивание окна или изменение его размеров;
- аналогичным образом разместите поля данных на форме, измените размер, цвет, обрамление, шрифт;
- вставьте в форму небольшой рисунок из Paint или Word;
- создайте новое окно поля данных: щелкните по буквам ab на панели инструментов, измените его размеры, цвет и шрифт; вызовите Свойства – Данные, в строке Данные
щелкните кнопку с тремя точками, в появившемся Построителе выражений
создайте формулу Зарплата*Рост;
- просмотрите форму: Вид – Режим формы, затем закройте макет формы, присвоив ему имя, и откройте форму; просмотрите содержимое записей, внесите изменения и дополнения в данные, затем закройте форму, откройте таблицу и просмотрите внесенные изменения;