Программа VBA на примере задачи

Автор: Анастасия Никифорова, 28 Августа 2010 в 14:09, курсовая работа

Описание работы

Описание и выведенние переменных с использованием программы VBA
1. Задание на курсовую работу

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

Работа содержит 1 файл

Пример курсовой работы.doc

— 2.76 Мб (Скачать)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

РОССИЙСКОЙ  ФЕДЕРАЦИИ

ИДО ГОУ  МГИУ 
 
 
 
 

Курсовая  работа

По дисциплине «Информатика» 
 
 

Задание:№

Группа: №

Студент: Ф.И.О.

Руководитель: Ф.И.О. 
 
 
 

Москва 2009

 

Содержание

 

 

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

 

  В течение пяти дней (рабочая неделя) рабочий изготавливает детали семи различных типов. Известно количество изготовленных им деталей за каждый день и стоимость изготовления одной детали каждого типа (стоимость изготовления детали не меняется).

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

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

 

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

Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию:

  1. Количество деталей каждого из 7 типов, изготовленных за пять рабочих дней.
  2. Стоимость изготовления одной детали каждого типа.

  Результаты  работы программы оформляются на листе «Результат» (рис. 2). 

Рис.1. Лист с начальными данными

Рис.2. Полученные результаты

В программе  переменные описаны следующим образом:

    1) cena(7) — стоимость изготовления одной единицы каждого изделия 
    представляет массив дробных чисел

Dim cena(7) As Double

    2) koll(7,5) — количество деталей каждого вида, изготовленных в каж 
    дый из рабочих дней, представляет двумерный массив целых чисел

Dim koll(7,5) As Integer

    3) zar(6) — заработок за каждый день (от 1 до 5) и общий заработок за 
    весь период представляет массив дробных чисел

Dim zar(6) As Double

    4) koll_n(7) — количество деталей каджого вида за истекший период 
    представляет массив целых чисел

Dim kol_n(7) As Integer

    5) den — порядковый номер дня с наибольшим заработком представляет 
    целое число

Dim den As Integer

6) zarpl — сумма наибольшего заработка за период представляет дроб 
ное число

Dim zarpl As Double

  В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами.

Dim i As Integer, j As Integer

  Переменные  cena(7), zar(6), zarpl могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные koll(7,5) koll_n(7), den — целые числа, так как мы считаем, что смена рабочего составляет полный день, и он не может изготовить за смену половину детали.

 

3. Блок схема

 
 

Рис.3. Блок-схема (продолжение) 
 
 

 
 

Рис.3. Блок-схема (окончание)

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

 

     Начало  программы.

     Ввод  начальных (нулевых) значений для расчетных величин (количество изготовленных деталей за неделю, зарплата по дням и общая, день с наибольшим заработком и величина максимальной зарплаты).

     Открытие  листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(7) и kоll(7, 5)).

     Открытие  листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждой детали и дню). Во внутреннем цикле (по дням, расчет по одному изделию) суммируется количество изготовленных деталей, после выхода из внутреннего цикла выводится результат по детали.

     Расчет  сумм заработков по изделиям за каждый день, количество изготовленных деталей и вывод результатов. Организуется два вложенных цикла: внешний по изделиям, внутренний по дням. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление суммы заработка по i-му изделию в j-й день с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) — вывод стоимости одной детали и по всем деталям. Расчет заработной платы за каждый день организован в этом же внутреннем цикле.

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

 

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

Sub Function()

'Сначала  объявляем переменные, используемые в  программе.

'стоимость  детали

Dim cena(7) Аs Double

'количество (по дням)

Dim koll(7,5) As Integer

'зарплата  в день

Dim zar(6) As Double

'количество  деталей за неделю

Dim koll_n(7) As Integer

'день  с наибольшей з/пл.

Dim den As Integer

'сумма наибольшей з/пл.

Dim zarpl As Double

'счетчики циклов

Dim i As Integer, j As Integer

‘Далее всем переменным присваивается нулевое значение. 

For i = 1 То 7

kol_n(i) = 0

Next

For j=1 То 6        zar(j) = 0

Nехt

zarpl = 0 den = 0

'В  этом фрагменте  кода происходит  считывание начальных данных с листа «Нач_д», и в каждую ячейку массива cena(7) записывается стоимость каждой детали, а в ячейках двумерного массива koll(7,5) теперь находится количество деталей каждого вида, изготовленных в каждый из рабочих дней. 

