504

Разработка приложений в среде VBA IDE

Отчет о прохождении практики

Информатика, кибернетика и программирование

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

Русский

2013-01-06

155.5 KB

15 чел.

Федеральное государственное образовательное учреждение высшего профессионального образования

Московская сельскохозяйственная академия имени К.А. Тимирязева
(ФГОУ ВПО МСХА им. К.А. Тимирязева)

Экономический факультет

Кафедра прикладной информатики

ОТЧЕТ О ВЫПОЛНЕННОЙ РАБОТЕ

по учебной практике для студентов 1 курса
специальности 351400 «Прикладная информатика в экономике АПК»

«Разработка приложений в среде VBA IDE»

Выполнил:       Макаров Н.С.

        группа ПИ-110

Руководитель: преп. Барамидзе Н.Н.

Отметка о защите:________________

Москва, 2005


Задание
2

Описание переменных 3

Текст программы. 4

Процедура расчета 4

Процедура ввода данных 6

Процедура корректировки 9

Процедура корректировки текста 9

Процедура корректировки чисел 9

Процедура построения диаграммы 10

Процедура ввода данных из файла 11

Процедура сохранения в файл 14

Процедура выхода из приложения 14

Инструкция по использованию программного продукта 15

Достоинства и недостатки программы 17

Список используемой  литературы 18


Задание 

Вариант Т-19

Составить программу обработки табличных данных. Программа должна работать по принципу меню. Меню должно содержать следующие пункты: ввод данных, корректировка данных, расчет таблицы, запись данных на магнитный диск, чтение данных с магнитного диска, построение диаграммы, выход. Форма таблицы (число строк до 10):

№ п/п

Фамилия

шофера

Расход горючего -всего, кг

Пробег, км

Расход горючего на 1 км, кг

Итого

Наименьший расход горючего ____ кг/км ________ у шофера ___________

Разработка алгоритма.

В основе программы лежит метод получения данных от объекта Microsoft Office (в данном случае листа), в среду VBA IDE. После того как программа получит исходные данные она может осуществлять такие операции как коректирвка, сохранение, расчет, построение диаграммы. Также программа может данные с внешнего носителя.

Описание программного продукта.

Назначение:автоматизация расчетов.

Блок ввода данных предназначен для ввода исходных данных для обработки. Ввод данных может быть как ручным – пользователь сам  вводит данные для обработки с клавиатуры , либо пользователь может ввести данные с помощью кнопки «Чтение из файла» вписав в окно диалога путь к указанному файлу. При ручном вводе данных пользователь предварительно вводит число строк.  

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

Процедура расчета производиться по нажатию кнопки «Расчет». Производиться расчет относительного показателя (расхода топлива, кг/км), суммирование итогов и выбор записи с наименьшим расходом топлива на пробег и ее вывод на лист.

Далее пользователь может сохранить данные или построить диаграмму. Порядок выполнения действий неважен. Сохранение данных происходит в текстовый файл(filename.txt), по указанному пользователем пути. Чтение из файла можно произвести с помощью кнопки «Чтение из файла».

Построение диаграммы происходит по нажатию кнопки «Построение диаграмм». Диаграмма, типа гистограмма, строиться по столбцу «Расход топлива 1кг, км».   

Структура базы данных представляет собой таблицу из 3 столбцов и n строк (количество строк определяется пользователем). Общая (принципиальная) блок-схема программы представлена на рис.1  

Описание переменных

Dim driver() As String – массив тектсовых данных, типа String , хранит поле «фамилия шофера»  

Dim fuel() As Single  - числовой массив, типа Single, предназначен для хранения данных о расходе топлива  

Dim way() As Single – числовой массив, типа Single, предназначен для хранения данных о пробеге

Dim fuelway() As Single – числовой массив, типа Single, предназанчен для хранения расчетных данных

Dim xxx As Integer  - целочисленная переменная, типа Integer, предназначена для хранения числа строк матрицы исходных данных.

Входная информация представляет собой записи базы данных содержащие три поля: фамилия шофера, пробег, расход топлива.

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


