Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка по курсовой работе

.pdf
Скачиваний:
22
Добавлен:
27.03.2016
Размер:
1.32 Mб
Скачать

 

4 ОБРАЗЕЦ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ *)

 

 

Содержание**)

 

Задание 55 (текст задачи) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1

Исходные данные и принятые обозначения . . . . . . . . . . . . . . . . . . . .

3

2

Математическая постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . .

4

3

Графическая схема алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

4

Решение задачи с помощью электронных таблиц. . . . . . . . . . . . . . . .

7

5

Разработка макроса для построения графика . . . . . . . . . . . . . . . . . . .

9

6

Разработка интерфейса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

7

Использование интерфейса для работы с таблицей. . . . . . . . . . . . . . .

13

9

Разработка базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

Библиография . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

Примечания *) Здесь и далее по тексту курсивом набраны заголовки разделов или подразде-

лов, относящиеся к разделу "ОБРАЗЕЦ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ". В курсовой же работе шрифт заголовков должен быть обычным (см. п. 5.1), т.е. набранным не курсивом.

**) Раздел Содержание выполняется на отдельном листе. Нумерация страниц начинается с 1, но номер страницы на листе с разделом Содержание не ставится (см. п.

5.2, 5.4).

Задание 55

Перевозка руды из карьера на обогатительную фабрику осуществляется карьерными автосамосвалами БЕЛАЗ-540. У диспетчера накапливаются данные о производительности каждого автосамосвала за месяц в тон- но-километрах. Вычислить суммарную производительность каждого автосамосвала за фиксированный отрезок времени и указать номер автосамосвала, имеющего наибольшую производительность, указать также среднюю производительность автопредприятия по перевозке руды за каждый месяц и массу руды, перевезенную автосамосвалами за весь период. Для расчета принять производительность автосамосвала в диапазоне от 100 до 150 тыс.т/мес.

1 ИСХОДНЫЕ ДАННЫЕ И ПРИНЯТЫЕ ОБОЗНАЧЕНИЯ

Исходные данные задачи могут быть представлены в виде матрицы ежемесячной производительности автосамосвала Q(I,J), где I – номер автосамосвала, (I=1,N), J – номер месяца, (J=1,M), N – количество автосамосвалов, M – количество месяцев.

20

Исходные данные для расчета и принятые обозначения у переменных приведены в таблице 1 и таблице 2.

Таблица 1 – Производительность автосамосвалов, тыс.т/мес.

Номер

 

 

Номер месяца

 

 

самосвала

 

 

 

 

 

 

1

2

3

4

5

6

1

150

120

100

150

120

130

2

150

120

120

150

120

130

3

200

200

200

200

200

Таблица 2 – Принятые обозначения и описание данных задачи

Вид

Наименование

Обозна-

Единицы

Вид

 

измере-

пере-

Формат

данных

показателя

чение

ния

менной

 

 

 

 

 

 

Количество самосвалов

N

Шт.

Простая

Целый

 

Номер самосвала

I

-

Простая

Целый

 

Количество месяцев

M

Шт.

Простая

Целый

Вход-

Номер месяца

J

-

Простая

Целый

ные

Производительность

Q(I,J)

тыс.т/мес.

Индек-

Целый

 

I-го самосвала в J-м

 

 

сиро-

 

 

месяце

 

 

ванная

 

 

Суммарная произво-

S(I)

тыс.т/мес.

Индек-

Целый

 

дительность I-го само-

 

 

сиро-

 

 

свала за период

 

 

ванная

 

 

Номер самосвала с

MAXI

-

Простая

Целый

 

максимальной произ-

 

 

 

 

Выход-

водительностью

 

 

 

 

ные

Средняя производи-

SRPR(J)

тыс.т

Индек-

Веще-

 

тельность в J-м месяце

 

 

сиро-

ствен-

 

 

 

 

ванная

ный

 

Масса руды за период

SMASR

тыс.т

Простая

Целый

 

 

 

 

 

 

 

Наибольшая произво-

MAXPR

тыс.т

Простая

Целый

 

дительность самосвала

 

 

 

 

 

за период

 

 

 

 

Проме-

Суммарная

SS(J)

тыс.т

Индек-

Целый

жуточ-

производительность в

 

 

сиро-

 

ные

J-ом месяце

 

 

ванная

 

21

2 МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ

