ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ИДО ГОУ МГИУ
Курсовая работа
По дисциплине «Информатика»
Разработка программы на языке VBA для птицеводческого хозяйства
Москва 2009
Содержание
1. Задание на курсовую работу
2. Описание переменных
3. Блок-схема
4. Описание алгоритма
5. Листинг программы
6. Список использованной литературы
7. Приложения
1. Задание на курсовую работу В коллективном хозяйстве имеется 8 птицеводческих бригад. Каждая бригада выращивает различное количество гусей. В каждой бригаде расходовалось некоторое количество кормов (тонн) и, соответственно, увеличивался вес гусей. Написать программу на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран:
· исходные данные в виде таблицы, где указаны фамилия и инициалы бригадиров, количество гусей в каждой бригаде, расход комбикормов в течение каждого месяца в каждой бригаде и привес всех гусей в течение каждого месяца в каждой бригаде; (данные за 2 месяца);
· средний привес одного гуся за 2 месяца в каждой бригаде на 1 кг комбикорма;
· средний привес одного гуся за 1 месяц на 1 кг комбикорма по всем бригадам хозяйства;
· средний привес всех гусей по всему хозяйству за 2 месяца;
· фамилию и инициалы бригадира, в чьей бригаде удалось получить наименьший привес на 1 кг корма, с указанием среднего.
2. Описание переменных
программа расчет гуси
Kol – переменная для накопления общего количества
Br1 – br8 количество гусей в каждой бригаде 1- 8
i , j – целочисленные переменные для прокрутки массивов
3. Блок схема
4. Описание алгоритма
Входными данными являются
Одномерный массив количеств гусей в фермах, количество эл. Массива 8
Двумерный массив Кормлений Бригад и месяцев число элементов массива 8х5=40
Ввод может осуществляется как в полях формы так и с помощью вспомогательного диалога
Используя функцию автоматического распределения можно получить равномерную нагрузку между бригадами
Подтвердить выбор можно с помощью кнопки «Ввести в эксплуатацию».
Вод выдаваемых кормов по кнопке «Кормление»
Расчет полученных результатов по кнопке «Расчет»
5.Листинг программы
Private Sub ComboBox1_Change()
End Sub
Private Sub CommandButton1_Click()
For i = 1 To 8
For j = 1 To 5
Sheets("Кормление").Cells(i + 1, j + 1) = 30 * Sheets("Фермы").Cells(11, 2) * Sheets("Фермы").Cells(i + 1, 3)
Next j
Next i
End Sub
Private Sub CommandButton2_Click()
Sheets("Кормление").Cells(ListBox1.ListIndex + 2, ListBox2.ListIndex + 2) = Val(TextBox1)
End Sub
Private Sub ListBox1_Click()
TextBox1.Text = Sheets("Кормление").Cells(ListBox1.ListIndex + 2, ListBox2.ListIndex + 2)
End Sub
Private Sub ListBox2_Click()
TextBox1.Text = Sheets("Кормление").Cells(ListBox1.ListIndex + 2, ListBox2.ListIndex + 2)
End Sub
Private Sub UserForm_Activate()
For i = 1 To 8
ListBox1.AddItem (Sheets("Кормление").Cells(i + 1, 2))
Next i
For i = 1 To 6
ListBox2.AddItem (Sheets("Кормление").Cells(1, i + 2))
Next i
ListBox1.ListIndex = 0
ListBox2.ListIndex = 0
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub br1_Change()
End Sub
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
If kolgus Mod 8 = 0 Then
br1.Text = kolgus / 8
br8 = br1
br7 = br1
br6 = br1
br5 = br1
br4 = br1
br3 = br1
br2 = br1
Else
br1 = kolgus \ 8
br8 = br1
br7 = br1
br6 = br1
br5 = br1
br4 = br1
br3 = br1
br2 = br1
br1 = (kolgus \ 8) + (kolgus Mod 8)
End If
br1.Enabled = False
br2.Enabled = False
br3.Enabled = False
br4.Enabled = False
br5.Enabled = False
br6.Enabled = False
br7.Enabled = False
br8.Enabled = False
Else
br1.Enabled = True
br2.Enabled = True
br3.Enabled = True
br4.Enabled = True
br5.Enabled = True
br6.Enabled = True
br7.Enabled = True
br8.Enabled = True
End If
End Sub
Private Sub CommandButton1_Click()
kol = 123
kol = br1 / 1 + br2 / 1 + br3 / 1 + br4 / 1 + br5 / 1 + br6 / 1 + br7 / 1 + br8 / 1
If kol / 1 = kolgus / 1 Then
Sheets("Фермы").Cells(2, 3) = br1
Sheets("Фермы").Cells(3, 3) = br2
Sheets("Фермы").Cells(4, 3) = br3
Sheets("Фермы").Cells(5, 3) = br4
Sheets("Фермы").Cells(6, 3) = br5
Sheets("Фермы").Cells(7, 3) = br6
Sheets("Фермы").Cells(8, 3) = br7
Sheets("Фермы").Cells(9, 3) = br8
UserForm1.Hide
Else
errorform.Show
errorform.errtext.Caption = "Неверно введены значения распределения!"
End If
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Range("H18:I18").Select
ActiveCell.FormulaR1C1 = "=MIN(R[-16]C[2]:R[-9]C[2])" Range("A2:J9").Select
Range("J2").Activate
Selection.Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _DataOption1:=xlSortNormal
Selection.Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.Sort Key1:=Range("J2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Selection.Sort Key1:=Range("J2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("C18:G18").Select
ActiveCell.FormulaR1C1 = "=R[-9]C[-1]"
Range("B33").Select
6. ............