Написать программу на языке VBA

Автор работы: Пользователь скрыл имя, 25 Декабря 2013 в 16:29, курсовая работа

Краткое описание

Задание на курсовую работу
На складе бумажной фабрики находится 5 сортов бумаги. За
каждый рабочий день (6 дней) отгружалось получателям некоторое
количество бумаги каждого вида. Цена менялась каждый день.
Написать программу на языке VBA, которая вводит исходные
данные, выполняет расчеты и выводит на экран:
исходные данные в виде таблицы, где перечислены наименования
• сорта бумаги, его цена (за 1 рулон), расход каждого сорта бумаги за
день (количество рулонов);
• количество отгруженных получателям рулонов бумаги каждого
сорта за первые 3 дня;
• общее количество, отгруженных рулонов бумаги всех сортов за
каждый день;
• общая стоимость всех отгруженных рулонов бумаги за 6 дней;
наименование сорта бумаги, которого было отгружено наименьшее
количество в 4 день.

Содержание

1. Задание на курсовую работу 3
2. Описание переменных 4
3. Блок схема 6
4. Описание алгоритма 9
5. Листинг программы 10
6. Описание входных данных и результат вычислений 14
7. Список использованной литературы 17

Вложенные файлы: 1 файл

Информатика.doc

— 1.50 Мб (Скачать файл)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

РОССИЙСКОЙ  ФЕДЕРАЦИИ

ИДО ГОУ МГИУ

 

 

 

 

 

Курсовая  работа

По дисциплине «Информатика»

 

 

 

                                               Задание:№09

 

 

 

 

Москва 2011

 

Содержание

 

 

1. Задание на курсовую работу

      

          На складе бумажной фабрики находится 5 сортов бумаги. За

каждый рабочий день (6 дней) отгружалось получателям некоторое

количество бумаги каждого  вида. Цена менялась каждый день.

        Написать программу на языке VBA, которая вводит исходные

данные, выполняет расчеты  и выводит на экран:

исходные данные в  виде таблицы, где перечислены наименования

  • сорта бумаги, его цена (за 1 рулон), расход каждого сорта бумаги за

          день (количество рулонов);

  • количество отгруженных получателям рулонов бумаги каждого

          сорта за первые 3 дня;

  • общее количество, отгруженных рулонов бумаги всех сортов за

          каждый день;

  • общая стоимость всех отгруженных рулонов бумаги за 6 дней;

          наименование сорта бумаги, которого было отгружено наименьшее

          количество в 4 день.  
                                       2. Описание переменных

Исходные данные находятся на листе «Initial_data» (рис. 1) и содержат следующую информацию:

  1. Количество бумаги каждого из 5 сортов, отгруженненных за шесть рабочих дней.
  2. Стоимость одного рулона бумаги  каждого сорта.

Результаты  работы программы оформляются на листе «Result» (рис. 2).

 

 

 

 

 

 

 

 

 

 

 

 

 

                                      Рис.1. Лист с начальными данными

Рис.2. Полученные результаты

В программе переменные описаны следующим образом:

1) type_nime(5) — наименование сортов бумаги,отгружаемых со склада бумажной фабрики

Dim type_nime(5) As String

2) price(5) — стоимость единицы каждого сорта бумаги, представляет массив дробных чисел

Dim price(5) As Double

3) koll(5,6) —количество бумаги каждого сорта за истекший период представляет массив целых чисел

Dim koll(5,6) As Integer

4) total_koll_3den (5)— общее количество бумаги отгруженного со склада за первых 3 дня

Dim total_koll_3den(5)  As Integer

5)  total_koll_6 den(6) — общее количество бумаги отгруженного со склада за 6 дней

                                             Dim total_koll_6 den(6) As Integer

       6) total_price— общая стоимость бумаги отгруженной со склада бумажной фабрики за истекший период

Dim total_price As Double

    7)less_del— количество меньше всего отгруженного сорта бумаги в 4-й день

                                         Dim less_del As Integer

  8)less_del_type— сорт бумаги, которого меньше всего было отгружено в 4-й день

                                         Dim less_del_type As Integer

