Программирование в VBA

Автор работы: Пользователь скрыл имя, 23 Января 2011 в 14:52, курсовая работа

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

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

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

1. Задание на курсовую работу…………………………………………………..2
2. Описание переменных…………………………………………………………3
3. Блок-схема……………………………………………………………………...6
4. Описание алгоритма…………………………………………………………..10
5. Листинг программы…………………………………………………………...11
6. Описание входных данных и результат вычисления……………………….14

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

курсовая_информатика.doc

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

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

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

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

     по  дисциплине

     «ИНФОРМАТИКА» 
 
 
 
 
 
 

     Задание: 9

     Группа:

     Студент:

     Руководитель:  
 
 

     * * 
 

 
СОДЕРЖАНИЕ
 

  1. Задание на курсовую работу…………………………………………………..2
  2. Описание переменных…………………………………………………………3
  3. Блок-схема……………………………………………………………………...6
  4. Описание алгоритма…………………………………………………………..10
  5. Листинг программы…………………………………………………………...11
  6. Описание входных данных и результат вычисления……………………….14

 

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

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

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

    выполняет расчеты и выводит на экран:

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

      - количество  деталей каждого типа, изготовленных за неделю;

      - заработок  за каждый день;

      - заработок  за неделю;

      - день  с наибольшим заработком.

 

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

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

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

         - стоимость изготовления детали  каждого из семи типов.

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

  

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

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

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

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

    Dim cost(7) As Double

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

    Dim amount(7,5) As Integer

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

    Dim pay(6) As Double

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

    Dim amount_n(7) As Integer

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

    Dim day As Integer

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

    Dim sumpay As Double 
     

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

    Dim m As Integer, p As Integer 

          Переменные  cost(7), pay(6), sumpay  могут быть не целыми числами, поэтому они объявлены как действительные.

          Переменные amount(7,5), amount_n(7), day – целые числа, так как смена рабочего составляет полный день, и он не может изготовить за смену половину детали. 
     

 

    Блок-схема 

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

          Общая структура курсовой работы имеет  вид, показанный на рисунках 3, 4, 5. Существуют некоторые типы блоков:

    • квадрат – блок решения
    • эллипс – блок используется для обозначения начала и конца алгоритма;
    • ромб – блок используется для обозначения условного оператора;
    • шестиугольник – блок используется для обозначения оператора цикла;
    • стрелками обозначен переход от одного действия к другому.

 

     
     

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

 

     

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

 

     

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

 

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

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

    I. Ввод начальных (нулевых) значений для расчетных величин:

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

    II. Открытие листа с начальными данными («Start»).

     Получение данных в рабочие переменные. 

    III. Открытие листа с результатами.

     Формирование  матрицы входных данных.

    Два вложенных  цикла: по деталям и по дням.

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

    После вывода из внутреннего цикла выводится  результат по деталям.

    Расчет заработной платы организован в этом же внутреннем цикле. 

          IV. Определение дня с максимальной заработной платой.

          Используется  алгоритм сравнения.

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

 

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

    Sub Funct() 
     
     

    Dim cost(7) As Double

    Dim amount(7, 5) As Integer

    Dim pay(6) As Double

    Dim amount_n(7) As Integer

    Dim day As Integer

    Dim sumpay As Double

    Dim m As Integer, p As Integer 
     

    For m = 1 To 7

    amount_n(m) = 0

    Next 

    For p = 1 To 6

        pay(p) = 0

    Next 

    sumpay = 0

    day = 0 

    Sheets("Start").Select

    For m = 1 To 7

    cost(m) = Cells(3 + m, 2)

    Next 

    For m = 1 To 7

        For p = 1 To 5

            amount(m, p) = Cells(3 + m, 2 + p)

        Next p

    Next m 
     

    Sheets("Results").Select

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

    Cells(2, 1) = "Наименование изделия" 

    Cells(2, 2) = "Стоимость 1 шт"

    Cells(2, 3) = "Изготовлено"

    Cells(3, 3) = "1 день"

    Cells(3, 4) = "2 день"

    Cells(3, 5) = "3 день"

    Cells(3, 6) = "4 день"

    Cells(3, 7) = "5 день"

    Cells(3, 8) = "Всего"

    Cells(4, 1) = "HDD"

    Cells(5, 1) = "CD ROM"

    Cells(6, 1) = "DVD ROM"

    Cells(7, 1) = "CARD READER"

    Cells(8, 1) = "MOTHERBOARD ASUS"

    Cells(9, 1) = "DDR-3 Gigabyte viseocard"

    Cells(10, 1) = "D-Link Switch" 

    For m = 1 To 7

        Cells(3 + i, 2) = cost(m)

        For p = 1 To 5

            Cells(3 + m, 2 + p) = amount(m, p)

            amount_n(m) = amount_n(m) + amount(m, p)

        Next p

        Cells(3 + m, 8) = amount_n(m)

    Next m 

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

    Cells(13, 1) = "Наименование изделия "

    Cells(13, 2) = "Стоимость 1 шт "

    Cells(13, 3) = "Заработано"

    Cells(14, 3) = "1 день"

    Cells(14, 4) = "2 день"

    Cells(14, 5) = "3 день"

    Cells(14, 6) = "4 день"

    Cells(14, 7) = "5 день"

    Cells(14, 8) = "Всего"

    Cells(15, 1) = "HDD"

    Cells(16, 1) = "CD ROM"

    Cells(17, 1) = "DVD ROM"

    Cells(18, 1) = "CARD READER"

    Cells(19, 1) = "MOTHERBOARD ASUS"

    Cells(20, 1) = "DDR-3 Gigabyte viseocard"

    Cells(21, 1) = "D-Link Switch" 

    For m = 1 To 7

        For p = 1 To 5

            Cells(14 + m, 2 + p) = amount(m, p) * cost(m)

            pay(p) = pay(p) + amount(m, p) * cost(m)

        pay(6) = pay(6) + amount(m, p) * cost(m)

        Next p

        Cells(14 + m, 2) = cost(m)

        Cells(14 + m, 8) = cost(m) * amount_n(m)

        Next m

       

         

    For p = 1 To 5

        Cells(22, 2 + p) = pay(p)

        If pay(p) > sumpay Then

        sumpay = pay(p)

        day = p

        End If

    Next 
     
     

    Cells(22, 8) = pay(6)

    Cells(23, 1) = "Заработок за неделю"

    Cells(23, 5) = pay(6)

    Cells(24, 1) = "День с максимальным заработком"

    Cells(24, 5) = day

    Cells(24, 6) = "Заработано"

    Cells(24, 8) = sumpay 

    End Sub

 

    Описание  входных данных и  результат вычислений 

    Создание документа  Microsoft Excel с именем inf_course_1.xls

    На лист Start вводятся начальные данные в таблицу.

    Далее открывается  редактор Visual Basic, в котором вводится код программы.

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