Курсовая работа: Написание программы на языке VBA
Название: Написание программы на языке VBA Раздел: Рефераты по информатике Тип: курсовая работа | |||||
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ РОССИЙСКОЙ ФЕДЕРАЦИИ ИДО ГОУ МГИУ Курсовая работа По дисциплине «Информатика» Задание:№ 93 Группа: № Жл09Ф22п Студент: Соколова Виктория Игоревна Руководитель: Ф.И.О. Левкова Анна Витальевна Железнодорожный 2010 Содержание 1. Задание на курсовую работу 2. Описание переменных 3. Блок схема 4. Описание алгоритма 5. Листинг программы 6. Описание входных данных и результат вычислений 7. Список использованной литературы 1. Задание на курсовую работуВ коллективном хозяйстве имеются цветочные оранжереи (розы, гвоздики, лилии - всего 6 видов цветов). Каждый год в течение 3 лет колхоз собирал букеты с каждой оранжереи и продавал их по закупочным ценам, которые были различны в разные годы. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран: • исходные данные в виде таблицы, где указаны наименования цветов, закупочные цены букетов каждого вида и количество букетов в каждом году; • общее количество букетов за 3 года; • доход по всем цветам за каждый год; • общий доход колхоза за 3 года; • вид цветов, принесший максимальный доход за 2 года. 2. Описание переменныхИсходные данные находятся на листе «Нач_д» (рис. 1) и содержат следующую информацию: 1) Наименование цветов. 2) Количество проданных букетов в год (количество не меняется). 3) Закупочные цены букетов каждого вида. Результаты работы программы оформляются на листе «Результат» (рис. 2). Рис.1. Лист с начальными данными Рис.2. Полученные результаты В программе переменные описаны следующим образом: 1) cena(6,3) — закупочные цены каждого вида цветов Dim cena(6,3) As Integer 2) koll (6) — количество букетов каждого вида Dim koll(6) As Integer 3) zar (6,3) — доход за каждый год (от 1 до 3) Dim zar (6,3) As Integer 4) koll
_
n
(6)
— количество букетов каждого вида за 3 года Dim kol_n(6) As Integer 5) den — доход колхоза за 3 года Dim den As Long 6)Koll _ i - Итоговое количество букетов за 3 года Dim Koll_i As Integer 7)zarpl (6) — доход за 3 года Dim zarpl(6) As Integer 8) sum (6.3)- вид цветов принесший максимальный доход за 2 года. В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами. Dim i As Integer, j As Integer Переменные для расчета я взяла целые числа 3. Блок схема J=j= Рис3. Блок- схема
Рис.3. Блок-схема (продолжение) Рис.3. Блок-схе
4. Описание алгоритмаНачало программы. Ввод начальных (нулевых) значений для расчетных величин (количество проданных букетов за год, доход по годам и общий, Вид цветов, принесший максимальный доход за 2 года). Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(7) и kоll(7, 5)). Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждому букету и году). Во внутреннем цикле (по годам, расчет по 1 букету) определяется количество букетов за 3 года. Результат выводится. Расчет сумм дохода по букетам за каждый год вывод результатов. Организуется два вложенных цикла: внешний по букетам, внутренний по годам. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление суммы доходод по i-му букету в j-й год с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) — вывод количество букетов. Расчет дохода за каждый год организован в этом же внутреннем цикле. Определение вида цветов принесшего максимальный доход за 2 года. Сравниваем доход за 2 года(1-й год+ 2-й год; 1-й год+ 3-й год; 2-й год+ 3-й год) сумма двух с наибольшим показателем складывается и выводится вид цветов. 5. Листинг программыSub Function() 'Сначала объявляем переменные, используемые в программе. Sub Funct() 'объявляем переменные используемые в программе Dim i As Integer, j As Integer, min As Integer, z As Integer 'счетчики циклов Dim cena(6, 3) As Integer ' закупочные цены каждого вида Dim zar(6, 3) As Integer 'доход за каждый год Dim koll_n(6) As Integer 'количество букетов каждого вида вида за 3 года Dim den As Long 'доход колхоза за 3 года Dim zarpl(6) As Integer 'доход за 3 года Dim koll(6) As Integer 'количество букетов каждого вида Dim koll_i As Integer 'итоговое количество букетов за 3 года Dim sum(6, 3) As Integer 'в начале программы все переменные равны нулям ' создаем цикл , For i = 1 To 6 koll_n(i) = 0 Next koll_i = 0 den = 0 'считываем начальные данные Sheets("Нач_д").Select 'в каждую ячейку массива koll(i) записывается количество букетов каждого вида 'для этого используем цикл For i = 1 To 6 Koll(i) = Cells(3 + i, 2) koll_n(i) = koll(i) * 3 koll_i = koll_i + koll_n(i) zarpl(i) = 0 Next i 'в каждую ячейку массива cena(i, j) записывается закупочные цены каждого вида за год 'так как массив двумерный цикл проходит по двум счетчикам For i = 1 To 6 For j = 1 To 3 cena(i, j) = Cells(3 + i, 2 + j) zar(i, j) = 0 Next j Next i 'на листе "Результат" создаются ячейки с определенными названиями Sheets("Результат").Cells(1, 1) = "Закупочные цены за год" Sheets("Результат").Cells(2, 1) = "Наименование букетов" Sheets("Результат").Cells(2, 2) = "Количество букетов" Sheets("Результат").Cells(2, 3) = "Закуплено" Sheets("Результат").Cells(3, 3) = "1-й год" Sheets("Результат").Cells(3, 4) = "2-й год" Sheets("Результат").Cells(3, 5) = "3-й год" Sheets("Результат").Cells(3, 6) = "Всего" Sheets("Результат").Cells(4, 1) = "розы" Sheets("Результат").Cells(5, 1) = "гвоздики" Sheets("Результат").Cells(6, 1) = "лилии" Sheets("Результат").Cells(7, 1) = "ромашка" Sheets("Результат").Cells(8, 1) = "хризантема" Sheets("Результат").Cells(9, 1) = "тюльпан" Sheets("Результат").Cells(10, 1) = "Итого" Sheets("Результат").Cells(10, 6) = koll_i 'в соответствующие ячейки записываются количество букетов For i = 1 To 6 Sheets ("Результат").Cells(3 + i, 2) = koll(i) Sheets ("Результат").Cells(3 + i, 6) = koll_n(i) For j = 1 To 3 'в соответствующие ячейки записываются закупочные цены за год Sheets("Результат").Cells(3 + i, 2 + j) = cena(i, j) 'рассчитывается закупочные цены каждого вида за год Next j 'результат записывается в соответствующие ячейки Next i 'на листе "Результат" создаются ячейки с определенными названиями Sheets("Результат").Select Sheets("Результат").Cells(12, 1) = "Результат в денежном эквиваленте" Sheets("Результат").Cells(13, 1) = "Наименование букетов" Sheets("Результат").Cells(13, 2) = "количество букетов в каждом году." Sheets("Результат").Cells(13, 3) = "Заработано" Sheets("Результат").Cells(14, 3) = "1-й год" Sheets("Результат").Cells(14, 4) = "2-й год" Sheets("Результат").Cells(14, 5) = "3-й год" Sheets("Результат").Cells(14, 6) = "Всего" Sheets("Результат").Cells(15, 1) = "роза" Sheets("Результат").Cells(16, 1) = "гвоздики" Sheets("Результат").Cells(17, 1) = "лилии" Sheets("Результат").Cells(18, 1) = "ромашка" Sheets("Результат").Cells(19, 1) = "хризантема" Sheets("Результат").Cells(20, 1) = "тюльпан" Sheets("Результат").Cells(21, 1) = "ИТОГО" Sheets("Результат").Cells(22, 1) = "Вид цветов принесший макс доход за 2 года" 'производится вывод количества букетов в каждом году For i = 1 To 6 Sheets ("Результат").Cells (14 + i, 2) = koll (i) Next i 'расчет сумм: проданных букетов, за 3 года каждого вида цветов, общего дохода за 3 года; 'вывод: проданных букетов, за 3 года каждого вида цветов For i = 1 To 6 For j = 1 To 3 zar (i, j) = koll(i) * cena(i, j) Sheets ("Результат").Cells (14 + i, 2 + j) = zar(i, j) zarpl (i) = zarpl(i) + zar(i, j) Next j Sheets ("Результат").Cells (14 + i, 6) = zarpl (i) den = den + zarpl (i) Next i 'вывод общего дохода за 3 года Sheets("Результат").Cells(21, 6) = den 'расчет вида цветов за 2 года принесших максим доход min = 0 For i = 1 To 6 sum (i, 1) = zar (i, 1) + zar (i, 2) sum (i, 2) = zar (i, 2) + zar (i, 3) sum (i, 3) = zar (i, 1) + zar (i, 3) For j = 1 To 3 If sum (i, j) > min Then z = i min = sum(i, j) End If Next j Next i Sheets ("Результат").Cells (22, 6) = Sheets ("Результат").Cells (14 + z, 1) End Sub 6. Описание входных данных и результат вычислений Проверка программы на всех единицах: Проверка на всех нулях: Проверка на произвольных данных: Исходные данные для задания № представлены на Рис.№1., решение – на Рис.2.. 7. Список использованной литературы1. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005. 2. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008. 3. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2006. 4. Моделирование с помощью Microsoft Excel и VBA. Разработка систем поддержки принятия решений/ Кристиан Олбрайт: Вильямс, 2005 5. Профессиональная разработка приложений Excel/ Стивен Буллен, Роб Боуви, Джон Грин: Вильямс, 2005 6. Самоучитель VBA/ Андрей Гарнаев: БХВ-Петербург,2004 7. Самоучитель программирования на VBA в Microsoft Office/В. Д. Хореев: Юниор, 2001 |