РефератыИнформатикаПрПрограммирование в VBA

Программирование в VBA


ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ


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


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


по дисциплине


«ИНФОРМАТИКА»


Задание: 9


Группа:


Студент:


Руководитель:


* *


СОДЕРЖАНИЕ


1. Задание на курсовую работу…………………………………………………..2


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


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


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


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


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


Задание на курсовую работу


В течение 5-ти дней (рабочая неделя) рабочий изготавливает детали 7 различных типов. Известно количество изготовленных им деталей за каждый день и стоимость изготовления одной детали каждого типа (стоимость изготовления детали не меняется).


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


выполняет расчеты и выводит на экран:


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


- количество деталей каждого типа, изготовленных за неделю;


- заработок за каждый день;


- заработок за неделю;


- день с наибольшим заработком.


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


Исходные данные находятся на листе «Start» (рис. 1) и содержат следующую информацию:


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


- стоимость изготовления детали каждого из семи типов.


Результаты работы программы находятся на листе «Result» (рис. 2).



Рис. 1 Лист с начальными данными



Рис.2 Полученные результаты


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


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


Dim cost(7) As Double


2) 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


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


Создание документа MicrosoftExcelс именем inf_course_1.xls


На лист Start вводятся начальные данные в таблицу.


Далее открывается редактор VisualBasic, в котором вводится код программы.


Изменения сохраняются в созданном модуле.


Программа запускается с помощью 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
Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Программирование в VBA

Слов:1772
Символов:20238
Размер:39.53 Кб.