Текст программы. 

Процедура расчета

Sub calculating() – процедура расчета

Application.Caption = "MINOS SUMMER IT PRACTICE"

ActiveSheet.Unprotect

' снимаем защиту с листа

xxx = Sheets("a").Range("s23")

Dim driver() As String

Dim fuel() As Single

Dim way() As Single

Dim fuelway() As Single

'объявляем массивы данных для обсчета

ReDim driver(xxx)

ReDim fuel(xxx)

ReDim way(xxx)

ReDim fuelway(xxx)

' присваиваем массивам данных другую размерность

For i = 1 To xxx

fuel(i) = Sheets("a").Cells(2 + i, 3)

' считываем элемент массива из ячейки

x = x + fuel(i)

' суммируем расход топлива

way(i) = Sheets("a").Cells(2 + i, 4)

' считываем элемент массива из ячейки

y = y + way(i)

' суммируем пробег

fuelway(i) = fuel(i) / way(i)

'рассчитываем относительный показатель

z = z + fuelway(i)

' суммируем относительный показатель

Sheets("a").Cells(2 + i, 5) = fuelway(i)

' выводим значения относительного показвателя на лист

driver(i) = Sheets("a").Cells(2 + i, 2)

' считываем фамилии шоферов

Next i

' выводим итоги

Sheets("a").Cells(3 + xxx, 3) = x

Sheets("a").Cells(3 + xxx, 4) = y

Sheets("a").Cells(3 + xxx, 5) = z

' поиск минимума

k = fuelway(1)

ck = 1

For i = 1 To xxx

If k > fuelway(i) Then

k = fuelway(i)

ck = i

End If

Next i

' объединяем ячейки под таблицей и пишем се, что надо

Sheets("a").Range(Cells(5 + xxx, 1), Cells(5 + xxx, 2)).Select

With Selection

       .HorizontalAlignment = xlCenter

       .VerticalAlignment = xlBottom

       .WrapText = False

       .Orientation = 0

       .AddIndent = False

       .ShrinkToFit = False

       .MergeCells = False

   End With

   Selection.Merge

   Selection.Value = "Наименьший расход топлива"

   Sheets("a").Cells(5 + xxx, 3) = fuel(ck)

Sheets("a").Cells(5 + xxx, 3).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   Selection.Borders(xlEdgeLeft).LineStyle = xlNone

   Selection.Borders(xlEdgeTop).LineStyle = xlNone

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Selection.Borders(xlEdgeRight).LineStyle = xlNone

Sheets("a").Cells(5 + xxx, 4) = " кг/км "

Sheets("a").Cells(5 + xxx, 5) = way(ck)

Sheets("a").Cells(5 + xxx, 5).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   Selection.Borders(xlEdgeLeft).LineStyle = xlNone

   Selection.Borders(xlEdgeTop).LineStyle = xlNone

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Selection.Borders(xlEdgeRight).LineStyle = xlNone

Sheets("a").Cells(5 + xxx, 6) = "у шофера"

Sheets("a").Cells(5 + xxx, 7) = driver(ck)

Sheets("a").Cells(5 + xxx, 7).Select

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   Selection.Borders(xlEdgeLeft).LineStyle = xlNone

   Selection.Borders(xlEdgeTop).LineStyle = xlNone

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Selection.Borders(xlEdgeRight).LineStyle = xlNone

ActiveSheet.Protect

End Sub

Процедура ввода данных

Sub zaboi()

Application.Caption = "MINOS SUMMER IT PRACTICE"

' объявляем массивы данных

Dim driver() As String

Dim fuel() As Single

Dim way() As Single

Dim fuelway() As Single

Dim xxx As Integer

ActiveSheet.Unprotect

' снимаем защиту с листа

xxx = InputBox(" введите количество строк")

xx1 = Sheets("a").Range("s23")

If IsEmpty(xx1) Then xx1 = 20

Sheets("a").Range("s23") = xxx

For i = 1 To xx1 + 5

For j = 1 To 7

