Программирование на VBA в среде MS Excel

Автор работы: Пользователь скрыл имя, 23 Ноября 2011 в 18:58, курсовая работа

Краткое описание

Задание на курсовую работу.
Задание 12

На хлебозаводе в цехе изготовления тортов выпускаются изделия 5-ти наименований. В каждое изделие входят до 6-ти видов различных компонентов.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
исходные данные в виде таблицы, где перечислены наименования изделий, вес компонентов, цена каждой компоненты;
вес каждого вида торта;
стоимость каждого вида торта;
название самого дешевого вида торта;
его цена..

Содержание работы

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ. 3
ОПИСАНИЕ ПЕРЕМЕННЫХ 4
БЛОК-СХЕМА 5
ОПИСАНИЕ АЛГОРИТМА 13
ЛИСТИНГ ПРОГРАММЫ 14
ОПИСАНИЕ ВХОДНЫХ ДАННЫХ И РЕЗУЛЬТАТОВ ВЫЧИСЛЕНИЙ 18
СПИСОК ЛИТЕРАТУРЫ 22

Содержимое работы - 1 файл

Наумова Елена - вар12.doc

— 929.00 Кб (Скачать файл)

    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:

 

 

Список  литературы

 
  1. Иванов М.Н., Суворов С.В. Информатика. Часть 2. Программирование. – Москва, МГИУ 2009.
  2. Хорев В. Д. «Самоучитель программирования на VBA в Microsoft Office» 2001
  3. Конспект курса лекционных и практических занятий в МГИУ

Информация о работе Программирование на VBA в среде MS Excel