Диаграммы в Visual Basic

Введение



Развитие современной техники идёт по пути все большего усложнения конструкции вновь создаваемых изделий. При их создании используются все более сложные технологии и технологические процессы. Процесс проектирования новых изделий требует привлечения и использования новых нестандартных решений. Помимо этого, потоки информации, циркулирующие в мире, который нас окружает, огромны и имеют тенденцию к увеличению. Поэтому, настоящее время характеризуется массированным внедрением информационных технологий во все сферы жизни и деятельности человека, изменением роли и места персональных компьютеров в современном обществе. Из предмета профессиональной деятельности достаточно узкого круга специалистов в области точных наук они превратились в инструмент, используемый во всех отраслях производства, науке, быту и общественной жизни. Человек, умело и эффективно владеющий технологиями и информацией, имеет другой, новый стиль мышления, иначе подходит к оценке возникшей проблемы, к организации своей деятельности. Владение информационными технологиями ставится в современном мире в один ряд с такими качествами, как знание языков и умение рассуждать.

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

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

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

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

О них и их создании с помощью программных средств и пойдет речь в настоящей работе.






1. Выбор среды разработки



Мы живем в удивительное время, и никогда еще оно не было более благоприятным для программистов на Visual Basic. Visual Basic всегда позволял упростить процесс написания программ для системы Windows, но на его превращение в настоящий язык профессиональной разработки программ и создание среды разработки потребовались годы. С помощью Visual Basic можно по-прежнему быстро писать программы для системы Windows, но, помимо этого, теперь можно также создавать приложения типа клиент / сервер и надежные приложения управления базами данных. В последней версии Visual Basic есть некоторые усовершенствования, которые значительно расширяют возможности программистов, разрабатывающих приложения для баз данных. Даже этого было бы достаточно для рекламы Visual Basic, но последние версии предоставляют гораздо более широкие возможности.

Для написания программного продукта будет использоваться наиболее популярная версия продукта – Visual Basic 6. Данный язык подходи как новичкам в программировании, так и для подготовленных пользователей, которые могут использовать стандартные компоненты Windows, элементы управления Active X, ADO, RDO и др. В данную версию продукта так же включены различные средства работы с графическим интерфейсом пользователя и графического представления информации (в том числе и, необходимые нам, средства для работы с диаграммами). Исходя из всех этих достоинств, считаю выбор среды Visual Basic 6 оптимальным для поставленной задачи.



2. Выбор аппаратных средств



Для функционирования разрабатываемого программного продукта необходим компьютер, работающий под управлением операционной системы из семейства Windows. Начиная с Windows XP, минимальными системными требованиями являются:

– процессор с частотой от 233 МГц

– оперативная память объемом от 64 Мб

– видеоадаптер с поддержкой Super VGA (разрешение экрана 800х600, глубина цвета – 16 бит)

– жесткий диск объемом от 5 Гб

– клавиатура / мышь

Рекомендуемые системные требования для функционирования Windows XP, под которую разрабатывается программный продукт:

– процессор с частотой от 300 МГц

– оперативная память объемом от 128 Мб

– видеоадаптер с поддержкой Super VGA (разрешение экрана 800х600, глубина цвета – 16 бит)

– жесткий диск объемом от 5 Гб

– клавиатура / мышь.



3. Описание интерфейса пользователя и возможностей программы



Разрабатываемый в ходе данной курсовой работы программный продукт предназначен для демонстрации возможностей Visual Basic по работе с диаграммами.

Общий вид главной формы программы приведен на рисунке 1.

При запуске программы, компонент MSFlexGrid заполняется списком товаров и случайными значениями цены на эти товары.

На форме присутствуют четыре кнопки, предназначенные для различных операций с этим списком товаров, а также кнопка закрытия формы и сохранения полученной диаграммы.






Рисунок 1. Общий вид главной формы программы



Кнопка «Случайные цены», как следует из названия, заполняет таблицу случайными значениями стоимости.

Кнопка «Упорядочить» приводит к упорядочиванию списка товаров по цене (пример на рисунке 2).

