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

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

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

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

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

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

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

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

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

— 929.00 Кб (Скачать файл)
Министерство  образования Российской Федерации

Государственное образовательное  учреждение

высшего профессионального  образования

Московский  государственный  индустриальный университет

(ГОУ  МГИУ)

 
Кафедра «Информационных технологий и систем в экономике и управлении»
 
 
К У Р С О В  А Я    Р  А Б О Т А 
 
по  дисциплине «Информатика» 
на тему «Программирование на VBA в среде MS Excel»

12 вариант 

 
Группа 2252  
Студент   Е.С. Наумова
 
Руководитель  работы,

заведующий кафедрой, доцент

   
 
 
ДОПУСКАЕТСЯ К ЗАЩИТЕ
Ассистент    
 
Оценка  работы

Дата

  «___»_____________
 
 
 

 

Содержание

 
 

 

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

Задание 12

 

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

 Написать  программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:

  • исходные данные в виде таблицы, где перечислены наименования изделий, вес компонентов, цена каждой компоненты;
  • вес каждого вида торта;
  • стоимость каждого вида торта; 
  • название самого дешевого вида торта;

   его цена..

 

   Требования  к курсовой работе:

 

    Интерфейс

    1. Интерфейс  программы должен содержать все  исходные данные, указанные в  варианте.

    2. Поля  для вывода результатов вычислений  должны находиться на листе  исходных данных и должны быть  озаглавлены полным предложением  по тексту варианта.

    3. На  листе должны быть, как минимум, пять командных кнопок, вызывающих выполнений процедур:

    3.1. Кнопка  «Рассчитать данные» вызывает  выполнения процедур расчета  значений по всем заданиям  варианта.

    3.2. Кнопка  «Сортировать». Алгоритм сортирует  любой из результатных массивов и связанными с ним заголовками строк (столбцов) на свободной месте листа.

    3.3. Кнопка  «Проверить правильность алгоритма  на 1». Результат отображается  на Листе 2.

    3.4. Кнопка  «Проверить правильность алгоритма  на 0». Результат отображается  на Листе 3.

    3.5. Кнопка «Очистить» восстанавливает исходные данные и удаляет все результаты вычислений на всех листах.

    4. Процедуры  кнопок вызывают вычисляющие  процедуры через команду Call.

    5. Использование  типа данных Currency – обязательное  требование.

    6. На  листе в заголовке таблицы должны содержаться ФИО и номер группы студента, выполнившего работу.

 

    Программная часть

    1. Переменные  должны быть описаны до первой  процедуры.

    2. Все  исходные данные содержатся в  одномерных и двумерных массивах. Обращение к ячейкам только  при считывании и записи на лист. Все массивы обрабатываются в циклах. В теле программы должны хотя бы однократно использоваться циклы Do While (Until) - Loop и For – Next.

    3. Каждая  процедура должна содержать комментарии  по выполняющимся в этой процедуре  действиям.

    4. Сохранение  исходных данных может осуществляться  как на текущем листе (ниже), так и на другом листе или  в новом файле.

 

Описание  переменных

 

В программе  переменные объявлены до первой процедуры, что делает их видимыми из любой  процедуры программы, и описаны следующим образом:

 
Dim tort(5) As String Одномерный  массив строкового типа - Наименования изделий
   
Dim price_komp(6) As Currency Одномерный  массив чисел - Цены компонент
   
Dim ves_komp(5, 6) As Double Двумерный массив дробных чисел - вес компонентов
   
Dim VES_TORTA(5) As Double Одномерный  массив дробных чисел - вес каждого  вида торта
   
Dim PRICE_TORTA(5) As Currency Одномерный  массив чисел - стоимость каждого  вида торта
   
Dim MIN_PRICE_TORTA As Currency Переменная  дробного типа - цена самого дешевого вида торта
   
Dim MIN_TORT As String Переменная  строкового типа - название самого дешевого вида торта
   
Dim vspomog As Variant Вспомогательная переменная произвольного типа
   
Dim i, j, z As Integer Переменные  целого типа – счетчики
 

Тип Currency используется для хранения чисел, когда точность крайне важна, что бывает при вычислениях с денежными единицами

 

 

Блок-схема

Объявляем переменные:

 

 

Процедура Restore_ID() - восстановление исходных данных

 

Процедура Cleaning() - очистка полей с результатами

 

 

Процедура Zeroing () - обнуление рабочих переменных

 

Процедура Basic_data() – Сохранение исходных данных в массивы

 

Процедура Calc() – основные выччисления:

Процедура CalcMIN() – Ищем самую «ходовую» ткань

 

 

