Автор работы: Пользователь скрыл имя, 04 Июня 2012 в 21:33, курсовая работа
Четыре театральных кассы продают билеты номиналом 500, 800 и 1500 рублей на концерты 1, 2 и 3 июня.
Написать программу на VBA , которая вводит данные, выполняет расчеты и выводит на экран
1. Задание на курсовую работу 3
2. Описание переменных 4
3. Блок схема 6
4. Описание алгоритма 8
5. Листинг программы 9
6. Описание входных данных и результат вычислений 9
7. Список использованной литературы 15
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ИДО ГОУ МГИУ
Курсовая работа
По дисциплине «Информатика»
Задание:№
Группа: № Жу10Э21
Студент: Ф.И.О. Ермакова Оксана Сергеевна
Руководитель: Ф.И.О. Воронов Алексей Сергеевич
Москва 2011
Содержание
1. Задание на курсовую работу
2. Описание переменных
3. Блок схема
4. Описание алгоритма
5. Листинг программы
6. Описание входных данных и результат вычислений
7. Список использованной литературы
Четыре театральных кассы продают билеты номиналом 500, 800 и 1500 рублей на концерты 1, 2 и 3 июня.
Написать программу на VBA , которая вводит данные, выполняет расчеты и выводит на экран:
Исходные данные виде таблиц, где указаны
-наименование театральных касс
-номинал билетов
- количество билетов определенного номинала на каждое число, проданное в этой кассе.
Максимальную выручку театральной кассы от продажи билетов номиналом 500 рублей.
Минимальное количество билетов, номиналом 800 рублей, проданной одной театральной кассой.
Среднее количество билетов номиналом 800 рублей, проданных театральными кассами.
Наименование кассы, в которой было продано наименьшее количество билетов на концерт 2 июня.
Исходные данные находятся на листе «Data» (рис. 1) и содержат следующую информацию:
1) Номера касс, номинал билетов по датам.
2) Количество билетов каждого номинала.
Результаты работы программы оформляются на листе «result» (рис. 2).
Рис.1. Лист с начальными данными
Рис.2. Полученные результаты
В программе переменные описаны следующим образом:
1) nom123(13) As String ' Строковый массив для сохранения названий верхней строки
2) kol(4, 9) As Double 'Числовой массив для сохранения количество проданных билетов
3) max As Double ' Переменная для нахождения максимума по 500
4) min As Double ' Переменная для нахождения минимума по 800
5) min2i As Double ' Переменная для нахождения миниимума для 2-ого июня
6) kol500(4, 3) As Double 'Числовой массив для сохранения количества билетов по 500 рублей для 4 касс и 3-х дней
7) kac = Array("Касса 1", "Касса 2", "Касса 3", "Касса 4") Строковый массив с названиями касс.
8) skol2i(4, 3) As Double 'Числовой массив для сохранения количества биллетов проданных 2 июня
9) kol800(4, 3) As Double ' Числовой массив для сохранения количества билетов по 800 рублей для 4 касс и 3-х дней
10) s500, s800, siun2 As Double ' вспомогательные переменные для нахождения сумм
11) sum800 As Double 'сумма всех билетов по 800 рублей
12) cr800 As Double 'среднее колличество билетов по 800 рублей
13) i, j As Integer ' переменные для циклов
14) nk500, nk800, nk2i As Integer 'Переменные для записи номеров касс.
Начало программы.
Очистка всех ячеек на листе «result». Вывод заголовка таблицы, названия касс и копирование исходных данных в таблицу (из листа «data»).
Ввод начальных значений для расчетных величин.
Расчет данных. Расчет производится в двух вложенных циклах: внешний цикл (от 1 до 4) по номерам касс и вложенный цикл (от 1 до 3) по датам. При этом происходит подсчет количества проданных билетов по номиналам и за 2 июня. Производится поиск максимального количества билетов для номинала «500», минимального для номинала «800» и для «2 июня».
После этого подсчитывается выручка для билетов номинала 500 и среднее для номинала 800.
Рассчитанные значения заносятся на лист «result» в соответствующие ячейки.
Sub курс()
'определяем переменные и массивы
Dim nom123(13) As String 'название верхней строки
Dim kol(4, 9) As Double 'колличество проданных билетов
Dim max As Double 'переменные для нахождения максимума по 500
Dim min As Double 'переменные для нахождения минимума по 800
Dim min2i As Double 'переменные для нахождения миниимума для 2-ого июня
Dim kol500(4, 3) As Double 'колличество билетов по 500 рублей для 4 касс и 3-х дней
kac = Array("Касса 1", "Касса 2", "Касса 3", "Касса 4")
Dim skol2i(4, 3) As Double 'колличество биллетов 2 июня
Dim kol800(4, 3) As Double 'колличество билетов по 800 рублей для 4 касс и 3-х дней
Dim s500, s800, siun2 As Double 'промежуточные для нахождения сумм
Dim sum800 As Double 'сумма всех билетов по 800 рублей
Dim cr800 As Double 'среднее колличество билетов по 800 рублей
Dim i, j As Integer '
Dim nk500, nk800, nk2i As Integer 'номера касс
'очистить лист
Sheets("result").Select
Cells.Select
Selection.ClearContents
' Вывод заеоловка таблицы
For i = 1 To 9
nom123(i) = Sheets("data").Cells(1, i + 1)
Cells(1, i + 1) = nom123(i)
Next
'занесение название касс
For i = 0 To 3
Cells(i + 2, 1) = kac(i)
Next
'Вывод исходных данных
For i = 1 To 9
For j = 1 To 4
kol(j, i) = Sheets("data").Cells(j + 1, i + 1)
Cells(j + 1, i + 1) = kol(j, i)
Next
Next
'обнуление счетчиков
max = 0
min = 4000
min2i = 4000
sum800 = 0
nk500 = 1
nk800 = 1
nk2i = 1
'расчет данных
For i = 1 To 4
s500 = 0
s800 = 0
siun2 = 0
'подсчет кол-ва билетов по 500р, 800р, 2 июня
For j = 1 To 3
kol500(i, j) = Sheets("data").Cells(1 + i, 1 + j)
s500 = s500 + kol500(i, j)
kol800(i, j) = Sheets("data").Cells(1 + i, 4 + j)
s800 = s800 + kol800(i, j)
skol2i(i, j) = Sheets("data").Cells(1 + i, j * 3)
siun2 = siun2 + skol2i(i, j)
Next
'нахождение максимального колличества билетов по 500р, запоминание кассы
If s500 > max Then
max = s500
nk500 = i
End If
'нахождение минимального колличества билетов по 8000р, запоминание кассы
If s800 < min Then
min = s800
nk800 = i
End If
'нахождение минимального колличества билетов для 2 июня, запоминание кассы
If siun2 < min2i Then
min2i = siun2
nk2i = i
End If
'сумма проданных билетов по 800 рублей
sum800 = sum800 + s800
Next 'конец цикла по номеру кассы
max = max * 500 'максимальная выручка билетов по 500р
cr800 = sum800 / 4 'среднее кол-во по 800р
Sheets("result").Select
'занесение результатов в таблицу результатов
Cells(7, 1) = "максимальная выручка от билетов по 500"
Cells(7, 2) = max
Cells(7, 3) = kac(nk500 - 1)
Cells(8, 1) = "минимальное количество по 800"
Cells(8, 2) = min
Cells(8, 3) = kac(nk800 - 1)
Cells(9, 1) = "минимальное вол-во билетов, проданных 2 июня"
Cells(9, 2) = min2i
Cells(9, 3) = kac(nk2i - 1)
Cells(10, 1) = "среднее кол-во билетов по 800"
Cells(10, 2) = cr800
Columns("a:j").EntireColumn.
Selection.HorizontalAlignment = xlRight
Selection.Font.Bold = True
Range("a1:a1").Select 'установка курсора в первую позицию
End Sub
Проверка программы на всех единицах:
Проверка на всех нулях:
Проверка на произвольных данных:
Исходные данные для задания № представлены на Рис.№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