504

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

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

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

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

Русский

2013-01-06

155.5 KB

17 чел.

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

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

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

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

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

по учебной практике для студентов 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 Общая блок-схема программы  


 

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

30586. Методы и методика журналистского творчества 35 KB
  Интервью от англ. По содержанию интервью делятся на так называемые документальные интервью изучение событий прошлого уточнение фактов и интервью мнений цель которых выявление оценок взглядов суждений и т.Есть формализованное интервью стандартизированное и структуризованное общение: интервью имеет четкую структуру; каждый вопрос логически вытекает из другого а все вместе они подчинены общему замыслу беседы; открытые закрытые и полузакрытые вопросы. Неформализованном интервью ориентировано на глубинное познание объекта и...
30587. Налоговое регулирование внешнеэкономической деятельности предприятия 126.5 KB
  Целями налогового регулирования импорта и экспорта являются: поддержание рационального соотношения вывоза и ввоза товаров, валютных доходов и расходов на территории РФ. Налоговое регулирование импорта направлено, в основном...
30588. Личность журналиста в системе журналистики 31 KB
  Личность журналиста в системе журналистики. то же самое в вопросе № 49: индивидуальные характеристики творческой личности Творческая индивидуальность журналиста особое качество личности которое она приобретает и выявляет в конкретном виде данной деятельности Компоненты творческой индивидуальности: Знания общекультурные и профессиональные Умения опыт самостоятельный творческий подход Желания журналиста его потребности: мотивы интерес желания страсть внешние материальные и духовные внутренние. Мотивация журналиста:...
30589. Диалог как основа творчества 30.5 KB
  Диалог как основа творчества. Познание ограничивается самим собой и лишь диалог как форма предполагающая активную деятельность выводит на орбиту социального. Диалог как точно подметил Л. Диалогизм ваейшая черта человеческого бытия.
30590. Ассоциативность мышления журналиста 14.14 KB
  Ассоциация проявляется в метафоре. Эпитет весны здесь выступает и как ассоциация. Ассоциация должна быть яркой и жизненной.а Ассоциация является одним из составляющих творческого начала.
30591. Фантазия, воображение в творчестве журналиста 15.08 KB
  Фантазия воображение в творчестве журналиста.Фантазия и воображение широко используются в творчестве журналиста. Фантазия и воображение являются для журналиста одновременно и помощником и неприятелем. Воображение позволяет представить результат труда до его начала тем самым ориентируя журналиста в процессе творческой деятельности.
30592. Отражение в творчетстве журналиста 13.92 KB
  Отражение в творчетстве журналиста. На уровне организма отражение первично проявляется в раздражимости как возникающей под воздействием внешних и внутренних стимулов способности живой материи отвечать на воздействие избирательной реакцией соответствующей особенностям источника. Такое отражение в процессе развития преобразуется в чувствительность как способность иметь ощущения первичные психические образы среды. Отражение служит предпосылкой развития более сложных форм.
30593. Эмоциональная и реальное в журналистике 14.05 KB
  Эмоции психическое отражение в форме непосредственного пристрастного переживания жизненного смысла явлений и ситуаций обусловленного отношением их объективных свойств к потребностям субъекта.Простейшая форма эмоции т. Эмоции в творчестве выражают оценки явлениям событиям. Трудно представить себе репортаж без эмоции.
30594. Проявление эстетической активности в безобразном и трагическом 14 KB
  Но само изображение жука привлекает нас силой эстетического воздействия. Художественное изображение привлекает внимание именно как эстетически организованное изображение.Проявления комического безобразного трагического в реальной действительности лишь тогда становятся эстетическими реальностями когда они переходя в художественное изображение приобретают тем самым эстетическую организованность и начинают действовать уже не только как бытовые проявления комического безобразного и трагического но и художественного т.