Смекни!
smekni.com

Программы оптимизации рационов кормления сельскохозяйственных животных (стр. 3 из 5)

Рисунок 15. Справка «Компоненты комбикормов»

Приложение имеет возможность подключать дополнительные модули, что дает существенный потенциал для дальнейшего развития и разработки данного проекта.

1.5 Сравнительная характеристика программ

Программы «Корм Оптима» и «Комбикорм Оптимум» имеют схожий графический интерфейс и очень близки по функциональности. Также нужно отметить, что оба продукта были разработаны программистами г. Воронеж.

Продукт разработчиков г. Самара «Рецепт Плюс» уступает воронежским аналогам по ряду функций:

- у нее, субъективно менее дружественный интерфейс;

- поиск компонентов баз справочников зависит от регистра символов, что усложняет работу;

- отсутствует гибкая подготовка отчета к печати.

В свою очередь приложение «Корм Оптима» превосходит «Комбикорм Оптимум» по следующим пунктам:

- наличие возможности анализа сбалансированности рецепта при помощи графиков;

- в окне расчета рецептов более простой и понятный графический интерфейс, что облегчает осваивание и привыкание к продукту;

- большее количество справочников и классификаторов, что позволяет более гибко настраивать балансируемый рецепт;

- возможность планирования закупок сырья и составления отчетов;

- наличие в составе справочной системы специальной литературы, которая оказывает существенную помощь при грамотном составлении рациона.

Большим преимуществом всех трех программ является наличие хорошего оптимизатора, который существенно облегчает подбор оптимальных соотношений компонентов рациона.

Во всех программах хорошо структурированы базы кормов и норм кормления животных.


2 РАСЧЕТ РЕЦЕПТОВ КОРМЛЕНИЯ СВИНЕЙ СРЕДСТВАМИ MSEXCEL

2.1 Обоснование работы

В связи с дороговизной программных продуктов, описанных в аналитической части (рыночная стоимость одной копии программы данного класса варьирует в пределах от 800 до 2000 у.е.), есть смысл поиска более дешевых и доступных способов расчета рационов кормления сельскохозяйственных животных. Существенным недостатком специализированных программ является невозможность в случае необходимости быстрого совершенствования приложения, что снижает гибкость среды. В тоже время программа Lisa не обладает необходимыми функциями для быстрого составления рациона.

В связи с этим стоит проанализировать возможность самостоятельного составления программного продукта удовлетворяющего потребности специалиста. Широкие возможности, в этой сфере предоставляют электронные таблицы MSEXCEL.

Электронная таблица Microsoft Excel 97 и других модификаций является мощным программным средством для работы с таблицами, позволяющим упорядочивать, анализировать и графически представлять различные виды данных.

В племенном и промышленном животноводстве как правило, существующие показатели можно представить в виде различных таблиц и списков. Поэтому MS Excel является очень удобным средством для использования в деятельности специалистов – зооинженеров.[15]

Используя данный продукт можно создать программу для расчета рецептов с возможностью дальнейшего совершенствования и развития данного продукта в соответствии с возникающими необходимостью. Гибкость данной среды позволяет совершать индивидуальные настройки каждому пользователю в зависимости от цели работы и поставленных задач.

Применение языка программирования VisualBasicforApplications в сочетании с электронными таблицами дает широкие возможности не только для составления и оптимизации рецепта, но и для анализа полученных результатов, составления отчетов, планирования расхода сырья.

2.2 Выполнение работы

Целью данной работы является создание программы для расчета рецептов кормления свиней средствами MSEXCEL.

При выполнении работы были поставлены следующие задачи:

1. Создание первоначальной базы кормов и норм кормления животных, среды расчета рациона;

2. Автоматизация процесса выбора группы животных, для которых будет составляться рецепт;

3. Автоматизация процесса определения структуры рациона;

4. Отладка оптимизации рецепта;

5. Провести анализ рассчитанного рецепта.

2.2.1 Создание первоначальной базы кормов и норм кормления животных, среды расчета рациона

А) На листе «Корма» создаем базу в форме таблицы. В строках располагается список доступных кормовых средств. Столбцами данной базы, являются показатели, которые будут оптимизироваться при расчете рецепта, также слева располагается столбец выбора корма в который содержит значения либо 0 либо 1 (рис. 17). После создания заполняем таблицу данными из справочника. Эти данные будут исходными при создании структуры рациона.


Рисунок 17. Лист «Корма» с базой кормов