Sheets(''Нач_д " ).Select

For i = 1 То 7

    сеnа(i) = Cells(3 + i, 2)

Next

For i = 1 Тo 7

    For j = 1 Тo 5

      koll(i, j) = Cells(3 + i, 2 + j)

             Next j

    Next i

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

Sheets(«Результат»).Select

Sheets("Результат").Cells(1, 1) = "Количество изготовленных деталей"

Sheets("Результат").Cells(2, 1) = "Наименование изделия"

Sheets("Результат").Cells(2, 2) = "Стоимость 1 шт."

Sheets("Результат").Cells(2, 3) = "Изготовлено"

Sheets("Результат").Cells(3, 3) = "1-й день"

Sheets("Результат").Cells(3, 4) = "2-й день"

Sheets("Результат").Cells(3, 5) = "3-й день"

Sheets("Результат").Cells(3, 6) = "4-й день"

Sheets("Результат").Cells(3, 7) = "5-й день"

Sheets("Результат").Cells(3, 8) = "Всего"

Sheets("Результат").Cells(4, 1) = "болт"

Sheets("Результат").Cells(5, 1) = "винт"

Sheets("Результат").Cells(6, 1) = "гайка"

Sheets("Результат").Cells(7, 1) = "шайба"

Sheets("Результат").Cells(8, 1) = "шуруп"

Sheets("Результат").Cells(9, 1) = "гвоздь"

Sheets("Результат").Cells(10, 1) = "скрепка"

'В  этом фрагменте  происходит вывод  на рабочий лист  сумм заработков по изделиям в каждый день и количество изготовленных деталей за неделю.

For i = 1 То 7

    Sheets("Результат").Сеlls(3 + i, 2) = cena(i)

    For j = 1 То 5

Sheets("Результат").Сеlls(3 + i, 2 + j) = koll(i, j)

koll_n (i) = koll_n (i) + koll(i, j)

    Next j

    Sheets("Результат").Сеlls(3 + i, 8) = koll_n(i)

Next i

'Ниже  происходит ввод названий соответствующих столбцов и строк. 

Sheets("Результат").Сеlls(12,1) = «Результат в денежном эквиваленте»

Sheets("Результат").Сеlls(13,1) = «Наименование изделия»

Sheets("Результат").Сеlls(13,2) = «Стоимость 1 шт.»

Sheets("Результат").Сеlls(13,3) = «Заработано»

Sheets("Результат").Сеlls(14,3) =  «1-й день»

Sheets("Результат").Сеlls(14,4) = «2-й день»

Sheets("Результат").Сеlls(14,5) = «3-й день»

Sheets("Результат").Сеlls(14,6) = «4-й день»

Sheets("Результат").Сеlls(14,7) = «5-й день»

Sheets("Результат").Сеlls(14,8) = «Всего»

Sheets("Результат").Сеlls(15,1) = «болт»

Sheets("Результат").Сеlls(16,1) = «винт»

Sheets("Результат").Сеlls(17,1) = «гайка»

Sheets("Результат").Сеlls(18,1) = «шайба»

Sheets("Результат").Сеlls(19,1) = «шуруп»

Sheets("Результат").Сеlls(20,1) = «гвоздь»

Sheets("Результат").Сеlls(21,1) = «скрепка»

Sheets("Результат").Сеlls(22,1) = «ИТОГО»

'Во  внутреннем цикле  происходит вычисление  суммы заработка по i-му изделию в j-й день с выводом результата, а во внешнем цикле (после получения результатов внутреннего цикла) происходит вывод стоимости одной детали и по всем деталям. Расчет 'заработной платы за каждый день организован в этом же внутреннем цикле.

For i = 1 То 7 For j = 1 То 5

          Sheets("Результат").Сеlls(14 + i, 2 + j) = koll(i, j) * сеna(i)

          zar(j) = zar(j) + koll(i, j) * сеna(i)

    zar(6) = zar(6) + koll(i, j) * сеnа(i)

     Next j

    Sheets("Результат").Сеlls(14 + i, 2) = сеnа(i)

   Sheets("Результат").Сеlls(14 + i, 8) = сеnа(i) * koll_n (i)

Next i 

Информация о работе Программа VBA на примере задачи