В программе  также были использованы вспомогательные  переменные, счетчики циклов, i и j, являющиеся целыми числами.

Dim i As Integer, j As Integer

Переменные price(5),total_price могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные koll(5,6), total_koll_3den (5), total_koll_6 den(6),less_del — целые числа, так как мы считаем, что фабрика не может поставлят по половине рулона бумаги.

 

                                   3. Блок схема

 

 


  


 

                                                                                                   



 


 

 

 

 

 



 


 


 





 


 




 


 

 

 



 

 


 


 



 


 

 

 

 

 

 

 

Рис.3. Блок-схема (продолжение)


 

 


 


 




 

 


 



 

 

 

 

 



 








                   Нет 



 


                                           Да



 



 




 

 

                                Рис.3. Блок-схема (окончание)


4. Описание алгоритма

 

Начало программы.

Ввод начальных (нулевых) значений для расчетных величин (количество отгруженной получателям рулонов бумаги каждого сорта за первые 3 дня и за 6 дней, общая стоимость поставленной бумаги, количество меньше всего поставленного сорта бумаги и сорт бумаги, который меньше всего поставили получателям за 4-й день).

      Открытие листа с начальными данными («Initial_data») и получение этих данных в рабочие переменные (массивы type_name(5),price(5) и kоll(5,6)).

Открытие  листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждому сорту бумаги и дню). Во внутреннем цикле (по первым 3 дням) суммируется количество поставленной бумаги получателю, после выхода из внутреннего цикла выводится результат по дням.

Расчет суммы общей стоимости всей поставленной бумаги за истекший период и вывод результатов. Организуется два вложенных цикла: внешний по сортам, внутренний по дням. Для оптимизации процесса расчетная часть совмещена с выводом: во внутреннем цикле происходит вычисление общей стоимости по i-му сорту в j-й день, во внешнем цикле (после получения результатов внутреннего цикла) — вывод по всем деталям.

Определение сорта бумаги, которой меньше всего поставили  в 4-й день. Используется алгоритм сравнения, при равенстве двух и более количеств поставок результативной считается первое количество.

 

5. Листинг программы

Sub Function()

'Сначала объявляем  переменные, используемые в программе.

Dim i As Integer, j As Integer 'внутренние  переменные 

Dim type_name(5) As String 'сорта бумаги

Dim price(5) As Double 'цена за  единицу 

Dim koll(5, 6) As Integer 'количество (по дням)

Dim total_koll_3den(5) As Integer 'количество отгруженной бумаги за 3 дна(по сортам)

Dim total_koll_6den(6) As Integer 'количество отгруженной бумаги за 6 дней( по дням)

Dim total_price As Double 'общая стоимость

Dim less_del As Integer 'наименьшее количество поставленной бумаги

Dim less_del_type As Integer 'сорт бумаги, которой меньше всего поставили

 

‘Далее всем переменным присваивается нулевое значение

For i = 1 To 5

total_koll_3den(i) = 0

Next

 

For i = 1 To 6

total_koll_6den(i) = 0

Next

 

total_price = 0

less_del = 0

less_del_type = 0

 

'Выбираем лист начальных  данных

Sheets("Initial_data").Select

 

'Выбираем сорта бумаги

For i = 1 To 5

type_name(i) = Cells(3 + i, 1)

Next

 

'Вводим цену

For i = 1 To 5

price(i) = Cells(3 + i, 2)

Next

 

'Вводим количество

For i = 1 To 5

    For j = 1 To 6

   koll (i, j) = Cells(3 + i, 2 + j)

    Next j

Next i

 

'Далее на листе “Result” в ячейку с определенными данными вводится ее название

Sheets("Result").Cells(1, 1) = "Поставка  бумаги"

Sheets("Result").Cells(2, 1) = "Сорт  бумаги"

Sheets("Result").Cells(2, 2) = "Стоимость"

Sheets("Result").Cells(2, 3) = "Поставки"

Sheets("Result").Cells(3, 3) = "1-й день

Sheets("Result").Cells(3, 4) = "2-й день"

Sheets("Result").Cells(3, 5) = "3-й день"