Sheets("a").Cells(2 + i, j).Select

   Selection.ClearContents

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   Selection.Borders(xlEdgeLeft).LineStyle = xlNone

   Selection.Borders(xlEdgeTop).LineStyle = xlNone

   Selection.Borders(xlEdgeBottom).LineStyle = xlNone

   Selection.Borders(xlEdgeRight).LineStyle = xlNone

   Selection.Borders(xlInsideVertical).LineStyle = xlNone

   Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

   If Selection.MergeCells = True Then

   With Selection

       .HorizontalAlignment = xlLeft

       .VerticalAlignment = xlBottom

       .WrapText = False

       .Orientation = 0

       .AddIndent = False

       .IndentLevel = 0

       .ShrinkToFit = False

       .MergeCells = False

   End With

   End If

   Next j

   Next i

' начинаем рисовать клетки

For i = 1 To xxx

For j = 1 To 5

Sheets("a").Cells(2 + i, j).Select

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeTop)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeRight)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Sheets("a").Cells(2 + i, 1) = i

   Next j

   Next i

   k = i + 2

   ' объединяем ячейки и пишем надпись Итого

   Sheets("a").Range(Cells(k, 1), Cells(k, 2)).Select

   With Selection

       .HorizontalAlignment = xlCenter

       .VerticalAlignment = xlBottom

       .WrapText = False

       .Orientation = 0

       .AddIndent = False

       .ShrinkToFit = False

       .MergeCells = False

   End With

   Selection.Merge

   

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeTop)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeRight)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Sheets("a").Cells(k, 1) = " ИТОГО "

   ' дорисовываем оставшиеся ячейки в строке итого

   For j = 3 To 5

   Sheets("a").Cells(k, j).Select

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeTop)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeRight)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Next j

   

   

' рисование закончено, далее идет собственно забой

ReDim driver(xxx)

ReDim fuel(xxx)

ReDim way(xxx)

ReDim fuelway(xxx)

For i = 1 To xxx

driver(i) = InputBox("Введите фамилию" & " " & CStr(i) & "-го шофера")

Sheets("a").Cells(2 + i, 2) = driver(i)

Next i

'ввод расхода топлива

For i = 1 To xxx

fuel(i) = InputBox("Введите расход топлива" & " " & CStr(i) & "-го шофера")

Sheets("a").Cells(2 + i, 3) = fuel(i)

Next i

'ввод пробега

For i = 1 To xxx

way(i) = InputBox("Введите пробег" & " " & CStr(i) & "-го шофера")

Sheets("a").Cells(2 + i, 4) = way(i)

Next i

ActiveSheet.Protect

End Sub

Процедура корректировки 

Sub corraq()

Dim o As Range

' объявляем объект типа ячейка

Application.Caption = "MINOS SUMMER IT PRACTICE"

ActiveCell.Select

xxx = Sheets("a").Range("s23")

Set userdata = Sheets("a").Range(Cells(3, 2), Cells(2 + xxx, 4)) ' устанавливаем разрешенный диапазон изменяемых ячеек

For Each o In userdata

If ActiveCell.Address(rowabsolute:=False, columnabsolute:=False) = o.Address(rowabsolute:=False, columnabsolute:=False) Then k = k + 1 ' и если активная ячейка в диапазоне то мы ее изменяем

Next

If k <> 1 Then

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

MsgBox "нельзя корректировать эту ячейку!!!"

Range("b3").Select

Exit Sub

End If

a = Selection.Value

If IsNumeric(a) = False Then textcorr ' в зависимости от типа изменяемых данных вызываем ту или иную процедуру корректирвки

If IsNumeric(a) = True Then numericcorr

If IsEmpty(a) = True Then '  а если ячейка пуста, то заставляем пользоваетля ввести в нее что-нибудь

While IsEmpty(m) = True

m = InputBox("Внимание!Ячейка пуста, пожалуйста введите значение в ячейку", "Внимание пустая ячейка")

Wend

ActiveCell.Value = m

End If

End Sub

Процедура корректировки текста  

Sub textcorr()

UserForm2.Show

