Курсовая: Программирование на 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 |