Определение массы руды, перевезенной за весь период

N

M

SMASR = Q(I,J).

I=1

J=1

Определение суммарной производительности I-го самосвала

M

S(I) = Q(I,J).

J=1

Определение номера самосвала с максимальной суммарной производительностью за весь период

MAXPR =MAX{S(I)}.

Определение суммарной производительности автосамосвалов в J-ом месяце

N

SS(J) = Q(I, J) .

I=1

Средняя производительность автосамосвалов в J-ом месяце

SRPR(J ) =SS(J )/N .

3 ГРАФИЧЕСКАЯ СХЕМА АЛГОРИТМА

Графическая схема алгоритма (блок-схема) по заданию 55 изображена на рисунке В1 (Приложение В).

4 РЕШЕНИЕ ЗАДАЧИ С ПОМОЩЬЮ ПРОГРАММЫ MS EXCEL

4.1 Загрузить программу MS Excel.

Формируем заголовки таблиц (таблица 3, таблица 4), поместив в них соответствующий текст (см. рисунок 1).

4.2Обрамляем ячейки таблиц, используя кнопку «Все границы» Панели инструментов «Форматирование».

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

4.3Вводим данные для решения контрольного примера (ячейки В6:H8). Числа для контрольного примера взяты из таблицы 1.

4.4Для вычисления суммарной производительности каждого самосвала используем функцию СУММ мастера функций, например, для 1 самосвала =СУММ(C6:H6), поместив её в ячейку I6. Копируем формулу =СУММ(C6:H6) из ячейки I6 в ячейки I7 до I14. Для этого используем маркер заполнения.

22

Рисунок 1. Решение задачи в Excel

4.5Дополним расчетную таблицу внизу пустыми строками для последующего добавления данных в таблицу.

4.6Определим количество работающих самосвалов в каждый из месяцев. Для определения количества работающих самосвалов в 1 месяц введем в ячейку С15 формулу =СЧЁТЗ(C6:C14). Функция СЧЕТЗ считает количество занятых ячеек в указанном интервале. Копируем формулу из ячейки С15 по строке до ячейки Н15.

4.7Для вычисления средней производительности автопредприятия за месяц вводим в ячейку С21 формулу =СРЗНАЧ(С6:С14) (категория – Статистические) и копируем эту формулу по строке до ячейки Н21.

4 . 8 Д л я вы б о р а н о м е р а с а м о с в а л а с н а и б о л ьш е й п р о и з - во д и те льн о с т ью в я ч е й к у I 2 3 в во д им ф о р м ул у

=ВЫБОР(ПОИСКПОЗ(МАКС(I6:I14);I6:I14;0);В6;В7;В8;В9;В10;В11;В12;

В13;В14). Эта формула в ячейках I6:I14 находит максимальное число, определяет позицию этого числа (например, 3), затем из ячеек В6:В14 выбирает ячейку, стоящую на этой позиции (получается В8) и выводит значение из ячейки В8.

23

Обращаемся к Мастеру функций fx, выбираем категорию «Ссылки и массивы» затем функцию ВЫБОР, аргументом которой будет функция ПОИСКПОЗ, аргументом которой является функция МАКС. По функции МАКС(I6:I14) определяется максимальное значение числа среди чисел интервала ячеек I6:I14. В свою очередь, в функции ПОИСКПОЗ значение МАКС(I6:I14) является искомым числом, позиция которого определяется из интервала ячеек I6:I14. Число 0 в записи функции ПОИСКПОЗ означает, что будет найдено одно (первое) максимальное число. Функция ПОИСКПОЗ задает функции ВЫБОР позицию, которую нужно выбрать из следующих ячеек. Таким образом, номер самосвала с наибольшей производительностью) находится в ячейке I 2 3 .

4.9 Для вычисления общей массы руды, перевезенной всеми автосамосвалами за анализируемый период времени, вводим в ячейку I25 формулу =СУММ(I6:I14), либо формулу =СУММ(С6:H14).

4.9 На рисунке 2 представлена расчетная таблица с формулами. Для вывода таблицы в таком виде необходимо выполнить команду СЕРВИС – Параметры – вкладка «Вид» – отметить флажок «Формулы».

Рисунок 2. Расчетная таблица с формулами. Функция ВЫБОР(…) находится в ячейке I23

24