End Sub

Процедура корректировки чисел

Sub numericcorr()  - процедура корректировки чисел

UserForm3.Show

End Sub

   .

Рис.2 Экранные формы корректировки чисел и текста.

Процедура построения диаграммы

Sub graph()Application.Caption = "MINOS SUMMER IT PRACTICE"

xxx = Sheets("a").Range("s23")

' проверяем наличие расчетных ячеек

For i = 1 To xxx

If IsEmpty(Sheets("a").Cells(2 + i, 2)) = True Or IsEmpty(Sheets("a").Cells(2 + i, 5)) = True Then k = k + 1

Next i

If k > (xxx / 2) Then

MsgBox ("ячейки с данными пусты пусты. пожалуйста введите данные заново и нажмите кнопку расчет")

Exit Sub

End If

' и если оно удовлетворяет нашим потребностям то мы начинаем строить график

xxx = Sheets("a").Range("s23")

  Sheets("a").Range("e3", Cells(2 + xxx, 5)).Select

  With Selection

   Charts.Add

   ActiveChart.ChartType = xlColumnClustered

   r1 = Sheets("a").Cells(3, 2).Address(rowabsolute:=False, columnabsolute:=False)

   c1 = Sheets("a").Cells(2 + xxx, 2).Address(rowabsolute:=False, columnabsolute:=False)

   ActiveChart.SeriesCollection(1).XValues = Sheets("a").Range(r1, c1)

   ActiveChart.Location Where:=xlLocationAsNewSheet

   End With

   With ActiveChart

   .HasLegend = False

       .HasTitle = True

       .ChartTitle.Characters.Text = "расход горючего кг/км"

       .Axes(xlCategory, xlPrimary).HasTitle = True

       .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "фамлия шофера"

       .Axes(xlValue, xlPrimary).HasTitle = True

       .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "расход"

   End With

End Sub


Процедура ввода данных из файла 

Sub vvod()

Application.Caption = "MINOS SUMMER IT PRACTICE"

'вводим путь к файлу

Path = InputBox("введите путь к файлу", "чтение из файла")

ActiveSheet.Unprotect

'снимаем защиту с листа

Dim TextLine As String

'объявляем тектовую переменную

Open CStr(Path) For Input As #1 ' Открывает файл.

Do While Not EOF(1)

'  и пока не кончиться файл

Line Input #1, TextLine

l = l + 1

' считаем строки в файле

Loop

Close #1

xxx = l / 3

xx1 = Sheets("a").Range("s23")

If xx1 >= xxx Then

a = xx1

Else

a = xxx

End If

' устраиваем зачистку содержимого и границ

For i = 1 To a + 5

For j = 1 To 7

Sheets("a").Cells(2 + i, j).Select

   Selection.ClearContents

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   Selection.Borders(xlEdgeLeft).LineStyle = xlNone

   Selection.Borders(xlEdgeTop).LineStyle = xlNone

   Selection.Borders(xlEdgeBottom).LineStyle = xlNone

   Selection.Borders(xlEdgeRight).LineStyle = xlNone

   Selection.Borders(xlInsideVertical).LineStyle = xlNone

   Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

   If Selection.MergeCells = True Then

   With Selection

       .HorizontalAlignment = xlLeft

       .VerticalAlignment = xlBottom

       .WrapText = False

       .Orientation = 0

       .AddIndent = False

       .IndentLevel = 0

       .ShrinkToFit = False

       .MergeCells = False

   End With

   End If

   Next j

   Next i

   

   ' ввод значений из файла

Open CStr(Path) For Input As #1

Do While Not EOF(1)

   For i = 1 To xxx

   For j = 1 To 3

   Line Input #1, TextLine

   Sheets("a").Cells(2 + i, 1 + j) = TextLine

   Sheets("a").Cells(2 + i, 1) = i

   Next j

   Next i

Loop

Close #1

'  обрисовка клеток

For i = 1 To xxx

For j = 1 To 5

