Автор работы: Пользователь скрыл имя, 23 Ноября 2011 в 18:58, курсовая работа
Задание на курсовую работу.
Задание 12
На хлебозаводе в цехе изготовления тортов выпускаются изделия 5-ти наименований. В каждое изделие входят до 6-ти видов различных компонентов.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
исходные данные в виде таблицы, где перечислены наименования изделий, вес компонентов, цена каждой компоненты;
вес каждого вида торта;
стоимость каждого вида торта;
название самого дешевого вида торта;
его цена..
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ. 3
ОПИСАНИЕ ПЕРЕМЕННЫХ 4
БЛОК-СХЕМА 5
ОПИСАНИЕ АЛГОРИТМА 13
ЛИСТИНГ ПРОГРАММЫ 14
ОПИСАНИЕ ВХОДНЫХ ДАННЫХ И РЕЗУЛЬТАТОВ ВЫЧИСЛЕНИЙ 18
СПИСОК ЛИТЕРАТУРЫ 22
Do Until j = 7
'Считывание в массив цены на комплненты:
price_komp(j) = Cells(10, j + 1)
'считывание вес компонентов:
ves_komp(i, j) = Cells(i + 4, j + 1)
j = j + 1
Loop
i = i + 1
Loop
End Sub
Sub Calc()
'Основные вычисления
Call Zeroing
Call Basic_data
For i = 1 To 5
For j = 1 To 6
'Считаем вес каждого торта:
VES_TORTA(i) = VES_TORTA(i) + ves_komp(i, j)
'Считаем стоимость каждого торта:
PRICE_TORTA(i) = PRICE_TORTA(i) + ves_komp(i, j) * price_komp(j)
Next j
Next i
End Sub
Sub CalcMIN()
'Ищем название и цену самого дешевого вида торта
'принимаем за максимум первое изделие
MIN_PRICE_TORTA = PRICE_TORTA(1)
MIN_TORT = tort(1)
For i = 2 To 5
If MIN_PRICE_TORTA > PRICE_TORTA(i) Then
MIN_PRICE_TORTA = PRICE_TORTA(i)
MIN_TORT = tort(i)
End If
Next i
End Sub
Sub Finish()
'Процедура для
всех расчетов и вывода
Call Calc
Call CalcMIN
'вывод результатов:
For i = 1 To 5
Cells(i + 4, 8) = VES_TORTA(i)
Cells(i + 4, 9) = PRICE_TORTA(i)
Next i
Cells(12, 4) = MIN_TORT
Cells(12, 6) = MIN_PRICE_TORTA
End Sub
Sub Sorting()
'сортировка
'вызов процедуры с расчетами:
Call Calc
vspomog = MsgBox("Если Вы хотите отсортировать по весу нажмите ДА, если по стоимости - НЕТ", vbYesNo + vbQuestion, "Проверка правильности алгоритма")
If vspomog = vbYes Then
Call Sorting1
Else
Call Sorting2
End If
'вывод результатов
Cells(20, 1) = "Наименования изделий"
Cells(20, 2) = "Вес каждого вида торта"
Cells(20, 3) = "Стоимость каждого вида торта"
For i = 1 To 5
Cells(i + 20, 1) = tort(i)
Cells(i + 20, 2) = VES_TORTA(i)
Cells(i + 20, 3) = PRICE_TORTA(i)
Next i
End Sub
Sub Sorting1()
'сортируем массив попарно сравнивая вес каждого торта
'если предыдущий элемент больше следующего, то меняем обе строчки местами
For z = 1 To 4
For i = 1 To 4
If VES_TORTA(i) > VES_TORTA(i + 1) Then
vspomog = VES_TORTA(i)
VES_TORTA(i) = VES_TORTA(i + 1)
VES_TORTA(i + 1) = vspomog
vspomog = PRICE_TORTA(i)
PRICE_TORTA(i) = PRICE_TORTA(i + 1)
PRICE_TORTA(i + 1) = vspomog
vspomog = tort(i)
tort(i) = tort(i + 1)
tort(i + 1) = vspomog
End If
Next i
Next z
End Sub
Sub Sorting2()
'сортируем массив попарно сравнивая вес каждого торта
'если предыдущий элемент больше следующего, то меняем обе строчки местами
For z = 1 To 4
For i = 1 To 4
If PRICE_TORTA(i) > PRICE_TORTA(i + 1) Then
vspomog = VES_TORTA(i)
VES_TORTA(i) = VES_TORTA(i + 1)
VES_TORTA(i + 1) = vspomog
vspomog = PRICE_TORTA(i)
PRICE_TORTA(i) = PRICE_TORTA(i + 1)
PRICE_TORTA(i + 1) = vspomog
vspomog = tort(i)
tort(i) = tort(i + 1)
tort(i + 1) = vspomog
End If
Next i
Next z
End Sub
Sub Testing_1()
'проверка правильности алгоритма 1
'Переходим на Лист2
Worksheets("Лист2").Activate
'вызов процедуры с расчетами:
Call Finish
End Sub
Sub Testing_0()
'проверка правильности алгоритма 0
'Переходим на Лист3
Worksheets("Лист3").Activate
'вызов процедуры с расчетами:
Call Finish
End Sub
Sub List1()
'Переходим на Лист1
Worksheets("Лист1").Activate
End Sub
Описание входных данных и результатов вычислений
Исходные данные:
Результат основных вычислений:
Сортировка:
Результат сортировки по весу:
Результат сортировки по стоимости:
Проверка на 1:
Проверка на 0:
Список литературы
Информация о работе Программирование на VBA в среде MS Excel