Автор работы: Пользователь скрыл имя, 13 Мая 2012 в 21:11, курсовая работа
Магазин “Виртуальный мир” продал за 1 месяц (3 декады) некоторое количество компьютеров различных типов (6 типов). Цена на компьютеры устанавливалась в начале каждой декады.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
• исходные данные в виде таблицы, де перечислены все типы компьютеров и цены на них количество проданных компьютеров в течение каждой декады;
• доход от каждого компьютера за месяц;
• доход от всех компьютеров за каждую декаду;
1) Задание на курсовую работу
2) Описание переменных
3) Блок-схема
4) Описание алгоритма
5) Листинг программы
6) Описание входных данных и результат вычислений
|
Курсовая работа | ||||
по специальности « Высокоуровневые методы информатики и программирования» | ||||
на тему «Информатика. Программирование»
| ||||
| ||||
|
|
|
|
|
Содержание
1) Задание на курсовую работу
2) Описание переменных
3) Блок-схема
4) Описание алгоритма
5) Листинг программы
6) Описание входных данных и результат вычислений
Задание на курсовую работу
Магазин “Виртуальный мир” продал за 1 месяц (3 декады) некоторое количество компьютеров различных типов (6 типов). Цена на компьютеры устанавливалась в начале каждой декады.
Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
исходные данные в виде таблицы, де перечислены все типы компьютеров и цены на них количество проданных компьютеров в течение каждой декады;
доход от каждого компьютера за месяц;
доход от всех компьютеров за каждую декаду;
общий доход от продажи за 1 месяц;
тип компьютера, принесшего наибольший доход за месяц.
Описание переменных
Исходные данные находятся на листе «Нач_д» и содержит следующую информацию:
1) 6 типов компьютеров.
2) Цены за каждый тип компьютеров, устанавливаемые в начале каждой декады.
3) Количество проданных компьютеров в течение каждой декады.
Результаты работы программы оформляются на листе «Результат».
Рис. 1. Лист с начальными данными.
Рис. 2. Полученные результаты.
В программе переменные описаны следующим образом:
1) cena(3, 6) – цена одного компьютера
Dim cena(3, 6) As Double
2) koll(3, 6) – количество проданных компьютеров
Dim koll(3, 6) As Integer
3) cena_mes(6) – доход от каждого компьютера за месяц
Dim cena_mes(6) As Double
4) cena_dec(3) - доход от всех компьютеров за каждую декаду
Dim cena-dec(3) As Double
5) cena_obsh – общий доход от продажи за месяц
Dim cena_obsh As Double
6) cena_pc(3, 6) – цена проданных компьютеров одного типа за декаду
Dim cena_ pc(3, 6) As Double
7) num_pc – номер компьютера
Dim num_pc As Integer
8) type_pc – тип компьютера
Dim type_pc As String
9) max – наибольший доход от проданных компьютеров одного типа за месяц
Dim max As Double
10) i, j – счётчики циклов
Dim i As Integer, j As Integer
Переменные koll(3, 6), num_pc, i, j - целые числа. Переменная type_pc – строковая переменная, остальные переменные могут быть целыми числами, поэтому они объявлены как действительные.
Блок-схема
Да
Описание алгоритма.
Начало программы.
Ввод начальных (нулевых) значения для расчётных величин (доход от каждого компьютера за месяц, доход от всех компьютеров за каждую декаду, общий доход от продажи за месяц).
Открытие листа с начальными данными (”Нач_д”) и получение этих данных в рабочие переменные (массивы cena(3, 6) и koll(3, 6)).
Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждой декаде и каждому типу компьютера). Во внутреннем цикле (по каждому типу компьютера) путем умножения определяется цена проданных компьютеров одного типа за декаду, суммируется доход от всех компьютеров за каждую декаду, осуществляется вывод цены одного компьютера в каждой декаде, вывод цены проданных компьютеров одного типа за декаду. Во внешнем цикле осуществляется вывод дохода от всех компьютеров за каждую декаду.
Организуется два вложенных цикла: внешний по числу типов компьютеров, внутренний по декадам. Во внутреннем цикле суммируется доход от каждого компьютера за месяц, во внешнем цикле выводится результат полученный во внутреннем.
Организуется цикл по декадам, в котором путем сложения определяется общий доход от продажи за месяц, после выхода из цикла выводится результат.
Определение типа компьютера, принесшего наибольший доход за месяц. Используется алгоритм сравнения. При равенстве двух и более доходов за месяц результатом считается первый доход. По найденному номеру типа компьютера определяется тип компьютера с помощью оператора Select Case. Затем осуществляется вывод результата.
Листинг Программы
Option Explicit
Public Sub Выполнить()
' Объявление переменных, используемых в программе
Dim cena(3, 6) As Double ' цена одного компьютера
Dim koll(3, 6) As Integer ' количество проданных компьютеров
Dim cena_mes(6) As Double ' доход от каждого компьютера за месяц
Dim cena_dec(3) As Double ' доход от всех компьютеров за декаду
Dim cena_obsh As Double ' общий доход от продажи
Dim cena_pc(3, 6) As Double ' цена проданных компьютеров одного типа за декаду
Dim num_pc As Integer ' номер компьютера
Dim type_pc As String ' тип компьютера
Dim max As Double ' наибольший доход от одного типа компьютера
Dim i As Integer, j As Integer ' счётчики циклов
' Всем переменным присваивается нулевое значение
For i = 1 To 6
cena_mes(i) = 0
Next
For j = 1 To 3
cena_dec(j) = 0
Next
cena_obsh = 0
type_pc = 0
' Считывание начальных данных с листа "Нач_д" в каждую ячейку массивов
Sheets("Нач_д").Select
For i = 1 To 3
For j = 1 To 6
cena(i, j) = Cells(3 + j, 2 * i)
koll(i, j) = Cells(3 + j, 2 * i + 1)
Next j
Next i
' Ввод названий соответствующих столбцов и строк исходных данных на листе "Результат"
Sheets("Результат").Select
Cells(1, 1) = "Начальные данные"
Cells(2, 1) = "Компьютеры"
Cells(2, 4) = "Месяц"
Cells(3, 2) = "Цена"
Cells(3, 3) = "1 декада"
Cells(3, 4) = "Цена"
Cells(3, 5) = "2 декада"
Cells(3, 6) = "Цена"
Cells(3, 7) = "3 декада"
Cells(4, 1) = "Тип 1"
Cells(5, 1) = "Тип 2"
Cells(6, 1) = "Тип 3"
Cells(7, 1) = "Тип 4"
Cells(8, 1) = "Тип 5"
Cells(9, 1) = "Тип 6"
' Вывод в ячейки исходных данных
For i = 1 To 3
For j = 1 To 6
Cells(3 + j, 2 * i) = cena(i, j)
Cells(3 + j, 2 * i + 1) = koll(i, j)
Next j
Next i
' Ввод названий соответствующих столбцов и строк на листе "Результат"
Cells(11, 1) = "Результат в денежном эквиваленте"
Cells(12, 1) = "Компьютеры"
Cells(12, 4) = "Месяц"
Cells(12, 8) = "Доход от каждого компьютера"
Cells(13, 2) = "Цена"
Cells(13, 3) = "1 декада"
Cells(13, 4) = "Цена"
Cells(13, 5) = "2 декада"
Cells(13, 6) = "Цена"
Cells(13, 7) = "3 декада"
Cells(14, 1) = "Тип 1"
Cells(15, 1) = "Тип 2"
Cells(16, 1) = "Тип 3"
Cells(17, 1) = "Тип 4"
Cells(18, 1) = "Тип 5"
Cells(19, 1) = "Тип 6"
Cells(20, 1) = "Доход за декаду"
Cells(21, 1) = "Общий доход"
Cells(22, 1) = "Тип компьютера с наибольшим доходом"
Cells(22, 6) = "Доход составляет"
' Определение дохода от всех компьютеров за каждую декаду и вывод результата
For i = 1 To 3
For j = 1 To 6
cena_pc(i, j) = cena(i, j) * koll(i, j)
cena_dec(i) = cena_dec(i) + cena_pc(i, j)
Cells(13 + j, 2 * i) = cena(i, j)
Cells(13 + j, 2 * i + 1) = cena_pc(i, j)
Next j
Cells(20, 2 * i + 1) = cena_dec(i)
Next i
' Определение дохода от каждого компьютера за месяц и вывод результата
For j = 1 To 6
For i = 1 To 3
cena_mes(j) = cena_mes(j) + cena_pc(i, j)
Next i
Cells(13 + j, 8) = cena_mes(j)
Next j
' Определение общего дохода от продажи за месяц и вывод результата
For i = 1 To 3
cena_obsh = cena_obsh + cena_dec(i)
Next
Cells(21, 3) = cena_obsh
' Поиск номера типа компьютера, принесшего наибольший доход за месяц
max = cena_mes(1)
num_pc = 1
For i = 2 To 6
If max < cena_mes(i) Then
max = cena_mes(i)
num_pc = i
End If
Next
' Определение типа компьютера по найденному номеру
Select Case num_pc
Case 1
type_pc = "Тип 1"
Case 2
type_pc = "Тип 2"
Case 3
type_pc = "Тип 3"
Case 4
type_pc = "Тип 4"
Case 5
type_pc = "Тип 5"
Case 6
type_pc = "Тип 6"
End Select
Cells(22, 5) = type_pc
Cells(22, 8) = max
End Sub
Описание входных данных и результат вычислен
Проверка работы программы на всех нулях
Проверка работы программы на всех единицах
Проверка работы программы на произвольных данных
Список использованной литературы
1. Информатика. Часть 1. Введение в информатику: учебное пособие/ Гришин М.П., Иванов М.Н., Носков Т.К., Суворов С.В. М.: МГИУ, 2008.
2. Информатика. Часть 2. Программирование: учебное пособие/ Иванов М.Н., Суворов С.В. М.: МГИУ, 2006.
3. Информатика. Методическое пособие по выполнению практических работ компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005.
4. MS Office XP, 2003 Word, Excel, Access, Outlook, PowerPoint, FrontPage, MS Project / А.К. Гультяев: Корона-Век, 2006.
5. Самоучитель VBA. / Андрей Гарнаев: БХВ-Петербург, 2004.
6. Самоучитель программирования на VBA в Microsoft Office/ В.Д. Хореев: Юниор,2001.
7. VBA/ Кузьменко В.Г.: Бином, 2008.
8. Измерение, управление и регулирование с помощью макросов VBA в Word и Excel / Берндт Г.-Й.: Корона-Век, 2008.
9. Моделирование с помощью Microsoft Excel и VBA. Разработка систем поддержки принятия решений/ Кристина Олбрайт: Вильямс, 2005.
1