Sheets("a").Cells(2 + i, j).Select

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeTop)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeRight)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Next j

   Next i

   k = i + 2

   ' объединяем ячейки и пишем надпись Итого

   Sheets("a").Range(Cells(k, 1), Cells(k, 2)).Select

   With Selection

       .HorizontalAlignment = xlCenter

       .VerticalAlignment = xlBottom

       .WrapText = False

       .Orientation = 0

       .AddIndent = False

       .ShrinkToFit = False

       .MergeCells = False

   End With

   Selection.Merge

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeTop)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeRight)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Sheets("a").Cells(k, 1) = " ИТОГО "

' дорисуем отсавлшиеся клетки в строке итого

   For j = 3 To 5

   Sheets("a").Cells(k, j).Select

   Selection.Borders(xlDiagonalDown).LineStyle = xlNone

   Selection.Borders(xlDiagonalUp).LineStyle = xlNone

   With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeTop)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeBottom)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   With Selection.Borders(xlEdgeRight)

       .LineStyle = xlContinuous

       .Weight = xlThin

       .ColorIndex = xlAutomatic

   End With

   Next j

   

   Sheets("a").Range("s23") = xxx

   ' вернем защиту на лист

ActiveSheet.Protect

End Sub

Процедура сохранения в файл 

Sub output()Application.Caption = "MINOS SUMMER IT PRACTICE"

'объявляем массивы

Dim fuel() As Single 'расход топлива

Dim way() As Single 'пробег

Dim driver() As String ' фамилия шофера

xxx = Sheets("a").Range("s23")

' переприсваиваем размерностии массивам

ReDim driver(xxx)

ReDim fuel(xxx)

ReDim way(xxx)

Path = InputBox("введите путь к файлу", "сохранение в файл", "c:\data.txt") ' вводим путь к файлу

Open CStr(Path) For Output As #1

For i = 1 To xxx

' выводим в файл значения массивов

driver(i) = Sheets("a").Cells(2 + i, 2)

fuel(i) = Sheets("a").Cells(2 + i, 3)

way(i) = Sheets("a").Cells(2 + i, 4)

Print #1, driver(i)

Print #1, fuel(i)

Print #1, way(i)

Next i

Close #1 ' закрываем файл

MsgBox ("данные помещены в файл" & " " & Path & ". Для чтения даных нажмите кнопку Чтение из файла")

End Sub

Процедура выхода из приложения 

Sub outdoor()Application.Caption = "MINOS SUMMER IT PRACTICE"

If Not (ActiveWorkbook.Saved) Then

ActiveWorkbook.SAVE

End If

Application.Quit

End Sub


Инструкция по использованию программного продукта

Первым этапом работы с программой является ввод данных. Ввод данных можно осуществить как вручную, так и из файла. Для ввода данных вручную ребуется нажать кнопку «Ввод данных» и в появляющихся диалоговых окнах вводить данные. Ввод данных вручную происходит по столбцам. Для  ввода данных из тектового файла тебцуется навжать кнопку «Чтение из файла» и в появившемся диалоговом окне указать путь к файлу, в котором находяться данные. Внимание – программа читает данные из тектовых файлов и сохраняет также в тектовые файлы!!! Образец указания пути  - «C:\directory\file.txt».

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

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

Рассчитав показатели, можно построить график, нажав кнопку «Построить график». На отдельном листе, рядом с листом программы, появиться гистограмма построенная по расчетому столбцу, и подпишет фамилия шоферов.

Сохранение данных производиться в текстовый файл, по умолчанию маска пути сохраняемого файла такова “C:\data.txt”. Пользователь может указать любой путь, в т.ч. накопители на гибких магнитных дисках и flash-накопители.

Кнопка «Выход» закрывает приложение и сохраняет находящиеся в нем данные а данном рабочем листе.            

Приведем пример. Дан введенный массив исходных данных:

  Табл.1  Исходные данные введеные пользоваетелем

№ п/п

Фамилия шофера

Расход горючего всего, кг

Пробег, км

Расход горючего на 1 км, кг

 

1

2

3

4

1

иванов

122,00

250,00

2

петров

101,00