Sheets("Result").Cells(3, 6) = "Всегоl"

Sheets("Result").Cells(4, 1) = "Сорт бумаги 1"

Sheets("Result").Cells(5, 1) = "Сорт бумаги 2"

Sheets("Result").Cells(6, 1) = "Сорт бумаги 3"

Sheets("Result").Cells(7, 1) = "Сорт бумаги 4"

Sheets("Result").Cells(8, 1) = "Сорт бумаги 5"

 

'Поставки первые 3 дня

For i = 1 To 5

Sheets("Result").Cells(3 + i, 2) = price(i)

 

    For j = 1 To 3

        Sheets("Result").Cells(3 + i, 2 + j) =koll (i, j)

        total_koll_3den(i) = total_koll_3den(i) + koll(i, j)

    Next j

 

    Sheets("Result").Cells(3 + i, 6) = total_koll_3den(i)

Next i

 

'Всего поставок по  дням

Sheets("Result").Select

Sheets("Result").Cells(10, 1) = "Всего поставок"

Sheets("Result").Cells(11, 3) = " 1-й день"

Sheets("Result").Cells(11, 4) = "2-й день"

 

Sheets("Result").Cells(11, 5) = "3-й  день"

Sheets("Result").Cells(11, 6) = "4-й  день"

Sheets("Result").Cells(11, 7) = "5-й  день"

Sheets("Result").Cells(11, 8) = "6-й день"

 

For i = 1 To 6

 

    For j = 1 To 5

        total_koll_6den(i) = total_koll_6den(i) + koll(j, i)

        total_price = total_price + price(j) * koll(j, i)

  Next j

 

    Sheets("Result").Cells(12, i + 2) = total_koll_6den(i)

Next i

 

'Общая стоимость поставляемой бумаги

Sheets("Result").Cells(14, 1) = "Общая  стоимость"

Sheets("Result").Cells(14, 5) = total_price

 

'Сорт бумаги, которого  было отгружено наименьшее количество  в 4-й день

less_del = koll(1, 4)

For j = 1 To 5

 

    If koll(j, 4) < less_del Then

       less_del = koll(j, 4)

       less_del_type = j

    End If

 

Next

 

Sheets("Result").Cells(16, 1) = "В  4-й день меньше всего отгруженной  бумаги"

Sheets("Result").Cells(16, 5) = type_name(less_del_type)

 

End Sub

 

 

 

 

 

 

6. Описание входных данных и результат вычислений

 

Проверка программы  на всех единицах:

 

 

 

 

 

 

 

 

Проверка на всех нулях:

 

 

 

 

 

 

Проверка на произвольных данных:

 

Исходные данные для задания № 9 представлены на Рис.№1., решение – на Рис.2..

 

7. Список использованной литературы

  1. MS Office XP, 2003 Word, Excel, Access, Outlook, PowerPoint, FrontPage, MS Project/ А. К. Гультяев: Корона-Век, 2003.
  2. Visual Basic 6.Учебное пособие/ С. Браун.: Питер, 2007.
  3. VBA/ Кузьменко В.Г.: Бином,2008.
  4. Информатика. Методические указания по выполнению практических работ в компьютерном классе (Access, Internet) / Гришин М.П., Юрасов А.Б. М.: МГИУ, 2005.
  5. Информатика. Методическое пособие по выполнению практических работ в компьютерном классе (Word, Excel) / Гришин М.П. М.: МГИУ, 2005.
  6. Информатика. Часть 1. Введение в информатику: учебное пособие / Гришин М.П., Иванов М.Н., Носова Т.К., Суворов С.В. М.: МГИУ, 2008.
  7. Информатика. Часть 2. Программирование: Учебно-методическое пособие / Иванов М.Н., Суворов С.В. М.: МГИУ. 2009.
  8. Моделирование (экономическое) с помощью Microsoft Excel и VBA: разработка систем поддержки принятия решений/ Кристиан Олбрайт: Вильямс, 2005.
  9. Visual Basic 6.0 Самоучитель для начинающих/ С. Н. Лукин: Диалог-МИФИ, 2001.

Информация о работе Написать программу на языке VBA