Автор работы: Пользователь скрыл имя, 21 Мая 2012 в 22:21, курсовая работа
Задание на курсовую. Магазин бытовой химии продал за 5 месяцев различное количество мыла (13 наименований) по цене, устанавливаемой в начале каждого месяца (каждый месяц цены на мыло менялись).
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран.
1. Задание на курсовую работу 3
2. Описание переменных 4
3. Блок схема 7
4. Описание алгоритма 9
5. Листинг программы 11
6. Описание входных данных и результат вычислений 15
7. Список использованной литературы 20
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ИДО ГОУ МПИУ
Курсовая работа
По дисциплине «Информатика»
Задание: №28
Группа: № Эл 10 Б 21
Студент: Пермякова Ю.А.
Руководитель: Дедехина О.В.
Москва 2011
Содержание
1. Задание на курсовую работу
2. Описание переменных
3. Блок схема
4. Описание алгоритма
5. Листинг программы
6. Описание входных данных и результат вычислений
7. Список использованной литературы
Задание 68
Магазин бытовой химии продал за 5 месяцев различное количество мыла (13 наименований) по цене, устанавливаемой в начале каждого месяца (каждый месяц цены на мыло менялись).
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
исходные данные в виде таблицы, где указаны наименования мыла, цена мыла в каждом месяце, количество проданного мыла в течение каждого месяца;
доход по каждому виду мыла за первые 2 месяца;
доход за каждый месяц по всему мылу;
общий доход по всему мылу за 5 месяцев;
наименование мыла, принесшего наибольший доход в первом месяце.
Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию:
1) Наименование мыла, проданного за 5 месяцев.
2) Цена на проданное мыло
Результаты работы программы оформляются на листе «Результат» (рис. 2).
Рис.1. Лист с начальными данными
Рис.2. Полученные результаты
В программе переменные описаны следующим образом:
1) cena(13,5) — цена одной единицы мыла каждого наименования
представляет массив дробных чисел
Dim cena(13,5) As Double
2) koll(13,5) — количество мыла каждого наименования проданного в каждый из 5-ти месяцев, представляет двумерный массив целых чисел
Dim koll(13,5) As Integer
3) doh(6) — доход за каждый день (от 1 до 5) и общий доход за
весь период представляет массив дробных чисел
Dim doh(6) As Double
4) koll_n(13) — количество проданного мыла каждого вида за истекший период представляет массив целых чисел
Dim kol_n(13) As Integer
5) mylo — порядковый номер мыла с наибольшим доходом представляет
целое число
Dim mylo As Integer
6) dohod — сумма наибольшего дохода в первом месяце представляет дробное число
Dim dohod As Double
В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами.
Dim i As Integer, j As Integer
Переменные cena(13), doh(6), dohod могут быть и не целыми числами, поэтому они объявлены как действительные.
Переменные koll(13,5) koll_n(13), mylo — целые числа.
3. Блок схема
Рис.3 Блок-схема
Рис.3. Блок-схема (окончание)
Начало программы.
Начальная инициализация.
Начальная инициализация массива цены.
Начальная инициализация массива количества.
Вывод заголовков «Доход за первые 2 мес», «Наименование мыла», «Доход».
Просчитываем и выводим результат за 2 месяца по выбранному мылу.
Выводим наименование мыла.
Считаем доход за каждый месяц по всему мылу.
Считаем общий доход по всем видам мыла и записываем в 6 элемент массива.
Вычисляем мыло которое принесло наибольший доход в первом месяце и запоминаем индекс лучшего мыла.
Выводим доход за каждый месяц по всему мылу.
Вывод заголовков «Доход по месяцам», 1-ый месяц, 2-ой месяц, 3-ий месяц, 4-ый месяц, 5-ый месяц, «Общий доход по всему мылу».
Вывод«Общий доход по всему мылу за 5 мес».
Конец программы
' начальная инициализация
For j = 1 To 6
doh(j) = 0
Next j
dohod = 0
mylo = 0
Sheets("Нач_д").Select
' начальная инициализация массива цены
For i = 1 To 13
For j = 1 To 5
cena(i, j) = Cells(i + 3, j + 1)
Next j
Next i
' начальная инициализация массива количества
For i = 1 To 13
For j = 1 To 5
koll(i, j) = Cells(i + 3, j + 6)
Next j
Next i
Sheets("Результат").Select
' ВЫВОД ЗАГОЛОВКОВ
'"Доход за первые 2 мес"
'"Наименование мыла" "Доход"
Sheets("Результат").Cells(2, 1) = "Доход за первые 2 мес"
Sheets("Результат").Cells(3, 1) = "Наименование мыла"
Sheets("Результат").Cells(3, 2) = "Доход"
' доход по каждому виду мыла за первые 2 месяца;
For i = 1 To 13 ' цикл по видам мыла
Sheets("Результат").Cells(3 + i, 2) = koll(i, 1) * cena(i, 1) + koll(i, 2) * cena(i, 2) 'просчитываем и выводим доход за 2 месяца по выбранному мылу
Sheets("Результат").Cells(3 + i, 1) = Sheets("Нач_д").Cells(i + 3, 1) ' Выводим наименование мыла
For j = 1 To 5
doh(j) = doh(j) + koll(i, j) * cena(i, j) ' считаем доход за каждый месяц по всему мылу;
doh(6) = doh(6) + koll(i, j) * cena(i, j) ' считаем общий доход по всем видам мыла и записывем в 6 -ой элемент массива
Next j
' вычисляем мыло которое принесло наибольший доход в первом месяце
If koll(i, 1) * cena(i, 1) > dohod Then
dohod = koll(i, 1) * cena(i, 1) ' запоминаем самый лучший доход в первом месяце
mylo = i ' запоминаем индекс лучшего мыла
End If
Next i
'Выводим доход за каждый месяц по всему мылу;
For j = 1 To 5
Sheets("Результат").Cells(21, j) = doh(j)
Next j
' ВЫВОД ЗАГОЛОВКОВ
'Доход по месяцам
'1 мес 2 мес 3 мес 4 мес 5 мес Общий доход по всему мылу
Sheets("Результат").Cells(19, 1) = "Доход по месяцам"
Sheets("Результат").Cells(20, 1) = "1 мес"
Sheets("Результат").Cells(20, 2) = "2 мес"
Sheets("Результат").Cells(20, 3) = "3 мес"
Sheets("Результат").Cells(20, 4) = "4 мес"
Sheets("Результат").Cells(20, 5) = "5 мес"
Sheets("Результат").Cells(20, 6) = "Общий доход по всему мылу"
' ВЫВОД "общий доход по всему мылу за 5 месяцев"
Sheets("Результат").Cells(21, 6) = doh(6)
Sheets("Результат").Cells(23, 2) = "Максимальный доход"
Sheets("Результат").Cells(24, 2) = dohod
Sheets("Результат").Cells(23, 1) = "Наименование мыла с максимальным доходом в 1-ом месяце"
Sheets("Результат").Cells(24, 1) = Sheets("Нач_д").Cells(mylo + 3, 1)
End Sub
_______________________
6. Описание входных данных и результат вычислений
Проверка программы на всех единицах:
Проверка на всех нулях:
Проверка на произвольных данных:
Исходные данные для задания № представлены на Рис.№1., решение – на Рис.2..
1. MS Office XP, 2003 Word, Excel, Access, Outlook, PowerPoint, FrontPage, MS Project/ А. К. Гультяев: Корона-Век, 2006
2. VBA. Практическое программирование/ Туркин Олег: Солон-пресс,2007
3. VBA/ Кузьменко В.Г.: Бином,2008.
4. Измерение, управление и регулирование с помощью макросов VBA в Word и Excel/ Берндт Г.-Й.: КОРОНА-Век, 2008
5. Информатика. Методические указания по выполнению практических работ в компьютерном классе (Access, Internet) / Гришин М.П., Юрасов А.Б. М.: МГИУ, 2003.
6. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005.
7. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008.
8. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006.
9. Моделирование с помощью Microsoft Excel и VBA. Разработка систем поддержки принятия решений/ Кристиан Олбрайт: Вильямс, 2005
10. Профессиональная разработка приложений Excel/ Стивен Буллен, Роб Боуви, Джон Грин: Вильямс, 2005
11. Самоучитель VBA/ Андрей Гарнаев: БХВ-Петербург,2004
12. Самоучитель программирования на VBA в Microsoft Office/В. Д. Хореев: Юниор, 2001
13. Электронные таблицы Microsoft Excel. Проблемы и решения/ Лори Анн Ульрих: Эком, 2002