201,00

3

сидоров

102,00

202,00

4

веточкин

103,00

203,00

5

прохоров

104,00

204,00

6

клочков

222,00

205,00

7

мурошниченко

106,00

206,00

8

хромов

107,00

207,00

9

петухов

108,00

208,00

10

иващенков

109,00

209,00

По нажатию кнопки расчет, призойдёт расчет четвертой колонки и подведеие итогов.


Табл.2 Результат расчета по исходным данным

№ п/п

Фамилия шофера

Расход горючего всего, кг

Пробег, км

 

1

2

3

4

1

иванов

122,00

250,00

0,49

2

петров

101,00

201,00

0,50

3

сидоров

102,00

202,00

0,50

4

веточкин

103,00

203,00

0,51

5

прохоров

104,00

204,00

0,51

6

клочков

222,00

205,00

7

мурошниченко

106,00

206,00

0,51

8

хромов

107,00

207,00

0,52

9

петухов

108,00

208,00

0,52

10

иващенков

109,00

209,00

0,52

ИТОГО

1184,00

2095,00

5,67

Наименьший расход топлива

122

кг/км

250

у шофера

иванов

После расчета данных построим график. Нажмеме кнопку «Построить график»

Рис.3 Образец построенной диаграммы.

Для сохранения данных следует нажать кнопку «сохранение в файл» и в поле ввести путь к файлу.

Рис.4 Даилоговое окно сохранения в файл


Достоинства и недостатки программы 

Табл. 3. Достоинства и недостатки программы

Достоинства

Недостатки

Простота расчетов

Полная зависимость от пакета MS Office 

Простота интерфейса

Совместимость с любой версией MS Office

Неограниченное число записей для обработки


Список используемой  литературы 

  1.  Аляев Ю.А. Козлов О.А. Pascal, C++, Visual Basic. -  М.: Финансы и статистика, 2002
  2.  Биллиг В.А., Дехтярь М.И.. VBA и Office 97. Офисное программирование.- М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1998.- 720 с.:ил.
  3.  Гарнаев А.Ю. Самоучитель VBA. 2-е издание, переработанное и дополненное. СПб.: BHV —Санкт-Петербург, 2004. ISBN 5-94157-410-Х
  4.  Кузьменко В.Г. Базы данных в Visual Basic и Visual Basic for Applications. Самоучитель. – М.: ооо «Бином-Пресс», 2004. ISBN 5-9518-0049-8


НАЧАЛО