Б) На листе «Нормы» создаем базу норм питательности для животных различных половозрастных групп. В строках располагается список половозрастных групп животных, а в столбцах значение потребности животных в данном питательном факторе (рис. 18). После создания заполняем таблицу данными из справочника. Эти данные являются исходными для оптимизации рациона.

Рисунок 18. Лист «Нормы» с базой норм

В) На листе «Расчет» создаем две области:

- область структуры рациона, включающая список кормов;

- область питательности рациона, которая отображает сумму рациона по каждому питательному элементу, расположенному в области структуры рациона. В данной области имеется три колонки «Факт», «Норма» и «Отклонение», которые отображают фактическое содержание данного питательного фактора в рационе, нормативный показатель и отклонение первого от второго (рис. 19).


Рисунок 19. Лист «Расчет»

На всех трех листах для удобства работы при поиске необходимого элемента, закрепим шапку таблиц командой «Закрепить область».

2.2.2 Автоматизация процесса выбора группы животных, для которых будет составляться рецепт

Для расчета рациона на листе «Нормы» необходимо определить половозрастную группу животных, для которых будет составляться рацион, для этого в столбце «Да/нет» напротив соответствующей группы необходимо поставить цифру 1, также нужно проследить, чтобы напротив остальных групп стояла цифра 0.

Далее в среде VisualBasicforApplications напишем макрос переноса данных из листа «Нормы» в лист «Расчет», назовем его Norm, листинг 1.

Листинг 1.

Sub norm()

'проверяем есть ли выбранная группа

For ii = 3 To 250

If Sheets("Нормы").Cells(ii, 2) = 1 Then

Else

nul1 = nul1 + 1

End If

Next ii

' если группа определена запускаем цикл

Dim wword As String

wword = "НОРМА"

If nul1 = 248 Then

MsgBox "Выберитегруппу"

nul1 = 0

Else

For it = 5 To 500

If Sheets("Расчет").Cells(it, 4) = wword Then

numb = it + 1

For ik = numb To 1000

Sheets("Расчет").Range("D" & numb & ":D250").ClearContents

Next ik

End If

Next it

For i = 3 To 250

If Sheets("Нормы").Cells(i, 2) = 1 Then

For k = 4 To 60

a = Sheets("Нормы").Cells(i, k)

Sheets("Расчет").Cells(numb + k - 4, 4) = a

Next k

Else

End If

Next i

Sheets("Расчет").Select

End If

End Sub

На листе «Нормы» вставляем элемент управления «Кнопка»

, и назначаем ему макрос «norm».

Также напишем макрос, автоматического изменения цвета цифр столбца «Да/нет», в зависимости от значения и устранение возможности введения какого либо другого значения кроме 1 или 0 листинг 2, назовем его Check. Данный макрос вызывается при изменениях на рабочем листе, листинг 3.

Листинг 2. МакросCheck

Public Sub check()

'изменение цевета в зависимости от значения

For i = 3 To 1000

If Range("B" & i) = 0 Then

With Range("B" & i).Font

color = -16776961

End With

Else

If Range("B" & i) = 1 Then

With Range("B" & i).Font

color = -11480942

EndWith

Else

' предупреждение о допустимых значениях

MsgBox "Может быть 0-нет или 1- да"

Range("B" & i) = 0

End If

End If

Next i

End Sub

Листинг 3. ВызовмакросаCheck

Private Sub Worksheet_Change(ByVal Target As Range)

Callcheck

EndSub

В случае если необходимо добавить питательный элемент по которому будет производиться балансирование рецепта, его нужно добавить в конце первой строки на листе «Корма». На остальные листы данный питательный элемент и единицы его измерения перенесутся автоматически, поскольку на данные ячейки существуют ссылки в других листах.

2.2.3 Автоматизация процесса определения структуры рациона

Для продолжения расчета на листе «Корма» необходимо определить кормовые компоненты, которые будут входить в состав рациона. По аналогии с предыдущими действиями определяются корма. Столбцу «Да/нет» также назначаем макрос Check.

Далее пишем макрос переноса выбранных кормовых средств с листа «Корма» в лист «Расчет». Данный макрос также будет выполнять скрытие не используемых ячеек на расчетном листе и перенос в расчеты значений по умолчанию, а также ввод расчетных формул, листинг 4. Данный макрос назовем Feed.

Листинг 4.

Public fForm

Sub feed()

'проверяем выбранные корма

For iman1 = 3 To 2000

If Sheets("Корма").Cells(iman1, 2) = 1 Then

Else

nul = nul + 1

End If

Next iman1

' запускаем цикл если выбраны корма

If nul = 1998 Then

MsgBox "Выберитекорм"

nul = 0

Else

Cells.EntireRow.Hidden = False