Курсовая: Программирование на Visual Basic
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНДУСТРИАЛЬНЫЙ
УНИВЕРСИТЕТ
ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
Курсовая работа
по дисциплине УИнформатикаФ
Задание: 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, чтобы в нём написать
код программы. Далее сохраняем изменения в созданном модуле и запускаем
программу. Исправляем допущенные ошибки. После чего результат работы
программы будет помещён на лист лРезультат.
6.1Проверка программы на произвольных данных
| Начальные данные | ||||||
| Наименование | Стоимость | Количество | ||||
| 1 мес | 2 мес | 3 мес | 1 мес | 2 мес | в 3 мес | |
| Биология (пособие) | 145 | 150 | 140 | 7 | 10 | 3 |
| Вилла Белый конь | 58 | 60 | 55 | 11 | 9 | 7 |
| Властелин колец ч.1 | 130 | 135 | 140 | 25 | 30 | 35 |
| Властелин колец ч.2 | 130 | 135 | 140 | 25 | 30 | 30 |
| Властелин колец ч.3 | 115 | 120 | 125 | 25 | 30 | 30 |
| Гаргантюа и Пантагрюэль | 90 | 87 | 84 | 11 | 9 | 10 |
| Деловые люди (сборник) | 125 | 130 | 110 | 15 | 15 | 20 |
| Основы политологии и социологии | 70 | 68 | 65 | 6 | 8 | 6 |
| Программирование на языке VBA | 125 | 130 | 145 | 7 | 8 | 5 |
| Угрюм-река | 80 | 85 | 90 | 10 | 15 | 10 |
| Учебник английского языка ч.1,2 | 120 | 110 | 115 | 10 | 20 | 15 |
| Хоббит или туда и обратно | 90 | 95 | 100 | 20 | 30 | 35 |
| Количество проданных книг | ||||||
| Наименование | Стоимость | Доход | ||||
| 1 мес | 2 мес | 3 мес | 1 мес | 2 мес | в 3 мес | |
| Биология (пособие) | 145 | 150 | 140 | 1015 | 1500 | 420 |
| Вилла Белый конь | 58 | 60 | 55 | 638 | 540 | 385 |
| Властелин колец ч.1 | 130 | 135 | 140 | 3250 | 4050 | 4900 |
| Властелин колец ч.2 | 130 | 135 | 140 | 3250 | 4050 | 4200 |
| Властелин колец ч.3 | 115 | 120 | 125 | 2875 | 3600 | 3750 |
| Гаргантюа и Пантагрюэль | 90 | 87 | 84 | 990 | 783 | 840 |
| Деловые люди (сборник) | 125 | 130 | 110 | 1875 | 1950 | 2200 |
| Основы политологии и социологии | 70 | 68 | 65 | 420 | 544 | 390 |
| Программирование на языке VBA | 125 | 130 | 145 | 875 | 1040 | 725 |
| Угрюм-река | 80 | 85 | 90 | 800 | 1275 | 900 |
| Учебник английского языка ч.1,2 | 120 | 110 | 115 | 1200 | 2200 | 1725 |
| Хоббит или туда и обратно | 90 | 95 | 100 | 1800 | 2850 | 3500 |
| Результат в денежном эквиваленте | ||||||||
| Наименование | Стоимость | Доход | Всего | Книга | ||||
| 1 м | 2 м | 3 м | 1 м | 2 м | 3 м | |||
| Биология (пособие) | 145 | 150 | 140 | 1015 | 1500 | 420 | 2935 | |
| Вилла Белый конь | 58 | 60 | 55 | 638 | 540 | 385 | 1563 | |
| Властелин колец ч.1 | 130 | 135 | 140 | 3250 | 4050 | 4900 | 12200 | 12200 |
| Властелин колец ч.2 | 130 | 135 | 140 | 3250 | 4050 | 4200 | 11500 | |
| Властелин колец ч.3 | 115 | 120 | 125 | 2875 | 3600 | 3750 | 10225 | |
| Гаргантюа и Пантагрюэль | 90 | 87 | 84 | 990 | 783 | 840 | 2613 | |
| Деловые люди (сборник) | 125 | 130 | 110 | 1875 | 1950 | 2200 | 6025 | |
| Основы политологии и социологии | 70 | 68 | 65 | 420 | 544 | 390 | 1354 | |
| Программирование на языке VBA | 125 | 130 | 145 | 875 | 1040 | 725 | 2640 | |
| Угрюм-река | 80 | 85 | 90 | 800 | 1275 | 900 | 2975 | |
| Учебник английского языка ч.1,2 | 120 | 110 | 115 | 1200 | 2200 | 1725 | 5125 | |
| Хоббит или туда и обратно | 90 | 95 | 100 | 1800 | 2850 | 3500 | 8150 | |
| ИТОГО | 67305 | |||||||
| Общий доход за 3 месяца | ||||||||
| Книга с наибольшим доходом 3 | ||||||||