Ввод данных (вручную или из файла

Корректировка

асчет

Построение диаграммы

Сохранение в файл

КОНЕЦ

Рис.1 Общая блок-схема программы  


 

А также другие работы, которые могут Вас заинтересовать

27995. Основные виды токсикантов, содержащиеся в пищевых продуктах, тяжелые металлы, остаточное каличество пестицидов, нитриты, радиоактивные элементы, действие токсикантов на человека и теплокровных животных 20.2 KB
  Отравления вызванные живыми микробами попавшими в организм с пищей называют пищевыми токсикоинфекциями. Это сальмонелла кишечная палочка и условно патогенные микроорганизмы. При этих заболеваниях образование микроорганизмами яда токсина происходит в организме. Токсическое действие некоторых соединений на организм человека заключается в способности токсических веществ вызывать отравление организма выражающееся в различных клинико анатомических проявлениях.
27996. Основные с/х ресурсы и их характеристика по зонам Западной Сибири 12.22 KB
  Рациональное использование природноресурсного потенциала с х производства.Для учета и рационального использования климатических ресурсов важно соблюдать соответствие классификаций климата; классификациям сельскохозяйственного производства т. Значение воды на всех стадиях производства сельскохозяйственной продукции общеизвестно. Предотвратить истощение и загрязнение водных ресурсов призваны экологизация промышленного и сельскохозяйственного производства и городского хозяйства очистка природных и сточных вод мелиоративные...
27997. Отрицательное воздействие промышленного животноводства на природные комплексы и их компоненты 3.22 KB
  При переходе животноводства на промышленную основу возникла проблема утилизации навозных стоков и безподстилочного навоза. Вблизи животноводческих ферм образуется огромное скопление навоза происходит нитратное и микробное загрязнение почв растительности поверхностных и грунтовых вод которое в 810 раз превышает естественный фон загрязнения почвенного и снежного покрова. При выборе места для размещения живких комплексов должны быть учтены возможности утилизации навоза и производственных стоков с учетом...
27998. Оценка изменения агроэкологических показателей плодородия почв и их функций: природная сопротивляемость, буферность, способность к биологическому, физическому и химическому самоочищению 5.3 KB
  Это связано со следующими обстоятельствами: охватом антропогенными нагрузками больших площадей иногда практически на 100; малой лесистостью и небольшими площадями луговостепных участков; значительной обнаженностью дефдированностью и эродированностью почвенного покрова; преобладанием определенных видов загрязнения в почве воде и грунтах связанных с удобрениями. Наибольшей буферной емкостью и способностью снижать негативное влияние загрязняющих веществ на растительные и животные организмы обладают почвы с...
27999. Поллютанты в почве и с/х продукции. Основные факторы, влияющие на их поведение в системе «почва-растение-животное-человек» 9.67 KB
  Главным природным источником тяжелых металлов являются породы магматические и осадочные и породообразующие минералы. Поступление тяжелых металлов в биосферу вследствие техногенного рассеивания осуществляется разнообразными путями. Кроме того источником загрязнения биоценозов могут служить орошение водами с повышенным содержанием тяжелых металлов внесение осадков бытовых сточных вод в почвы в качестве удобрения. Вторичное загрязнение происходит также вследствие выноса тяжелых металлов из отвалов рудников или...
28000. Почвенно-биотический комплекс как основа агроэкосистем. Биогеоценотическая деят-ть микробного биокомплекса и ее экологическое значение. Биоиндикация, ее достоинства и недостатки 15.6 KB
  Численность микроорганизмов сильно колеблется в зависимости от почвенноэкологических факторов. Роль микроорганизмов в круговороте веществ. Практически нет ни одного элемента который не подвергался бы воздействию микроорганизмов или их метаболитов. Минеральная часть почвы разрушается под воздействием различных неорганических и органических кислот щелочей ферментов и других соединений продуктов жизнедеятельности почвенных микроорганизмов.
28001. Проблемы производства экологически безопасной с/х продукции. Экономический механизм стимулирования производства экологически безопасной продукции 8.6 KB
  Экономический механизм стимулирования производства экологически безопасной продукции. Принципы экономического стимулирования выработаны и продолжают вырабатываться практикой. Комплексность системность всесторонность стимулирования означающая обязательность стимулирования использования современных технологических процессов если они имеют целью ресурсосбережение и проводятся экологически приемлемыми методами а также и собственно природоохранных мероприятий утилизация отходов строительство очистных сооружений в целях...
28002. Радионуклиды в агроэкосистеме: перенос радионуклидов по с/х цепочкам и их миграция в агроценозах 2.32 KB
  Основными источниками техногенных радионуклидов в агросфере являются остаточные количества долгоживущих радв поступивших в нее в результате испытаний ядерного взрыва выбросов и сбросов радов при работе атомных электростанций и др предприятий полного ядерного топливного цикла. Рост химизации с х ведет к увеличению применения удобрений и мелиорантов с повышенным содержанием естественных радов. Почва обладает уникальной сорбционной способностью по отношению к поступающим в нее радов.
28003. Сравнительный анализ функционирования естественных экосистем и агроэкосистем. Устойчивость эко(агроэко)системы: толерантность, уязвимость, гетерогенность агроценозов 5.26 KB
  Экосистемы – исторически сложившееся в биосфере и на той или иной территории открытые но целостные и устойчивые системы живых организмов. Агроэкосистемы – вторичные измененные человеком биогеоценозы основу которых составляют искусственно созданные биотические сообщества объединяемые видами живых организмов. Особенность агросистем в отличии от экосистем их неусточивость то есть к способности саморегуляции.