Нажатие на кнопку «Итого» приведет к подсчету суммы стоимостей всех товаров. Данная сумма будет отображаться в строке «Всего» таблицы.

Двойной клик мыши на любую ячейку стоимости товара приведет к открытию окна редактирования стоимости (см. рисунок 3).

Данный диалог также предусматривает проверку правильности ввода. Если будет введено нечисловое значение, оно будет преобразовано в ноль. Если значение не будет введено или будет тем же, то никаких изменений не произойдет.




Рисунок 2. Список товаров, упорядоченный по цене



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

С помощью переключателей можно выбирать тип диаграммы:

– Плоская гистограмма (рисунок 4)

– Плоский график (рисунок 5)

– Объемная гистограмма (рисунок 6)

– Объемный график (рисунок 7)








Рисунок 3. Окно редактирования стоимости товара





Рисунок 4. Плоская гистограмма


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

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





Рисунок 5. Плоский график





Рисунок 6. Объемная гистограмма


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

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

В случае, когда из выпадающего списка выбран неверный диск (например, дисковод без диска), будет выдано сообщение о том, что диск недоступен (см. рисунок 9).





Рисунок 7. Объемный график



Если в данном окне нажать кнопку «Отмена», то оно закроется, и диаграмма сохранена не будет.

На главной форме также присутствует кнопка «Закрыть», которая закрывает приложение.




4. Исходный код основных модулей программы



Ниже представлен код модуля, содержащего все процедуры, используемые в программе:



Option Explicit

' импортированные функции

Private Declare Function PathFileExists Lib «shlwapi.dll» Alias «PathFileExistsA» _

(ByVal pszPath As String) As Long

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

Public Price(8) As Currency ' Массив цен на продукты

Public Name_Tovar(8) As String ' Массив названий продуктов

Public Sub Summa()

' сумма элементов списка

Dim i As Integer

Dim Sum As Currency

Sum = 0

' цикл подсчета суммы стоимости всех товаров

For i = 0 To 7

Form1.MSFlexGrid1. Col = 1

Form1.MSFlexGrid1. Row = i + 1

Price(i) = Val (Form1.MSFlexGrid1. Text)

