Программирование на языке VBA

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

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

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

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

- доход по каждой книге за 3 месяца

- доход за каждый месяц по всем книгам;

- общий доход по всем книгам за 3 месяца;

- наименование книги, принёсший наибольший доход

Содержание

1.Задание………………………………………………………….…………………….. 3

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

3.Блок-схема……………………………………………………………………………. 5

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

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

6.Описание входных данных и результат вычисления……….………………………12

6.1Проверка программы на произвольных данных……………………………...….. 12

6.2Проверка программы на всех НУЛЯХ……………………………………………. 13

6.3Проверка программы на всех ЕДИНИЦАХ………………………………………. 13

7.Список литературы…………………………………………………………………... 14

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

kyrsovaya.doc

— 170.00 Кб (Скачать)

МИНИСТЕРСТВО  ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

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

МОСКОВСКИЙ  ГОСУДАРСТВЕННЫЙ ИНДУСТРИАЛЬНЫЙ

УНИВЕРСИТЕТ

ИНСТИТУТ  ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ 
 
 
 
 
 
 
 

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

по дисциплине “Информатика” 
 
 
 
 
 
 
 
 
 
 
 

Задание: 3.3

Группа: 01Э31п

Студент: Петров Сергей Викторович 
 
 
 
 

Москва 2004

СОДЕРЖАНИЕ 

1.Задание………………………………………………………….……………………..  3

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

3.Блок-схема…………………………………………………………………………….  5

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

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

6.Описание  входных данных и результат  вычисления……….………………………12

6.1Проверка  программы на произвольных данных……………………………...….. 12

6.2Проверка  программы на всех НУЛЯХ……………………………………………. 13

6.3Проверка  программы на всех ЕДИНИЦАХ………………………………………. 13

7.Список  литературы…………………………………………………………………... 14 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1.Задание 

      Книжный магазин продал за 3 месяца различное  количество книг 12 наименований по цене, устанавливаемым в начале каждого  месяца (т.е. каждый месяц цены на книги менялись).

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

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

      - доход по каждой книге за 3 месяца

      - доход за каждый месяц по  всем книгам;

      - общий доход по всем книгам  за 3 месяца;

      - наименование книги, принёсший  наибольший доход 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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

1) cena(12,3) – стоимость одной книги каждого наименования в каждом месяце, представляет двумерный массив целых чисел

Dim cena(12,3) As Double 

2) koll(12,3) – количество книг каждого наименования, проданных в каждый из трёх месяцев, представляет двумерный массив целых чисел

Dim koll(12,3) As Integer 

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

Dim doh (4) As Double 

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

Dim kol_n(12) As Integer 

5) nam – порядковый номер наименования книги , принёсший наибольший доход, представляет массив дробных чисел

Dim name As Integer 

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

Dim i As Integer, j As Integer, p As Integer 

      Переменные  cena(12,3), doh(4), dohod могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные koll(12,3), koll_n(12), nam – целые числа, так как в книжном магазине продаются только целые книги, а не как половинки. 
 
 
 
 
 

3. Блок-схема. 

      В данной работе использованы следующие  виды блоков: 

      - квадрат – блок решения;

      - эллипс – данный блок используется для обозначения начала и конца алгоритма;

      - пятиугольник – данный блок  используется для обозначения  оператора цикла;

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

 

 

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

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

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

      Открытие  листа с начальными данными («Нач_д») и получение этих данных в рабочие  переменные (двумерные массивы cena (12,3) и koll (12,3)). 

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

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

      Конец программы. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Sub Funct()

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

Dim cena(12, 3) As Double    'Стоимость книги

Dim koll(12, 3) As Integer   'Количество (по месяцам)

Dim kol_n(12) As Integer     'Количество книг в месяц

Dim doh(4) As Double     'Доход в месяц

Dim nam As Integer    'Книга с наибольшим доходом

Dim i As Byte, j As Integer, p As Integer   'Счётчики циклов 
 

For i = 1 To 12

    kol_n(i) = 0

Next 

