Научная Петербургская Академия

Курсовая: Программирование на Visual Basic

Курсовая: Программирование на 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. Блок-схема. В данной работе использованы следующие виды блоков: - квадрат – блок решения; - эллипс – данный блок используется для обозначения начала и конца алгоритма; - пятиугольник – данный блок используется для обозначения оператора цикла; - стрелками обозначен переход от одного действия в другому. Курсовая: Программирование на Visual Basic Курсовая: Программирование на Visual Basic Курсовая: Программирование на Visual Basic 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
6.2Проверка программы на всех НУЛЯХ 6.3Проверка программы на всех ЕДИНИЦАХ 7.Список литературы 1. Иванов М.Н., Суворов С.В. Информатика Часть 2. Программирование. Учебно-методическое пособие – М.; МГИУ, 2004 2. Слепцова Л.Д. Программирование на языке VBA. Самоучитель,: -М.: Издательский дом «Вильямс», 2004 3. Браун С. Visual Basic 5 c самого начала – СПб : Питер, 1998


(C) 2009