Процедура Finish() – Процедура для всех расчетов и вывода результата

 

 

Процедура Sorting () - сортировка

 

 

Процедура Sorting1 () - сортировка

 

 

Процедура Sorting2 () - сортировка

 

 

Процедура Testing_1 () - проверка правильности алгоритма 1

 

Процедура Testing_0 () - проверка правильности алгоритма 0

 

Процедура List1 () - Переход на Лист 1

 

 

 

Описание алгоритма

 

   Программ  представляет собой 13 процедур:

 
  1. Процедура для восстановления исходных данных (Restore_ID) копируют соответствующий диапазон ячеек из правой части листа в таблицу для исходных даных и вызывает процедуру для очистки ячеек с результатами (Cleaning).
  2. Процедура очистки (Cleaning) ячеек с результатами  - копирует пустое значение в соответствующие ячейки.
  3. Процедура (Zeroing) обнуления рабочих массивов. Состоит из цикла на операторах For-Next.
  4. Процедура (Basic_data) считывания исходных данных в массивы. Состоит из двух вложенных циклов на операторах Do While – Loop и Do Until –Loop.
  5. Процедура (Calc) с основными вычислениями. Вначале вызывает процедуры Zeroing и Basic_data (см.выше). Далее используя два вложенных цикла на операторах For-Next где считаем вес и стоимость каждого торта.
  6. Процедура (CalcMIN) поиска самого дешевого торта. Алгоритм использует метод пузырька.
  7. Процедура (Finish). Алгоритм вызывает процедуры с вычислениями Calc и CalcMIN, и выводит результаты, при необходимости используем циклы на операторах For-Next.
  8. Процедура сортировки (Sorting) выводит сообщение для выбора столбца по которому будет осуществляться сортировка и вызывается соответствующая процедура (Sorting1 или Sorting2) В конце процедуры осуществляется вывод результатов сортировки.
  9. Процедура сортировки (Sorting1) Алгоритм основан на сортировке методом «всплывающего пузырька» и сортирует данные по столбцу «вес торта»
  10. Процедура сортировки (Sorting2) Алгоритм основан на сортировке методом «всплывающего пузырька» и сортирует данные по столбцу «стоимость торта»
  11. Процедура проверки алгоритма на 1 (Testing_1) – алгоритм переходит на «Лист2», где исходная таблица заполнена единицами и вызывает процедуру расчета данных (Finish).
  12. Процедура проверки алгоритма на 0 (Testing_0) – алгоритм аналогичен
  13. Процедура для возврата на «Лист 1» (List1) – осуществляет переход на «Лист1»

 

Листинг программы

 

Dim tort(5) As String 'Одномерный  массив строкового типа - Наименования  изделий

Dim price_komp(6) As Currency 'Одномерный массив чисел - Цены  компонент

Dim ves_komp(5, 6) As Double 'Двумерный массив дробных чисел - вес компонентов

 

Dim VES_TORTA(5) As Double 'Одномерный массив дробных чисел  - вес каждого вида торта

Dim PRICE_TORTA(5) As Currency 'Одномерный массив чисел - стоимость  каждого вида торта

 

Dim MIN_PRICE_TORTA As Currency 'Переменная дробного типа - цена  самого дешевого вида торта

Dim MIN_TORT As String 'Переменная  строкового типа - название самого  дешевого вида торта

 

Dim vspomog As Variant 'Вспомогательная  переменная произвольного типа

Dim i, j, z As Integer 'Переменные целого типа - счетчики

 

Sub Restore_ID()

'восстановление  исходных данных

Range("A5:G10").Value = Range("AA5:AG10").Value

Call Cleaning

End Sub

 

Sub Cleaning()

'очистка полей  с результатами

Worksheets("Лист1").Range("H5:I9").Value = ""

Worksheets("Лист1").Range("D12:I12").Value = ""

Worksheets("Лист1").Range("A20:C25").Value = ""

 

Worksheets("Лист2").Range("H5:I9").Value = ""

Worksheets("Лист2").Range("D12:I12").Value = ""

 

Worksheets("Лист3").Range("H5:I9").Value = ""

Worksheets("Лист3").Range("D12:I12").Value = ""

End Sub

 

Sub Zeroing()

'обнуляем рабочие  переменные

For i = 1 To 5

    VES_TORTA(i) = 0

    PRICE_TORTA(i) = 0

Next i

End Sub

 

Sub Basic_data()

'сохраняем исходные  данные в массивы

 

i = 1

Do While i <> 6

    'Считывание в массив наименования изделий:

    tort(i) = Cells(i + 4, 1)

   

    j = 1

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