В ячейках D15:H15 формулы аналогичны формуле в ячейке С15, в ячейках D21:H21 – формуле в ячейке С21.

4.10 По результатам расчетов строим совмещенный с диаграммой (количество работающих автосамосвалов) график (средняя месячная производительность автосамосвалов). Для этого выделяем ячейки В15:Н15, затем нажимаем клавишу Ctrl и выделяем ячейки В21:Н21 (ячейки В15 и В21 выделяем для того, чтобы сразу получить обозначения – легенду), вызываем Мастер Диаграмм, нажав на его значок, расположенный на панели инструментов Стандартные. Выбираем вид диаграммы на вкладке «Нестандартные» – «график | гистограмма2». Получаем график с двумя осями У, одна ось для указания «количества работающих самосвалов», другая – для указания «средней производительности самосвалов в месяц». Выполняем остальные шаги построения диаграммы. На 2 шаге построения диаграммы проверяем, что данные берутся из строк. На 3 шаге назначаем параметры диаграммы: название диаграммы, название осей, проводим линии сетки, изменяем размещение легенды. На 4 шаге указываем «Размещение» на отдельном листе. Полученная диаграмма представлена на рисунке 3.

5 РАЗРАБОТКА МАКРОСА ДЛЯ ПОСТРОЕНИЯ ДИАГРАММЫ

5.1 Удалите диаграмму, построенную по п.4.10. И запишите все действия построения диаграммы в макрос. Для этого выполните следующие действия:

-Выполните команду Сервис – Макрос – Начать запись – введите имя макроса, например, «График».

-Выполните все действия п. 4.10 – построения диаграммы и назначения ей параметров.

-Выполните команду Сервис – Макрос – Остановить Запись. Данный макрос используется при проектировании интерфейса. Необходимо будет привязать его к кнопке см. п. 6.14.

6 РАЗРАБОТКА ИНТЕРФЕЙСА

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

25

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

Рисунок 3. График показателей работы автопредприятия

6.2 Запуск интерфейса программы осуществляется кнопкой «ДОБАВЛЕНИЕ И УДАЛЕНИЕ автосамосвалов», расположенной на рабочем листе (рисунок 1). Для установки кнопки подключите панель инструментов «Элементы управления» командой ВИД – Панели инструментов – Элементы управления. На этой ПИ нажмите на кнопку «Конструктор» (она должна быть утоплена) – тем самым включится режим конструктора. Выбираем на ПИ кнопку «Кнопка», переходим в область рабочего листа и, нажав левую клавишу мыши, рисуем кнопку. Нажав кнопку «Свойства» на ПИ, устанавливаем свойство Caption = «ДОБАВЛЕНИЕ И УДАЛЕНИЕ автосамосвалов». Привязываем к кнопке процедуру запуска формы1. Для этого 2 раза щелкаем по ней левой кнопкой мыши и между строк начала и конца процедуры, которые генерируются автоматически, вставляем команду показать (Show) форму UserForm1.

Private Sub CommandButton1_Click() UserForm1.Show

End Sub

Данная программа создается в модуле рабочего листа 1 (того, где расположена кнопка).

26

6.3 Нажатие на кнопку «ДОБАВЛЕНИЕ И УДАЛЕНИЕ автосамосвалов» открывает форму1. Проект формы1 представлен на рисунке 4 c обозначением элементов управления.

 

SpinButton1

TextBox1

TextBox8

TextBox2

CommandButton1

 

TextBox3

CommandButton2

TextBox4

 

TextBox5

CommandButton4

 

TextBox6

CommandButton3

 

TextBox7

TextBox9

 

Рисунок 4. Проект формы1.

Форма1 предназначена для добавления и удаления исходных данных. Исходные данные отмечены в таблице 2, как «Входные».

6.4. Для создания формы1 перейдите в редактор VBA командой Сервис – Макрос – Редактор Visual Basic. В редакторе выполните команду Insert –UserForm. В окне свойств UserForm1 измените свойство Caption =

Работа с исходными данными – этот текст появится в строке надписи формы1.

6.5. На вид формы1 оказывает влияние структура таблицы в Excel. На ней размещены поля (TextBox) для ввода № самосвала и его объемы перевозок за месяцы январь, февраль, март, апрель, май, июнь. Т.е. предполагается ввод в таблицу по строкам (как в базах данных) – это интервалы ячеек:В6:Н6, В7:Н7 и т.д. Дополнительно в таблицу и в форму1 добавлено поле «№ записи». В поле «Суммарная производительность» осуществляется вывод этого результата из ячеек диапазона I6:I14. Кроме того на форме1 размещены надписи (lebel).

