Программирование в VBA
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Курсовая работа
по дисциплине
«ИНФОРМАТИКА»
Задание: 9
Группа:
Студент:
Руководитель:
* *
СОДЕРЖАНИЕ
Задание на курсовую работу…………………………………………………..2
Описание переменных…………………………………………………………3
Блок-схема……………………………………………………………………...6
Описание алгоритма…………………………………………………………..10
Листинг программы…………………………………………………………...11
Описание входных данных и результат вычисления……………………….14
Задание на курсовую работу
В течение 5-ти дней (рабочая неделя) рабочий изготавливает детали 7 различных типов. Известно количество изготовленных им деталей за каждый день и стоимость изготовления одной детали каждого типа (стоимость изготовления детали не меняется).
Написать программу на языке VBA, которая вводит исходные данные,
выполняет расчеты и выводит на экран:
- исходные данные в виде таблицы, где перечислены наименования деталей, стоимость их изготовления, количество деталей, изготовленных за каждый день;
- количество деталей каждого типа, изготовленных за неделю;
- заработок за каждый день;
- заработок за неделю;
- день с наибольшим заработком.
Описание переменных
Исходные данные находятся на листе «Start» (рис. 1) и содержат следующую информацию:
- количество деталей каждого из семи типов, изготовленных за пять рабочих дней.
- стоимость изготовления детали каждого из семи типов.
Результаты работы программы находятся на листе «Result» (рис. 2).
Рис. 1 Лист с начальными данными
Рис.2 Полученные результаты
В программе перменные описаны следующим образом:
cost(7) – стоимость изготовления одной единицы каждого изделия, представляет массив дробных чисел
Dim cost(7) As Double
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, в котором вводится код программы.
Изменения сохраняются в созданном модуле.
Программа запускается с помощью F5.
Результат помещается на лист Results.
Проводится проверка работы кода с нулевыми и единичными начальными данными.
«Нулевой» результат
Количество изготовленных деталей (нулевой)
Наименование изделия
Стоимость 1 шт
Изготовлено
1 день
2 день
3 день
4 день
5 день
HDD
0
0
0
0
0
0
CD ROM
0
0
0
0
0
0
DVD ROM
0
0
0
0
0
0
CARD READER
0
0
0
0
0
0
MOTHERBOARD ASUS
0
0
0
0
0
0
DDR-3 Gigabyte viseocard
0
0
0
0
0
0
D-Link Switch
0
0
0
0
0
0
«Единичный» результат
Количество изготовленных деталей (единичный)
Наименование изделия
Стоимость 1 шт
Изготовлено
1 день
2 день
3 день
4 день
5 день
HDD
1
1
1
1
1
1
CD ROM
1
1
1
1
1
1
DVD ROM
1
1
1
1
1
1
CARD READER
1
1
1
1
1
1
MOTHERBOARD ASUS
1
1
1
1
1
1
DDR-3 Gigabyte viseocard
1
1
1
1
1
1
D-Link Switch
1
1
1
1
1
1
Результат с выбранными данными
Количество изготовленных деталей
Наименование изделия
Стоимость 1 шт
Изготовлено
1 день
2 день
3 день
4 день
5 день
HDD
100,5
2
1
5
1
4
CD ROM
25
4
3
2
7
9
DVD ROM
30,8
12
2
7
5
4
CARD READER
15,8
6
5
10
8
12
MOTHERBOARD ASUS
237,4
3
13
1
3
5
DDR-3 Gigabyte viseocard
597,3
2
4
2
4
2
D-Link Switch
87,6
1
2
3
2
1
Результат после проведенных вычислений
Количество изготовленных деталей
Наименование изделия
Стоимость 1шт
Изготовлено
1 день
2 день
3 день
4 день
5 день
Всего
HDD
100,5
2
1
5
1
4
13
CD ROM
25
4
3
2
7
9
25
DVD ROM
30,8
12
2
7
5
4
30
CARD READER
15,8
6
5
10
8
12
41
MOTHERBOARD ASUS
237,4
3
13
1
3
5
25
DDR-3 Gigabyte viseocard
597,3
2
4
2
4
2
14
D-Link Switch
87,6
1
2
3
2
1
9
Конечный результат
Результат в денежном эквиваленте
Наименование изделия
Стоимость 1 шт
Заработано
1 день
2 день
3 день
4 день
5 день
Всего
HDD
100,5
201
100,5
502,5
100,5
402
1307
CD ROM
25
100
75
50
175
225
625
DVD ROM
30,8
369,6
61,6
215,6
154
123,2
924
CARD READER
15,8
94,8
79
158
126,4
189,6
647,8
MOTHERBOARD ASUS
237,4
712,2
3086,2
237,4
712,2
1187
5935
DDR-3 Gigabyte viseocard
597,3
1194,6
2389,2
1194,6
2389,2
1194,6
8362
D-Link Switch
87,6
87,6
175,2
262,8
175,2
87,6
788,4
ИТОГО
2759,8
5966,7
2620,9
3832,5
3409
18589
Заработок за неделю
18588,9
День с максимальным заработком
2
Заработано
5967

Нравится материал? Поддержи автора!
Ещё документы из категории информатика:
Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.
После чего кнопка «СКАЧАТЬ» станет доступной!
Кнопочки находятся чуть ниже. Спасибо!
Кнопки:
Скачать документ