Автор работы: Пользователь скрыл имя, 10 Ноября 2010 в 12:58, Не определен
Курсовая работа
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ИДО ГОУ
МГИУ
Курсовая работа
По дисциплине
«Информатика»
Задание:№ 38
Группа: № П09Б22п
Студент: Булдыгина Н.В.
Руководитель: Иванов М.Н.
Москва 2010
Содержание
Магазин велосипедов продал за год разное количество велосипедов (10 наименований) по цене, устанавливаемой в начале каждого месяца.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
Исходные данные находятся на листе «Лист1» (рис. 1) и содержат следующую информацию:
Результаты
работы программы оформляются на
листе «Лист2» (рис. 2).
Рис.1. Лист с начальными данными
Рис.2. Полученные результаты
В программе переменные описаны следующим образом:
1) cena(10) — деньги,
вырученные от продажи одного велосипеда,
представляет массив дробных чисел
Dim cena(10) As Double
2) koll(10,12) — количество велосипедов каждого вида, проданных за каждый месяц, представляет двумерный массив целых чисел
Dim koll(10,12) As Integer
3) zar(13) — заработок за каждый месяц (от января до декабря) и общий заработок за год представляет массив дробных чисел
Dim zar(13) As Double
4) koll_n(12) — количество проданных велосипедов каждой модели за год представляет массив целых чисел
Dim kol_n(12) As Integer
5) num— порядковый номер модели велосипеда, принесшей наибольший доход, представляет целое число
Dim den As Integer
В программе также были использованы вспомогательные переменные, счетчики циклов, i и j, являющиеся целыми числами.
Dim i As Integer, j As Integer
Переменные cena(10), zar(13), могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные koll(10,12) koll_n(12), den — целые числа, так как мы считаем, что расчетный период составляет полный месяц, и производители могут продать только полностью собранный велосипед.
Рис.3.
Блок-схема (продолжение)
Рис.3. Блок-схема (продолжение)
Рис.3. Блок-схема (окончание)
Начало программы.
Ввод начальных (нулевых) значений для расчетных величин (количество проданных велосипедов за месяц, выручка по месяцам и за год, день с наибольшим заработком и величина максимальной выручки).
Открытие листа с начальными данными («Лист1») и получение этих данных в рабочие переменные (массивы сеnа(10) и kоll(12, 10)).
Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждой модели велосипеда и месяцу). Во внутреннем цикле (по месяцам, расчет по одной модели) суммируется количество проданных велосипедов, после выхода из внутреннего цикла выводится результат по модели.
Расчет величины выручки от продажи велосипедов за каждый месяц, количество проданных велосипедов и вывод результатов. Организуется два вложенных цикла: внешний по моделям, внутренний по месяцам. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление выручки от продажи i-ого велосипеда в j-й месяц с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) — вывод стоимости одного велосипеда и по всем велосипедам. Расчет выручки за каждый месяц организован в этом же внутреннем цикле.
Определение наименования велосипеда, принесшего наибольший доход за год. Используется алгоритм сравнения, при равенстве двух и более годовых доходов результативным считается последний доход.
Private Sub CommandButton1_Click()
'Сначала объявляем переменные, используемые в программе.
'счетчики циклов
Dim i, j As Integer
'количество проданных велосипедов (по месяцам)
Dim koll(10, 12) As Integer
'выручка за месяц
Dim zar(13) As Double
'количество проданных велосипедов (за год)
Dim koll_n(12) As Integer
'велосипед, принесший наибольший доход за год
Dim num As Integer
'стоимость велосипеда
Dim cena(10) As Double
'переменные, нужные для предварительных расчетов
Dim zarpl As Double
Dim pic As Double
Dim comb(10) As Double
‘Далее всем переменным присваивается нулевое значение.
For i = 1 To 10
koll_n(i) = 0
comb(i) = 0
Next
For j = 1 To 13
zar(j) = 0
Next
pic = 0
zarpl = 0
num = 0
'В этом фрагменте
кода происходит считывание
Sheets("Лист1").Select
For i = 1 To 10
cena(i) = Cells(3 + i, 2)
Next
For i = 1 To 10
For j = 1 To 12
koll(i, j) = Cells(3 + i, 2 + j)
Next j
Next i
'Далее на листе «Лист2» в ячейку с определенным номером вводится ее название.
Sheets("Лист2").Cells(2, 1) = "Модель"
Sheets("Лист2").Cells(2, 2) = "Стоимость 1 шт."
Sheets("Лист2").Cells(2, 3) = "Продано"
Sheets("Лист2").Cells(3, 3) = "Январь"
Sheets("Лист2").Cells(3, 4) = "Февраль"
Sheets("Лист2").Cells(3, 5) = "Март"
Sheets("Лист2").Cells(3, 6) = "Апрель"
Sheets("Лист2").Cells(3, 7) = "Май"
Sheets("Лист2").Cells(3, 8) = "Июнь"
Sheets("Лист2").Cells(3, 9) = "Июль"
Sheets("Лист2").Cells(3, 10) = "Август"
Sheets("Лист2").Cells(3, 11) = "Сентябрь"
Sheets("Лист2").Cells(3, 12) = "Октябрь"
Sheets("Лист2").Cells(3, 13) = "Ноябрь"
Sheets("Лист2").Cells(3, 14) = "Декабрь"
Sheets("Лист2").Cells(3, 15) = "Всего"
Sheets("Лист2").Cells(4, 1) = "Школьник"
Sheets("Лист2").Cells(5, 1) = "Дружба"
Sheets("Лист2").Cells(6, 1) = "Аист"
Sheets("Лист2").Cells(7, 1) = "Самара"
Sheets("Лист2").Cells(8, 1) = "Next"
Sheets("Лист2").Cells(9, 1) = "Honda"
Sheets("Лист2").Cells(10, 1) = "Урал"
Sheets("Лист2").Cells(11, 1) = "Салют"
Sheets("Лист2").Cells(12, 1) = "Орленок"
Sheets("Лист2").Cells(13,
1) = "Forward"
'В этом фрагменте
происходит вывод на рабочий
лист выручку по моделям за
месяц и количество проданных
велосипедов за год.
For i = 1 To 10
Sheets("Лист2").Cells(3
+ i, 2) = cena(i)
For j = 1 To 12
Sheets("Лист2").Cells(3 + i, 2 + j) = koll(i, j)
koll_n(i) = koll_n(i) + koll(i, j)
Next j
Sheets("Лист2").Cells(3 + i, 15) = koll_n(i)
Next i
'Ниже происходит ввод названий соответствующих столбцов и строк.
Sheets("Лист2").Select
Sheets("Лист2").Cells(17, 1) = "Модель"
Sheets("Лист2").Cells(17, 2) = "Стоимость 1 шт."
Sheets("Лист2").Cells(17, 3) = "Заработано"
Sheets("Лист2").Cells(18, 3) = "Январь"
Sheets("Лист2").Cells(18, 4) = "Февраль"
Sheets("Лист2").Cells(18, 5) = "Март"
Sheets("Лист2").Cells(18, 6) = "Апрель"
Sheets("Лист2").Cells(18, 7) = "Май"
Sheets("Лист2").Cells(18, 8) = "Июнь"
Sheets("Лист2").Cells(18, 9) = "Июль"
Sheets("Лист2").Cells(18, 10) = "Август"
Sheets("Лист2").Cells(18, 11) = "Сентябрь"
Sheets("Лист2").Cells(18, 12) = "Октябрь"
Sheets("Лист2").Cells(18, 13) = "Ноябрь"
Sheets("Лист2").Cells(18, 14) = "Декабрь"
Sheets("Лист2").Cells(18, 15) = "Всего"
Sheets("Лист2").Cells(19, 1) = "Школьник"
Sheets("Лист2").Cells(20, 1) = "Дружба"
Sheets("Лист2").Cells(21, 1) = "Аист"
Sheets("Лист2").Cells(22, 1) = "Самара"
Sheets("Лист2").Cells(23, 1) = "Next"
Sheets("Лист2").Cells(24, 1) = "Honda"
Sheets("Лист2").Cells(25, 1) = "Урал"
Sheets("Лист2").Cells(26, 1) = "Салют"
Sheets("Лист2").Cells(27, 1) = "Орленок"
Sheets("Лист2").Cells(28, 1) = "Forward"
Sheets("Лист2").Cells(29,
1) = "ИТОГО"
'Во внутреннем цикле происходит вычисление выручки по i-му велосипеду в j-й месяц с выводом результата, а во внешнем цикле (после получения результатов внутреннего цикла) происходит вывод стоимости одного велосипеда и по всем велосипедам. Расчет выручки за каждый месяц организован в этом же внутреннем цикле.
For i = 1 To 10
For j = 1 To 12
Sheets("Лист2").Cells(18 + i, 2 + j) = koll(i, j) * cena(i)
zar(j) = zar(j) + koll(i, j)
* cena(i)
zar(13) = zar(13) + koll(i, j) * cena(i)
Next j