Автор работы: Пользователь скрыл имя, 27 Марта 2011 в 19:20, курсовая работа
Склад готовой продукции цеха каждую смену принимает готовые изделия (гайки, болты, шайбы и т.п., всего 9 видов изделий) и каждую смену отправляет готовые изделия другим цехам.
Склад, как цех, работает в 3 смены. В конце 3-й смены подсчитываются остатки.
Задание на курсовую работу 3
2 Описание переменных 4
3 Блок схема 6
4 Описание алгоритма 10
5 Листинг программы 11
6 Описание входных данных и результат вычислений 16
7 Список использованной литературы 21
Содержание
1 | Задание на курсовую работу | 3 |
2 | Описание переменных | 4 |
3 | Блок схема | 6 |
4 | Описание алгоритма | 10 |
5 | Листинг программы | 11 |
6 | Описание входных данных и результат вычислений | 16 |
7 | Список использованной литературы | 21 |
Задание на курсовую работу
Склад готовой продукции цеха каждую смену принимает готовые изделия (гайки, болты, шайбы и т.п., всего 9 видов изделий) и каждую смену отправляет готовые изделия другим цехам.
Склад, как цех, работает в 3 смены. В конце 3-й смены подсчитываются остатки.
Написать
программу на языке VBA, которая вводит
исходные данные, выполняет расчеты
и выводит на экран:
Исходные данные в виде таблицы, где указаны:
Результат вычислений
2. Описание переменных
Dim S As String ' строка изделий
Dim IZD() As String ' массив изделий
Dim R As Integer ' переменные циклов
Dim C As Integer ' переменные циклов
Dim St_Ost(3) Double 'стоимость остатка в конце каждой смены
'0 - от предыдущих суток; 1 - после первой смены;
'2 - после второй смены; 3 - после 3 смен
Dim MAX As Integer ' максимальный расход изделия, пользовавшегося в течение 3-х смен наибольшим спросом.
Dim Nmax As Integer ' номер изделия, пользовавшегося в течение 3х смен наибольшим спросом.
Dim ID() 'Массив исходных данных
'считываем исходные данные в массив
ID = Лист1.Range(Cells(3, 2), Cells(11, 12)) '
'имеем первая размерность - вид изделия
'вторая размерность:
'1 - наименование изделия
'2 - цена изделия
'3 - количество изделий на начало рабочего дня
'4,6,8 - приход изделий на склад по сменам
'5,7,9 - расход изделий со склада по сменам
'будем заносить
'10 - остаток каждого
вида изделий на начало
'11 - спрос - сумма
расходов со склада
Исходные данные находятся на листе «Исходные данные» (рис. 1) и содержат следующую информацию:
Рис.1. Начальные
данные
Результаты работы программы оформляются на листе «Результат»
Рис.2. Полученные результаты
3.Блок
схема
Sub
Продукция() ' выбрать продукцию
Sub Случайно() ' заполнение случайными числами
Описание алгоритма
Начало программы.
Открытие листа с начальными данными («Исходные данные»)
Ввод начальных значений для расчетных величин
Получение этих данных в рабочие переменные (массив ID ()).
Открытие листа с результатами, формирование матрицы входных данных. Организуется два вложенных цикла (по каждому виду изделий и по сменам).
Во внешнем цикле:
Во внутреннем цикле (по сменам)
Для определения наименование изделия, пользовавшегося в течение 3-х смен наибольшим спросом организован цикл, в котором максимальный спрос сравнивается со спросом каждого вида изделий. И в случае если спрос больше – запоминается спрос и номер типа изделия При равенстве двух и более спросов результативным считается первый.
5 Листинг программы
Option Explicit
Dim S As String ' строка изделий
Dim IZD() As String ' массив изделий
Dim R As Integer ' переменные циклов
Dim C As Integer ' переменные циклов
Dim
OST ' временное
изделие
Sub Стереть() 'стереть всё
Range("B3:M15").ClearContents 'очистить содержание
Лист2.Select 'перейти на лист результатов
Cells.Select 'выбрать весь лист
Selection.ClearContents 'очистить содержание
Range("A1").Select 'перейти на начало листа
Лист1.Select 'перейти на лист исходных данных
Cells(1, 1).Select 'перейти на начало листа
End
Sub '
Sub Продукция() ' выбрать продукцию
S
= "Гайки,Болты,Шайбы,Винты,
S
= S & "Муфты,Тройники,Переходники,
IZD = Split(S, ",") ' Разбиваем строку на массив
For R = 3 To 11 ' заполняем произвольными значениями из списка
1
OST = IZD(Int(18 * Rnd)) 'выбираем случайно изделие
For C = 3 To R 'проверяем
на повторяемость
в списке
6.
Описание входных
данных и результат
вычислений
Программа организована таким образом, что позволяет вносить данные в таблицу данных вручную и производить расчёты. Это реализовано считыванием таблицы с исходными данными в массив с дальнейшей обработкой этого массива.
Для облегчения процесса ввода проверочных значений (0, 1) и заполнения таблицы случайными значениями в программу добавлены соответствующие процедуры.
Так же имеется процедура очистки таблицы исходных данных и листа с результатами, процедура выбора видов изделий из списка случайным способом и главная процедура выполняющая расчёт.
Все процедуры вызываются пользователем с помощью кнопок, расположенных на листе с исходными данными.
Кроме этого процедура «Sub Продукция()» вызывается из процедур изменяющих значения исходных данных: «Проверка на «0»», «Проверка на «1»» и «Случайно» в случае если таблица с наименованиями продукции не заполнена(после отработки процедуры «Sub Стереть()»
1. — Нажали кнопку «Стереть»
Лист «Результаты» очищается полностью. На листе «Исходные данные очищается таблица
2 - Нажали кнопку «Продукция»
Случайным способом заполнились колонки таблицы:
3 — Нажали кнопку «Проверка на «0»»
Таблица
заполнилась нулевыми значениями
После этого нажали «Расчёт»
Открылся лист с результатами расчёта
4 — Нажали кнопку «Проверка на «1»»
Таблица с исходными данными заполнилась единицами
После этого нажали «Расчёт»
Открылся лист с результатами расчёта
Примечание: При проверке лучшим определяется первый по списку. Так как у всех результаты одинаковые.
5 — Нажали кнопку «Случайно»
Таблица с исходными
данными заполнилась случайными числами.
Примечание: если до этого производилась
проверка – необходимо сначала нажать
«Продукция». Так как только в этой процедуре
назначаются цены и остатки.
После этого нажали «Расчёт»
Открылся лист с результатами расчёта
Литература