Form1.MSFlexGrid1. Text = Format$(Price(i), «#0.00»)

Sum = Sum + Price(i)

Next i

' вывод суммы в строку «Всего»

Form1.MSFlexGrid1. Col = 1

Form1.MSFlexGrid1. Row = 9

Form1.MSFlexGrid1. Text = Format$(Sum, «#0.00»)

End Sub

Public Sub Column_Name()

' процедура заполняет таблицу информацией о продуктах

Dim i As Integer

Dim a As Variant ' переменная для хранения списка названий

a = Array («Торт Пражский», «Крупа гречневая», «Кофе ЧИБО», «Вафли шоколадные», «Бананы», «Яблоки», «Конфеты Коркунов», «Сосиски молочные», «Всего»)

' настройки таблицы

Form1.MSFlexGrid1. ColWidth(0) = 4200

Form1.MSFlexGrid1. ColWidth(1) = 3000

Form1.MSFlexGrid1. Col = 0

Form1.MSFlexGrid1. Row = 0

Form1.MSFlexGrid1. Text = «Товар»

Form1.MSFlexGrid1. Col = 1

Form1.MSFlexGrid1. Text = «Стоимость, руб.»

' заполнение данными

For i = 0 To 8

Form1.MSFlexGrid1. Col = 0

Form1.MSFlexGrid1. Row = i + 1

Form1.MSFlexGrid1. Text = a(i)

Name_Tovar(i) = a(i)

Next i

' настройка диаграммы

Form1.MSChart1. Title = «Диаграмма стоимости товаров»

Form1.MSChart1. Plot. Axis(0).AxisTitle. Text = «Товары»

Form1.MSChart1. Plot. Axis(1).AxisTitle. Text = «Цена»

End Sub

Public Sub Column_Data()

' процедура заполняет графу цен случайными значениями

Dim i As Integer

Dim k As Integer

Form1.MSFlexGrid1. Col = 1

Randomize

For i = 1 To 8

k = Rnd(1) * 100

Form1.MSFlexGrid1. Row = i

Form1.MSFlexGrid1. Text = Format$(k, «#0.00»)

Next i

End Sub

Public Sub Sort()

' сортировка списка по-возрастанию цены

Dim i, k As Integer

Dim R As String ' временная переменная для хранения названия товара

Dim P As Currency ' временная переменная для хранения цены товара

For i = 0 To 7

Form1.MSFlexGrid1. Col = 1

Form1.MSFlexGrid1. Row = i + 1

Price(i) = Val (Form1.MSFlexGrid1. Text)

Next i

' сортировка

For k = 0 To 7

For i = 0 To 6

If Price(i) > Price (i + 1) Then

R = Name_Tovar(i)

P = Price(i)

Price(i) = Price (i + 1)

Name_Tovar(i) = Name_Tovar (i + 1)

Name_Tovar (i + 1) = R

Price (i + 1) = P

End If

Next i

Next k

' перезаполнение таблицы

For i = 0 To 7

Form1.MSFlexGrid1. Col = 0

Form1.MSFlexGrid1. Row = i + 1

Form1.MSFlexGrid1. Text = Name_Tovar(i)

Form1.MSFlexGrid1. Col = 1

Form1.MSFlexGrid1. Text = Format$(Price(i), «#0.00»)

Next i

End Sub

Public Sub MyChart()

' процедура отображения табличной информации на диаграмме

Dim i As Integer

Form1.MSChart1. ColumnCount = 1

Form1.MSChart1. RowCount = 8

For i = 1 To 8

Form1.MSChart1. Row = i

Form1.MSChart1. Data = Price (i – 1)

Form1.MSChart1. RowLabel = Name_Tovar (i – 1)

Next i

End Sub

Public Sub EditGridData()

' окно редактирования стоимости товара

Dim s As String

If Form1.MSFlexGrid1. Col = 1 Then

s = InputBox («Введите новую стоимость для товара» + Name_Tovar (Form1.MSFlexGrid1. Row – 1), «Изменение стоимости», Form1.MSFlexGrid1. Text)

If (s <> Form1.MSFlexGrid1. Text) And (Len(s) <> 0) Then

Form1.MSFlexGrid1. Text = s

End If

End If

End Sub

Public Sub UpdateChart()

' процедура выводит информацию о свободном месте на диске в mschart1

' создаем объекты файловой системы для получения информации о дисках

Dim fso As Object

Dim dr As Object

Set fso = CreateObject («Scripting. FileSystemObject»)

Set dr = fso. GetDrive (Mid(Dialog. Drive1. Drive, 1, 1))

' заполняем массив, который послужит источником данных для диаграммы

Dim arrData (0, 1 To 3)

arrData (0, 1) = «Диск» & Dialog. Drive1. Drive

arrData (0, 2) = dr. FreeSpace

arrData (0, 3) = dr. TotalSize – dr. FreeSpace

Dialog.MSChart1. ChartData = arrData

Dialog.lFreeSpace. Caption = «Свободно:» + Format$(dr. FreeSpace / 1048576, «#0.00») +» МБ»

End Sub

Public Sub SaveChart()

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

Dim i As Integer

Dim s As String

i = 0

Do

i = i + 1

s = Dialog. Dir1. Path + «\» + Format(i) +».bmp»

Loop While PathFileExists(s) = 1

Form1.MSChart1. EditCopy

SavePicture (Clipboard. GetData, s)

MsgBox («Диаграмма сохранена в файл:» + s)

End Sub

Процедуры и функции из вышеописанного модуля вызываются по следующим событиям формы:

Private Sub Command1_Click()

' подсчитываем стоимость всех товаров

Summa

End Sub

Private Sub Command2_Click()

' упорядочиваем список товаров по стоимости

Sort

End Sub

Private Sub Command3_Click()

' отображаем таблицу в диаграмме

MyChart

Command5. Enabled = True

End Sub

Private Sub Command4_Click()

' генерируем случайные цены

Column_Data

End Sub

Private Sub Command5_Click()

' показываем диалог сохранения диаграммы

Dialog. Show 1

End Sub

Private Sub Command6_Click()

' завершаем работу приложения

End

End Sub

Private Sub Form_Load()

' заполняем таблицу и выравниваем форму по центру экрана

Dim w, h As Integer

Column_Name

Column_Data

h = Screen. Height

w = Screen. Width

Form1. Left = (w – Form1. Width) / 2

If Form1. Left < 0 Then Form1. Left = 0

Form1. Top = (h – Form1. Height) / 2

If Form1. Top < 0 Then Form1. Top = 0

End Sub

Private Sub MSFlexGrid1_DblClick()

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

EditGridData

End Sub

Private Sub Option1_Click()

' изменяем тип диаграммы на 2D Bar

MSChart1.chartType = VtChChartType2dBar

End Sub

Private Sub Option2_Click()

' изменяем тип диаграммы на 2D Line

MSChart1.chartType = VtChChartType2dLine

End Sub

Private Sub Option3_Click()

' изменяем тип диаграммы на 3D Line

MSChart1.chartType = VtChChartType3dLine

End Sub

Private Sub Option4_Click()

' изменяем тип диаграммы на 3D Bar

MSChart1.chartType = VtChChartType3dBar

End Sub



Помимо главной формы, в проекте представлена диалоговая форма сохранения диаграммы. Исходный код модуля имеет следующий вид:



Option Explicit

Private Sub CancelButton_Click()

' закрываем диалоговую форму

Me. Hide

End Sub

Private Sub Drive1_Change()

' при изменении диска, обновляем диаграмму и директорию в Dir1

On Error GoTo errmsg

Dir1. Path = Drive1. Drive

UpdateChart

Exit Sub

errmsg:

MsgBox («В данный момент выбранный диск недоступен»)

End Sub

Private Sub Form_Load()

' выравниваем форму по центру экрана

Dim w, h As Integer

h = Screen. Height

w = Screen. Width

Dialog. Left = (w – Dialog. Width) / 2

If Dialog. Left < 0 Then Dialog. Left = 0

Dialog. Top = (h – Dialog. Height) / 2

If Dialog. Top < 0 Then Dialog. Top = 0

UpdateChart

End Sub

Private Sub OKButton_Click()

' сохраняем изображение в выбранной папке

SaveChart

Me. Hide

End Sub






Заключение

диаграмма программный язык интерфейс

В данной работе была создана программа, демонстрирующая основные возможности диаграмм. Для ее написания был использована среда разработки Visual Basic 6.0. В ходе работы были продемонстрированы основные возможности диаграмм, а также средства Visual Basic для их реализации. Была подтверждена простота и удобство создания приложений в среде Visual Basic.

Способ, которым информация представляется в диаграммах, позволяет быстро работать с большими объемами данных. Например, главная форма программы, представляет таблицу товаров и их стоимостей. Если бы человек искал товар с наибольшей стоимостью, ему пришлось бы перебирать весь список и сравнивать цены. В диаграмме же достаточно одного взгляда, чтобы выявить товар с наибольшей ценой и выделить его из списка. Если эту функцию может выполнить упорядочивание товаров по цене, то оценка разброса значений – критерий субъективный и диаграмма позволяет пользователю сделать этот вывод, всего лишь окинув ее взглядом.

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

Задача данного курсового проекта выполнена. Доказана польза и удобство использования диаграмм, представлены способы их реализации средствами Visual Basic.






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



1. Браун С. Visual Basic 5 c самого начала – СПб: Питер, 1998

2. Иванов М.Н., Суворов С.В. Информатика Часть 2. Программирование. Учебно-методическое пособие – М.; МГИУ, 2004

3. Использование Visual Basic 6.: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 1999. – 608 с.

4. Материалы сайта www.visual2000.ru

5. Материалы сайта www.compress.ru

6. Visual Basic 6. Руководство разработчика: В 2 т.: Пер с англ. – К.: Издательская группа BHV, 2000. – Т 2 – 560 с.