Введение
Развитие современной техники идёт по пути все большего усложнения конструкции вновь создаваемых изделий. При их создании используются все более сложные технологии и технологические процессы. Процесс проектирования новых изделий требует привлечения и использования новых нестандартных решений. Помимо этого, потоки информации, циркулирующие в мире, который нас окружает, огромны и имеют тенденцию к увеличению. Поэтому, настоящее время характеризуется массированным внедрением информационных технологий во все сферы жизни и деятельности человека, изменением роли и места персональных компьютеров в современном обществе. Из предмета профессиональной деятельности достаточно узкого круга специалистов в области точных наук они превратились в инструмент, используемый во всех отраслях производства, науке, быту и общественной жизни. Человек, умело и эффективно владеющий технологиями и информацией, имеет другой, новый стиль мышления, иначе подходит к оценке возникшей проблемы, к организации своей деятельности. Владение информационными технологиями ставится в современном мире в один ряд с такими качествами, как знание языков и умение рассуждать.
Возрастающая роль компьютерных технологий предоставляет пользователю новые возможности, которые способны повлиять на его образование, мировоззрение, количество и качество информации, с которой он имеет дело. Для руководителей, информационные технологии влияют на качество принимаемых решений и эффективность управления.
Следствием повышения производительности вычислительной техники является и усложнение программного обеспечения, которое ведет, в свою очередь, к повышению удобства и эффективности его использования.
Благодаря последним разработкам в области программных продуктов, обрабатывать большие объемы информации становится гораздо проще. Эргономика этих программных продуктов позволяет не тратить много времени на работу с данными, различные визуальные средства их представления дают возможность составить мнение, буквально, окинув данные взглядом.
Одним из таких визуальных средств являются диаграммы – графическое представление данных, позволяющее быстро оценить соотношение нескольких величин, представляющее собой геометрическое символьное изображение информации с применением различных приёмов техники визуализации.
О них и их создании с помощью программных средств и пойдет речь в настоящей работе.
1. Выбор среды разработки
Мы живем в удивительное время, и никогда еще оно не было более благоприятным для программистов на VisualBasic. VisualBasic всегда позволял упростить процесс написания программ для системы Windows, но на его превращение в настоящий язык профессиональной разработки программ и создание среды разработки потребовались годы. С помощью VisualBasic можно по-прежнему быстро писать программы для системы Windows, но, помимо этого, теперь можно также создавать приложения типа клиент / сервер и надежные приложения управления базами данных. В последней версии VisualBasic есть некоторые усовершенствования, которые значительно расширяют возможности программистов, разрабатывающих приложения для баз данных. Даже этого было бы достаточно для рекламы VisualBasic, но последние версии предоставляют гораздо более широкие возможности.
Для написания программного продукта будет использоваться наиболее популярная версия продукта – VisualBasic 6. Данный язык подходи как новичкам в программировании, так и для подготовленных пользователей, которые могут использовать стандартные компоненты Windows, элементы управления ActiveX, ADO, RDO и др. В данную версию продукта так же включены различные средства работы с графическим интерфейсом пользователя и графического представления информации (в том числе и, необходимые нам, средства для работы с диаграммами). Исходя из всех этих достоинств, считаю выбор среды VisualBasic 6 оптимальным для поставленной задачи.
2. Выбор аппаратных средств
Для функционирования разрабатываемого программного продукта необходим компьютер, работающий под управлением операционной системы из семейства Windows. Начиная с WindowsXP, минимальными системными требованиями являются:
– процессор с частотой от 233 МГц
– оперативная память объемом от 64 Мб
– видеоадаптер с поддержкой SuperVGA (разрешение экрана 800х600, глубина цвета – 16 бит)
– жесткий диск объемом от 5 Гб
– клавиатура / мышь
Рекомендуемые системные требования для функционирования WindowsXP, под которую разрабатывается программный продукт:
– процессор с частотой от 300 МГц
– оперативная память объемом от 128 Мб
– видеоадаптер с поддержкой SuperVGA (разрешение экрана 800х600, глубина цвета – 16 бит)
– жесткий диск объемом от 5 Гб
– клавиатура / мышь.
3. Описание интерфейса пользователя и возможностей программы
Разрабатываемый в ходе данной курсовой работы программный продукт предназначен для демонстрации возможностей VisualBasic по работе с диаграммами.
Общий вид главной формы программы приведен на рисунке 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)
Nexti
' вывод суммы в строку «Всего»
Form1.MSFlexGrid1. Col = 1
Form1.MSFlexGrid1. Row = 9
Form1.MSFlexGrid1. Text = Format$(Sum, «#0.00»)
End Sub
PublicSubColumn_Name()
' процедура заполняет таблицу информацией о продуктах
Dim i As Integer
Dim a As Variant ' переменная для хранения списка названий
a = Array («Торт Пражский», «Крупа гречневая», «Кофе ЧИБО», «Вафли шоколадные», «Бананы», «Яблоки», «Конфеты Коркунов», «Сосиски молочные», «Всего»)
' настройки таблицы
Form1.MSFlexGrid1. ColWidth(0) = 4200
Form1.MSFlexGrid1. ColWidth(1)
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
Процедуры и функции из вышеописанного модуля вызываются по следующим событиям формы:
PrivateSubCommand1_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
EndSub
PrivateSubForm_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()
' изменяем тип диаграммы на 2DBar
MSChart1.chartType = VtChChartType2dBar
End Sub
Private Sub Option2_Click()
' изменяем тип диаграммы на 2DLine
MSChart1.chartType = VtChChartType2dLine
End Sub
Private Sub Option3_Click()
' изменяем тип диаграммы на 3DLine
MSChart1.chartType = VtChChartType3dLine
End Sub
Private Sub Option4_Click()
' изменяем тип диаграммы на 3DBar
MSChart1.chartType = VtChChartType3dBar
EndSub
Помимо главной формы, в проекте представлена диалоговая форма сохранения диаграммы. Исходныйкодмодуляимеетследующийвид:
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
PrivateSubOKButton_Click()
' сохраняем изображение в выбранной папке
SaveChart
Me. Hide
End Sub
Заключение
диаграмма программный язык интерфейс
В данной работе была создана программа, демонстрирующая основные возможности диаграмм. Для ее написания был использована среда разработки VisualBasic 6.0. В ходе работы были продемонстрированы основные возможности диаграмм, а также средства VisualBasic для их реализации. Была подтверждена простота и удобство создания приложений в среде VisualBasic.
Способ, которым информация представляется в диаграммах, позволяет быстро работать с большими объемами данных. Например, главная форма программы, представляет таблицу товаров и их стоимостей. Если бы человек искал товар с наибольшей стоимостью, ему пришлось бы перебирать весь список и сравнивать цены. В диаграмме же достаточно одного взгляда, чтобы выявить товар с наибольшей ценой и выделить его из списка. Если эту функцию может выполнить упорядочивание товаров по цене, то оценка разброса значений – критерий субъективный и диаграмма позволяет пользователю сделать этот вывод, всего лишь окинув ее взглядом.
Диаграмма на диалоговой форме сохранения изображения позволяет пользователю визуально оценить наличие свободного пространства на диске и решить куда сохранять файл.
Задача данного курсового проекта выполнена. Доказана польза и удобство использования диаграмм, представлены способы их реализации средствами VisualBasic.
Список использованной литературы
1. Браун С. VisualBasic 5 c самого начала – СПб: Питер, 1998
2. Иванов М.Н., Суворов С.В. Информатика Часть 2. Программирование. Учебно-методическое пособие – М.; МГИУ, 2004
3. Использование VisualBasic 6.: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 1999. – 608 с.
4. Материалы сайта www.visual2000.ru
5. Материалы сайта www.compress.ru
6. VisualBasic 6. Руководство разработчика: В 2 т.: Пер с англ. – К.: Издательская группа BHV, 2000. – Т 2 – 560 с.