For j = 1 To 3

    doh(j) = 0

Next 

For p = 1 To 3

Next 

doh = 0

nam = 0 
 

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

For i = 1 To 12

    For p = 1 To 3

    cena(i, p) = Cells(3 + i, 1 + p)

    Next p

Next i 

For i = 1 To 12

    For j = 1 To 3

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

    Next j

Next i 

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

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

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

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

Cells(2, 5) = "Количество"

Cells(3, 2) = "1 мес"

Cells(3, 3) = "2 мес"

Cells(3, 4) = "3 мес"

Cells(3, 5) = "1 мес  "

Cells(3, 6) = "2 мес"

Cells(3, 7) = "3мес"

Cells(4, 1) = "Биология (пособие)"

Cells(5, 1) = "Вилла Белый конь"

Cells(6, 1) = "Властелин колец ч.1"

Cells(7, 1) = "Властелин колец ч.2"

Cells(8, 1) = "Властелин колец ч.3"

Cells(9, 1) = "Гаргантюа и Пантагрюэль"

Cells(10, 1) = "Деловые люди (сборник)"

Cells(11, 1) = "Основы политологии и социологии"

Cells(12, 1) = "Программирование на языке VBA"

Cells(13, 1) = "Угрюм-река"

Cells(14, 1) = "Учебник английского языка ч.1,2"

Cells(15, 1) = "Хоббит или туда и обратно" 

For i = 1 To 12

    For p = 1 To 3

    Cells(3 + i, 1 + p) = cena(i, p)

    Next p

    For j = 1 To 3

    Cells(3 + i, 4 + j) = kol_n(i)

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

    Next j

Next i 

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

'столбцов и  строк 

Cells(17, 1) = "Результат в денежном эквиваленте"

Cells(18, 1) = "Наименование"

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

Cells(18, 5) = "Доход"

Cells(18, 8) = "Всего"  'Общий доход за 3 месяца

Cells(18, 9) = "Книга"

Cells(19, 2) = "1 мес"

Cells(19, 3) = "2 мес"

Cells(19, 4) = "3 мес"

Cells(19, 5) = "1 мес"

Cells(19, 6) = "2 мес"

Cells(19, 7) = "3 мес"

Cells(20, 1) = "Биология (сборник)"

Cells(21, 1) = "Вилла Белый конь"

Cells(22, 1) = "Властелин колец ч.1"

Cells(23, 1) = "Властелин колец ч.2"

Cells(24, 1) = "Властелин колец ч.3"

Cells(25, 1) = "Гаргантюа и Пантагрюэль"

Cells(26, 1) = "Деловые люди (сборник)"

Cells(27, 1) = "Основы политологии и социологии"

Cells(28, 1) = "Программирование на языке VBA"

Cells(29, 1) = "Угрюм-река"

Cells(30, 1) = "Учебник английского языка ч.1,2"

Cells(31, 1) = "Хоббит или туда и обратно"

Cells(32, 1) = "Итого" 
 

For i = 1 To 12

    For p = 1 To 3

    Cells(19 + i, 1 + p) = cena(i, p)

    Next p

     

For j = 1 To 3

    Cells(19 + i, 4 + j) = koll(i, j) * cena(i, p)

    doh(j) = doh(j) + koll(i, j) * cena(i, p)

    doh(4) = doh(4) + koll(i, j) * cena(i, p)

    Next j

    Cells(19 + i, 8) = cena(i, p) * kol_n(i)

Next i 

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

Cells(18, 9) = "Книга"

Cells(32,8)=doh(4)

Cells(33,1)=”Общий доход”

Cells(33,5)=doh(4)

Cells(22,9)=nam

End Sub 
 

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

      Для начала создаём документ Microsoft Excel и записываем на рабочий лист начальные данные. Затем запускаем редактор Visual Basic, чтобы в нём написать код программы. Далее сохраняем изменения в созданном модуле и запускаем программу. Исправляем допущенные ошибки. После чего результат работы программы будет помещён на лист «Результат». 

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