27

6.6 На форме расположены элементы управления. Названия кнопок формы введены аналогично п. 5.2 путем изменения её свойства Caption. Элементы управления выполняют следующие функции:

Счетчик (SpinButton1) – осуществляет переход по записям таблицы и позволяет отражать в полях формы (TextBox) значения из ячеек таблицы и записывать значения полей формы (когда добавляется новая запись) в ячейки таблицы Cells(i,j).

Кнопка «Добавить запись» – из полей формы1 записывает новую строку в ячейки таблицы Excel, например, A9:I9, для этого пользователь должен ввести в поля формы значения для новой строки таблицы.

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

Кнопка «Посмотреть ИТОГИ» – загружает форму2.

Кнопка «Закрыть Форму» – закрывает форму1.

6.7 Код программы передвижения счетчика вверх. Для написания кода нужно два раза щелкнуть по счетчику на форме. В модуле формы в списке событий выбрать для SpinButton1 события SpinUp (счетчик возрастает) и SpinDown (счетчик уменьшается). Между строками начала и конца процедуры наберите код (см. рисунок 5).

Private Sub SpinButton1_SpinUp( ) – Начало процедуры

Набрать код процедуры

End Sub – Конец процедуры.

Private Sub SpinButton1_SpinDown( ) – Начало процедуры

Набрать код процедуры

End Sub – Конец процедуры.

В коде приведенных процедур (см.рисунок 5): n – номер записи, TextBox8 – поле счетчика (см. рисунок 4), отражающее номер записи в таблице Excel. Val(TextBox8.Text) – перевод текстового значения поля в число функцией Val и присваивание этого значения переменной n – номеру записи. Номер записи увеличивается или уменьшается на 1 и передается в TextBox8. При этом переменная n переводится в сивол (текст) str(n). В процедурах используется обращение к процедуре ReadRec(n) – читать n- ую запись из ячеек таблицы и писать в поля формы.

6.8. Код процедуры ReadRec необходимо создать. Для этого выполнить команду Insert – Module и в открывшемся модуле набрать следующий код.

Public n As Integer ‘Глобально объявленная переменная n она «видна» из любой процедуры

Public Sub ReadRec(rec) ‘Процедура читать запись

If rec > 0 Then ‘Если номер записи больше 0 выполнить действия With UserForm1 ‘Объявление структурной скобки для объекта фор-

ма1

28

Объект

 

Список

SpinButton

 

событий

 

 

 

Процедура

движения

счетчика

вниз

Процедура

движения

счетчика

вниз

Рисунок 5. Программирование счетчика (SpinButton)

В нижележащих строках данные из ячеек столбцов с 2 по 9 и из строк, соответствующих значению rec+5, рабочего листа Решение таблицы Excel присваиваются полям формы1. rec – номер переданной записи, к ней прибавляется число 5, потому что данные в таблице расположены с 6

строки. Если rec=1, то rec+5=6.

.TextBox1.Value = Cells(rec + 5, 2).Value

.TextBox2.Value = Cells(rec + 5, 3).Value

.TextBox3.Value = Cells(rec + 5, 4).Value

.TextBox4.Value = Cells(rec + 5, 5).Value

.TextBox5.Value = Cells(rec + 5, 6).Value

.TextBox6.Value = Cells(rec + 5, 7).Value

.TextBox7.Value = Cells(rec + 5, 8).Value

.TextBox9.Value = Cells(rec + 5, 9).Value End With ‘ Закрытие структурной скобки End If ‘ Конец оператора if

End Sub ‘Конец процедуры

6.9 Программирование отклика кнопки «Добавить запись». Откройте форму1, затем 2 раза щелкните по кнопке «Добавить запись» и напишите процедуру

Private Sub CommandButton1_Click() TextBox1.SetFocus’ Установить курсор в поле TextBox1

WriteRec (n)’ Процедура «Писать n-ую запись» из полей формы1 в ячейки таблицы

n = n + 1’ Изменить номер записи на 1

TextBox8.Text = Str(n) ‘Передать номер записи в поле счетчика

29