Автор работы: Пользователь скрыл имя, 16 Января 2013 в 12:38, курсовая работа
На складе мастерской индивидуального пошива имеются запасы 10-ти видов ткани. За каждый рабочий день (6 дней) расходовалось некоторое количество ткани каждого вида.
Написать программу на языке VBA , которая вводит исходные данные, выполняет расчеты и выводит на экран:
исходные данные в виде таблицы, где перечислены наименования ткани, цена ткани, расход каждого вида ткани каждый день в метрах;
расход каждого вида ткани за неделю;
стоимость всей израсходованной ткани за день;
Курсовая работа | ||
по специальности «Информатика» | ||
на тему «програмирование на vba в среде ms excel» | ||
Москва, 2009 |
Оглавление
Задание 14
На складе мастерской индивидуального пошива имеются запасы 10-ти видов ткани. За каждый рабочий день (6 дней) расходовалось некоторое количество ткани каждого вида.
Написать программу на языке VBA , которая вводит исходные данные, выполняет расчеты и выводит на экран:
Исходные данные находятся на листе «Начальные данные» и содержат следующую информацию:
Рис. 1 Начальный данные
Программа запускается при нажатии на кнопку «Выполнить расчёт». Результаты работы программы оформляются на листе «Результат».
Рис. 2 Результаты расчётов
В программе переменные описаны следующим образом:
'Наменования деталей
Dim naimen(kol_detaley) As String
'Цена деталей
Dim cena(kol_detaley) As Double
'Количество проданных деталей
Dim kol(kol_detaley, kol_smen) As Integer
'Количество полученных деталей
Dim pol(kol_detaley, kol_smen) As Integer
'Остаток на 1-ю смену
Dim ostatok_1(kol_detaley) As Integer
'Остаток на 2-ю смену
Dim ostatok_2(kol_detaley) As Integer
'Доход по каждой детале
Dim doh_detal(kol_detaley) As Double
'Наименование самой прибыльной детали
Dim naimen_detali As String
'Наибольшая прибыль детали
Dim max_prib As Double
В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами.
Dim i As Integer, j As Integer.
Блоки используются для обозначения действий, которые производит алгоритм, представленный блок-схемой, а также для внесения дополнительных пояснений по работе алгоритма или улучшения читаемости схемы.
Общая структура курсовой работы имеет вид, показанный на стр. 8, 9, 10, 11.
Некоторые типы блоков:
Ввод начальных (нулевых) значений для расчетных величин (доход по каждой ткани, доход за каждый день, общий доход по всем тканям, наименование самой прибыльной ткани и наибольшая прибыль ткани).
Открытие листа с начальными данными («Нач_данные») и получение этих данных в рабочие переменные.
Открытие листа с результатами.
Организуется два вложенных цикла (по каждой ткани и дню). Во внутреннем цикле (по дням, расчет по одной ткани) суммируется доход по ткани, после выхода из внутреннего цикла выводится результат по ткани.
Организуется два вложенных цикла (по каждому дню и ткани). Во внутреннем цикле (по тканям, расчет по одному дню) суммируется доход за день, после выхода из внутреннего цикла выводится результат за день
Организуется цикл по тканям, в котором суммируются доходы по каждой ткани (подсчитанные на шаге 2) и получается один общий доход
Для определения ткани принесшей наибольший доход используется алгоритм сравнения. При равенстве двух и более сумм доходов ткани результативной считается первая сумма.
Sub Кнопка1_Щелчок()
'Объявление констант
'Количество наименований
Const kol_detaley = 10
'Количество смен
Const kol_smen = 2
'Объявление переменных
'Наменования деталей
Dim naimen(kol_detaley) As String
'Цена деталей
Dim cena(kol_detaley) As Double
'Количество проданных деталей
Dim kol(kol_detaley, kol_smen) As Integer
'Количество полученных деталей
Dim pol(kol_detaley, kol_smen) As Integer
'Остаток на 1-ю смену
Dim ostatok_1(kol_detaley) As Integer
'Остаток на 2-ю смену
Dim ostatok_2(kol_detaley) As Integer
'Доход по каждой детале
Dim doh_detal(kol_detaley) As Double
'Наименование самой прибыльной детали
Dim naimen_detali As String
'Наибольшая прибыль детали
Dim max_prib As Double
'Счетчики циклов
Dim i As Integer, j As Integer
'Обнуление результатов
For i = 1 To kol_detaley
doh_detal(i) = 0
Next
obsh_doh = 0
naimen_detali = ""
max_prib = 0
'Открытие листа с исходными данными
Sheets(1).Select
'Считывание исходных данных в массивы
For i = 1 To kol_detaley
naimen(i) = Cells(3 + i, 1)
Next
For i = 1 To kol_detaley
cena(i) = Cells(3 + i, 2)
ostatok_1(i) = Cells(3 + i, 3)
ostatok_2(i) = Cells(3 + i, 3) + Cells(3 + i, 4) - Cells(3 + i, 5)
For j = 1 To kol_smen
pol(i, j) = Cells(3 + i, 2 * (j - 1) + 4)
kol(i, j) = Cells(3 + i, 2 * (j - 1) + 5)
Next
Next
'Открытие листа с результатами
Sheets(2).Select
'Вывод результатов:
'Шапка таблицы
Cells(2, 1) = "Результаты расчётов"
Cells(3, 1) = "Наименование"
Cells(3, 2) = "Цена"
Cells(3, 3) = "Остаток на начало 1-й смены"
Cells(3, 4) = "Получено в 1-ю смену"
Cells(3, 5) = "Отдано в 1-ю смену"
Cells(3, 6) = "Стоимость остатка на начало смены"
Cells(15, 1) = "Наименование"
Cells(15, 2) = "Остаток на начало 2-й смены"
Cells(15, 3) = "Получено во 2-ю смену"
Cells(15, 4) = "Отдано во 2-ю смену"
Cells(15, 5) = "Стоимость остатка на начало 2-й смены"
Cells(15, 6) = "Остаток на конец 2-й смены"
Cells(15, 7) = "Стоимость остатка на конец 2-й смены"
'Вывод исходных данных
For i = 1 To kol_detaley
Cells(3 + i, 1) = naimen(i)
Cells(3 + i, 2) = cena(i)
Cells(3 + i, 3) = ostatok_1(i)
Cells(3 + i, 4) = pol(i, 1)
Cells(3 + i, 5) = kol(i, 1)
Cells(3 + i, 6) = cena(i) * ostatok_1(i)
Cells(15 + i, 1) = naimen(i)
Cells(15 + i, 2) = ostatok_2(i)
Cells(15 + i, 3) = pol(i, 2)
Cells(15 + i, 4) = kol(i, 2)
Cells(15 + i, 5) = cena(i) * ostatok_2(i)
Cells(15 + i, 6) = ostatok_2(i) + pol(i, 2) - kol(i, 2)
Cells(15 + i, 7) = (ostatok_2(i) + pol(i, 2) - kol(i, 2)) * cena(i)
Next
'Вывод наименования самой прибыльной детали
For i = 1 To kol_detaley
doh_detal(i) = kol(i, 1) + kol(i, 2)
If doh_detal(i) > max_prib Then
max_prib = doh_detal(i)
naimen_detali = naimen(i)
End If
Next
Cells(30, 1) = "Самая ходовая деталь:"
Cells(30, 2) = naimen_detali
End Sub
Для начала необходимо создать документ Microsoft Excel и записать на рабочий лист начальные данные. Затем необходимо запустить редактор Microsoft Visual Basic, чтобы в нем написать код программы. Далее следует сохранить изменения в созданном модуле и запустить программу. При необходимости следует исправить допущенные ошибки. После чего результат работы программы будет помещен на лист «Результат».