Электронный справочник по изучению Visual Basic
Текстовое поле (TextBox)
Текстовое поле (TextBox) является основным элементом управления, предназначенным для ввода данных.
При использовании текстового поля представляют интерес несколько событий. Прежде всего, это событие Change, которое вызывается при изменении содержимого текстового поля. Это событие происходит каждый раз при вводе, удалении или изменении символа. Например, при вводе в текстовое поле слов "Hello" событие Change вызывается пять раз - по одному разу для каждой буквы.
Для анализа введенного в поле текста лучше всего подходит событие LostFocus. Это событие вызывается после того, как текстовое поле становится неактивным (после передачи фокуса другому элементу, т.е. когда пользователь закончит ввод). Однако если это поле является единственным элементом управления в форме, оно не может потерять фокус.
Чтобы удалить или инициализировать содержимое текстового окна, используется событие GotFocus. Оно вызывается, когда пользователь "входит" в текстовое окно.
Можно воспользоваться и другими свойствами текстового поля. Самым важным является свойство Text. Это свойство содержит отображаемый в поле текст.
Элементы управления, которые разрешают ввод символов, имеют свойство Text, а элементы, предназначенные только для отображения текста, - свойство Caption. Текстовое поле подобно маленькому редактору. Чтобы использовать его в таком качестве, достаточно установить свойство MultiLine. Это дает возможность вводить в поле несколько строк.
В многострочном поле для перехода на новую строку можно использовать клавишу Enter. Но при этом следует помнить, что для некоторой кнопки, возможно, установлено свойство Default. Поэтому нажатие клавиши Enter вызовет срабатывание этой кнопки. В таком случае для перехода на новую строку надежнее использовать комбинацию клавиш Ctrl+Enter или Shift+Enter.
Если форма не содержит многострочное текстовое поле и кнопку по умолчанию, то нажатие клавиши Enter в текстовом поле, имеющем фокус, вызовет звуковой сигнал. Для предотвращения этого можно написать следующую процедуру обработки события KeyPress текстового поля:
Private Sub Textl_Keypress(KeyAscii As Integer)
If KeyAscii =13 Then KeyAscii = 0
End Sub
При этом клавиша Enter просто игнорируется.
При работе с многострочным текстовым полем можно столкнуться со следующей проблемой: если вводимый текст больше, чем может поместиться в текстовом поле, текст хотя и не усекается, но и не отображается полностью. Эта проблема решается установкой свойства ScrollBars. С его помощью можно определить, какую полосу прокрутки будет иметь текстовое поле: горизонтальную, вертикальную или обе. При этом полосы прокрутки функционируют самостоятельно, т.е. нет необходимости писать дополнительный код.
В текстовом поле, как это обычно делается в среде Windows, можно также выделять текст. Для этого Visual Basic предоставляет следующие три свойства текстового окна. Свойство SelStart определяет начальную позицию выделенного текста в символах. Свойство SelLength содержит количество выделенных символов. И, наконец, с помощью свойств SelText можно прочитать или изменить выделенный текст.
Иногда в поле требуется быстро удалить текст или заменить его новым. Для этого выделяется весь текст в поле, как только данное поле получает фокус.
Переключатель (OptionButton)
Этот элемент управления, представляющий собой кружок с точкой или без, предназначен для установки только одной опции из группы. Обычно все переключатели формы объединены в одну группу. Если необходимо сформировать новую группу переключателей, то нужно поместить их в отдельный элемент контейнер, например Frame. Работа с элементами контейнерами будет рассмотрена далее.
Так же, как и для элемента управления CheckBox, для переключателей важно только одно событие - Click.
Важнейшим свойством переключателей является свойство Value. С его помощью можно определить состояние переключателя. Это свойство может принимать значения True и False.
Полосы прокрутки (ScrollBar)
Элемент управления ScrollBar - это полосы прокрутки окна. Некоторые элементы управления (например, TextBox, ListBox) используют такие полосы прокрутки, причем от разработчика не требуется написание программного кода для выполнения прокрутки. Однако полоса прокрутки как элемент управления Visual Basic хотя и предназначена для выполнения аналогичных функций, но не выполняет автоматически каких либо действий, т.е. ее поведение необходимо программировать. Существует два вида полос прокрутки: горизонтальная и вертикальная.
Полосы прокрутки имеют два интересных события: Change, которое возникает после изменения позиции бегунка или после программного изменения значения свойства Value, и Scroll, которое происходит во время прокрутки (когда пользователь захватил и передвигает бегунок).
Перед тем как использовать полосу прокрутки, необходимо установить для нее диапазон прокрутки, который показывает количество шагов прокрутки между крайними позициями бегунка. Текущее положение бегунка определяется значением свойства Value.
Диапазон прокрутки определяется свойствами Min и Мах полосы прокрутки. При этом значение Min всегда соответствует верхнему концу полосы, Мах - нижнему (для вертикальной полосы прокрутки), и при прокрутке содержимого окна сверху вниз значение свойства Value увеличивается. Чтобы изменить направление изменения свойств Value, достаточно поменять мест ми значения свойств Min и Мах.
Щелчок на одной из двух кнопок со стрелками на полосе изменяет значение свойства Value на величину, определяемую свойством SmallChange. Если пользователь щелкнет в области между бегунком и какой-либо из кнопок, то значение свойства Value полосы прокрутки и соответственно положение бегунка изменяется на величину, определяемую свойством LargeChange.
Рамка (Frame)
Рамка (Frame) - это один из элементов контейнеров. Его назначение - объединить в группу несколько элементов управления. Объекты, объединенные с помощью рамки, можно как единое целое перемещать, активизировать и деактивизировать, делать видимыми или невидимыми. Некоторые элементы сами нуждаются в контейнере - например, все переключатели в форме всегда объединяются в одну группу. Чтобы создать вторую группу опций, нужно требуемые переключатели объединить в элементе контейнере.
Для объединения объектов в группу нужно сначала создать элемент контейнер, затем добавить в него нужные элементы управления. Если требуемые элементы управления уже находятся в форме, их достаточно переместить в элемент контейнер. Чтобы проверить, действительно ли элемент принадлежит контейнеру, достаточно переместить контейнер. Элемент управления, принадлежащий контейнеру, будет перемещаться вместе с ним.
Рамка - это элемент управления, который не имеет особых свойств, присущих только ей.
События рамки обычно не анализируются, так как чаще всего проектировщик работает только с элементами управления, принадлежащими рамке.
Окно с рисунком (PictureBox)
Как следует из самого названия, элемент PictureBox предназначен для отображения рисунков и других графических объектов. Этот элемент управления также является элементом контейнером, поэтому его можно использовать для объединения других элементов.
Как и события рамки, события элемента PictureBox обычно не обрабатываются, хотя при необходимости это можно сделать.
Положение PictureBox в форме задается свойством Align, которое определяет - будет ли PictureBox закрепляться у одного из краев формы или сохранит положение, заданное разработчиком. Если элемент управления закрепляется у одного из краев формы, то его размер (ширина или высота) всегда устанавливается в соответствии с размером формы.
Свойство AutoSize определяет, будут ли автоматически изменяться размеры элемента управления для отображения рисунков различного размера.
Самое важное свойство PictureBox - Picture, которое содержит отображаемый графический объект. Это может быть растровое изображение (*.ВМР), пиктограмма (*.IСО), метафайл (*.WMF) или расширенный метафайл (*.EMF), также GIF и JPEG файлы.
При выполнении приложения для изменения свойства используется функция LoadPicture:
Picturel.Picture = LoadPicture(”C:\WINDOWS \AUTOS.BMP”)
Сохранить изображение можно при помощи функции SavePicture:
SavePicture Picturel.Picture, ”BUILD.BMP”
Методы PictureBox позволяют нарисовать точку, линию и окружность, также вывести текст (метод Print).
Способность элемента PictureBox отображать рисунки различных форматов можно использовать для преобразования пиктограммы (*.IСО) в растровое изображение (*.ВМР). Для этого нужно загрузить пиктограмму и сохранить ее с расширением BMP. Однако растровое изображение преобразовать в пиктограмму нельзя.
5.3.2. Элементы управления ActiveX
Помимо встроенных элементов управления, включенных непосредственно в языковой пакет VBA для MS Office 2002, в нем имеется возможность применения дополнительных компонентов, реализованных на основе механизма ActiveX. В Microsoft Office 2002 Developer Edition (ODE) входят 13 таких элементов управления ActiveX (они имеются также и в VB 6.0 Professional). Назовем их:
- Slider, RichTextBox и CommonDialog предназначены для добавления к приложениям Office полезных элементов пользовательского интерфейса - соответственно ползунка, текстового поля, позволяющего вводить текст с разметкой, и стандартного набора диалоговых окон.
- ProgressBar, StatusBar, ToolBar, TabStrip и UpDown предоставляют возможность использования элементов пользовательского интерфейса Windows XP: индикатора продвижения, строки состояния, панели инструментов, вкладки и пары стрелок.
- Winsock и InternetTransfer обеспечивают обмен данными по каналам Internet.
- TreeView, ImageList и ListView в сочетании с другими элементами управления позволяют выводить на экран сложные комбинации графических и текстовых данных.
Установка элемента управления ActiveX
В определенных случаях перед тем, как использовать элемент управления, бывает необходимо связать Visual Basic с файлом, в котором находится этот элемент. Опишем соответствующую процедуру.
1. Если файл, содержащий нужный элемент управления, отсутствует в вашей папке System (Windows XP) или System32 (Windows NT), скопировать его туда с компакт-диска ODE.
2. В меню Insert ("Вставка") редактора Visual Basic выбрать команду UserForm.
3. В меню Tools ("Сервис") выберите команду References ("Ссылки") и в открывшемся одноименном окне нажать кнопку Browse ("Обзор").
4. В диалоговом окне Add Reference ("Добавление ссылки") выделить файл с нужным элементом управления и нажать кнопку Open ("Открыть").
5. Вернувшись в окно References ("Ссылки"), нажать кнопку OK.
Добавление элемента управления к пользовательской форме
Для использования в приложении Office элемент управления сначала помещают на форму, а затем настраивают и снабжают необходимым кодом. И если набор настраиваемых параметров и их значений в каждом случае свой, то процедура помещения на форму является общей для всех дополнительных элементов управления ActiveX, включенных в ODE. Поэтому приведем ее здесь, после чего перейдем к индивидуальному описанию элементов управления.
1. В меню Insert ("Вставка") редактора Visual Basic выбрать команду UserForm.
2. В меню Tools ("Сервис") выбрать команду Additional Controls ("Дополнительные элементы").
3. В списке Available Controls ("Доступные элементы") отметить нужный элемент управления ActiveX, нажать кнопку OK, и этот элемент появится на панели элементов.
4. Перетащить элемент управления с панели элементов на пользовательскую форму.
Основные элементы управления:
- CommonDialog
- ImageList
- InternetTransfer
- ListView
- ProgressBar
- RichTextBox
- Slider
- StatusBar
- TabStrip
- ToolBar
- TreeView
- UpDown
- Winsock
5.3.3. Описание элементов управления ActiveX
Рассмотрим основные элементы управления, используемые в программе:
ImageList
Элемент управления ImageList служит для хранения набора изображений, используемого каким-либо другим элементом управления, - например, ListView, TreeView или ToolBar. Кроме того, ImageList можно применять с любыми элементами управления, имеющими свойство Picture, значением которого является объект Picture ("Рисунок"), такими как Image или CommandButton.
Использование ImageList экономит время, затрачиваемое на разработку. Вместо того чтобы писать программу, которая загружает изображения (с помощью функции LoadPicture), вы один раз заполняете форму для элемента ImageList, при желании присваиваете значения ключам, а затем пишете код, который задает изображения по названию (свойство Key) или по номеру (свойство Index).
Изображения должны представлять собой файлы формата .bmp или .ico и храниться в коллекции объектов ListImage. Для объектов ListImage определены свойства Key, Index и Count, а также методы Add, Remove и Clear, аналогичные соответствующим свойствам и методам обычных списков. ODE предоставляет возможность добавлять и удалять изображения, как во время разработки, так и во время выполнения приложения.
Некоторые варианты использования ImageList
- Хранение изображений, символизирующих открытую и закрытую папку, а также документы различных типов. Можно динамически назначать такие изображения объекту Node элемента управления TreeView, чтобы отображать различные состояния каждого узла по мере того, как он разворачивается или сворачивается, и указывать, что представляет собой узел - документ или папку.
- Хранение изображений, символизирующих типовые операции, такие как открытие, сохранение и печать файлов. Их можно назначить кнопкам (объектам Button) элемента управления ToolBar, используемого в программе.
- Хранение изображений, используемых при перетаскивании, например значков DragIcons и MousePointer.
Пример использования ImageList
Добавить к пользовательской форме элемент управления Microsoft ImageList Control, version 5.0. После этого задать изображения.
1. Поместить на пользовательскую форму элемент управления Image ("Рисунок").
2. В окне свойств элемента Image для свойства Name установить значение imgTarget, для свойства PictureSizeMode - значение frmPictureSizeModeZoom, для свойства Caption -- значение ImageList. (Если этого окна нет на экране, нажмите <F4>.)
3. В окне свойств элемента ImageList установить для свойства Name значение imlODE.
4. В окне свойств ImageList выделить пункт (Custom) и нажать кнопку (...); в появившемся окне Properties ("Свойства") выбрать закладку Images ("Рисунки").
5. Нажать кнопку Insert Picture ("Вставить рисунок").
6. В поле открытия рисунка выделить нужный файл формата .bmp или .ico и нажать кнопку Open ("Открыть"). Источником изображений может служить, например, каталог Csample на компакт-диске ODE (\Msds\Odesmpl\Ode\Msdnoc2\Csample).
7. Назначить изображению уникальный ключ, введя его в текстовом поле Key. Можно также назначить ему метку (не обязательно уникальную); она вводится в поле Tag.
8. Нажать кнопку OK.
9. Повторить процедуру вставки рисунка для всех изображений, которые нужно добавить к ImageList.
10. В окне кода ввести следующий текст:
Option Explicit
Private Sub UserForm_Click()
Set imgTarget.Picture = imlODE.ListImages(1).Picture
End Sub
11. Этот код связывает элемент управления Image с первым изображением, хранящимся в элементе управления ImageList.
12. Запустить пример на выполнение
RichTextBox
Элемент управления RichTextBox, как и стандартный TextBox, предназначен для ввода и редактирования текстов, однако обладает значительно более широкими возможностями. Он позволяет управлять начертанием (полужирный шрифт, курсив) и цветом символов, применять эффекты (такие, как верхние и нижние индексы), форматировать абзац (задавать величину отступов, межстрочные интервалами и т. д.). В RichTextBox можно как задать формат вновь вводимого текста, так и изменить формат уже введенного, предварительно выделив его. Кроме того, обеспечивается работа с текстами большого размера (в TextBox длина текста ограничена 64 знаками).
Важнейшие возможности RichTextBox
- Открытие и сохранение текстовых файлов в форматах RTF и ASCII. Соответствующие функции обеспечиваются методами LoadFile и SaveFile; кроме того, можно применять обычные операторы VB, предназначенные для ввода-вывода файлов, совместно со свойствами SelRTF и TextRTF.
- Загрузка в элемент управления форматированных текстов путем перетаскивания (можно перетащить файл или выделенный фрагмент файла, открытого в другой программе).
- Печать текстов и выделенных фрагментов (метод SelPrint).
- Внедрение OLE-объектов с помощью метода Add коллекции OLEObject. Поддерживается перетаскивание в RichTextBox любых внедренных объектов (включая таблицы Excel и документы Word) как во время разработки, так и во время выполнения программы.
- Легкая адаптация приложений, в которых используется стандартный элемент управления TextBox: в RichTextBox поддерживаются почти все его свойства, события и методы.
Пример использования RichTextBox
Добавьте к пользовательской форме элемент управления Microsoft RichText Control, version 5.0, после чего проделайте следующее.
1. Добавить к той же форме элемент управления ComboBox ("Поле со списком").
2. Для свойства Name элемента RichTextBox установить значение rtfODE, а для свойства Name элемента ComboBox -- cmbSetColor.
3. Для свойства Caption пользовательской формы установить значение "Элемент управления RichTextBox".
4. В окне кода ввести следующий текст:
Option Explicit
Private Sub cmbSetColor_Click()
With rtfODE
Select Case cmbSetColor.ListIndex
Case 0
.SelColor = vbBlack
Case 1
.SelColor = vbBlue
Case 2
.SelColor = vbRed
End Select
End With
End Sub
Private Sub UserForm_Initialize()
With cmbSetColor
.AddItem "Черный"
.AddItem "Синий"
.AddItem "Красный"
.ListIndex = 1
End With
End Sub
5. Запустить пример на выполнение и ввести в RichTextBox какой-нибудь текст. Выделить фрагмент текста и посмотреть, как будет меняться его цвет в зависимости от выбранного в ComboBox значения.
TreeView
Элемент управления TreeView предназначен для представления в виде дерева иерархических структур данных - таких как, например, указатель к документу или множество файлов и папок на диске. Дерево состоит из узлов - объектов Node.
На экране узлы представляются текстом, изображением или комбинацией того и другого в зависимости от свойства Style объекта TreeView (всего предусмотрено восемь вариантов), а связи между узлами - линиями. Знак + указывает на наличие у узла свернутого поддерева, которое можно развернуть и сделать видимым, знак - на возможность свернуть развернутое поддерево.
Изображения для узлов дерева хранятся в элементе управления ImageList. В каждый момент TreeView связан только с одним набором изображений ImageList, поэтому все изображения в дереве (если стиль предусматривает вывод графики) имеют один и тот же размер.
Пользователь управляет объектом TreeView с помощью мыши или клавиатуры. Перечислим доступные клавиатурные команды.
- <Стрелка вниз/вверх> - циклический переход к следующему/предыдущему видимому узлу (порядок узлов - слева направо и сверху вниз; за последним узлом следует первый).
- <Стрелка вправо>: если текущий узел имеет дочерние и не развернут, он разворачивается, в противном случае происходит циклический переход к следующему видимому узлу.
- <Стрелка влево>: если текущий узел имеет дочерние и развернут, он сворачивается, в противном случае происходит циклический переход к предыдущему видимому узлу.
- <Буква или цифра>: переход к следующему узлу, название которого начинается с этой буквы (цифры). Не видимые в данный момент узлы разворачиваются.
Для управления деревом из программы используются свойства и методы объектов Node. Перемещение от одного узла к другому обеспечивают свойства Root (корневой узел), Parent (родительский узел), Child (дочерний узел), FirstSibling, Next, Previous и LastSibling (соответственно первый, следующий, предыдущий и последний в группе узлов, дочерних для одного и того же родительского). Предусмотрены методы для добавления и удаления узлов, свертывания и развертывания поддеревьев и т. д.
Пример использования TreeView
Для построения этого примера нам понадобится база данных Northwind, входящая в состав Office 97.
Добавив к пользовательской форме элемент управления Microsoft TreeView Control, version 5.0, выполните следующие шаги:
1. Чтобы обеспечить работу с базой данных Northwind, установить связь с объектной библиотекой DAO 3.5: выбрать в меню Tools ("Сервис") команду References ("Ссылки") и в появившемся окне отметить Microsoft DAO 3.5 Object Library.
2. Для свойства Name элемента TreeView установить значение tvwODE.
3. Для свойства Caption пользовательской формы установить значение "Элемент управления TreeView".
4. В окне кода ввести следующий текст:
Option Explicit
Public mdbNWind As Database
Public nodODE As Node
Public rsProducts As Recordset
Private Sub UserForm_Initialize()
' Открытие базы данных Northwind
Set mdbNWind = DBEngine.OpenDatabase _
("c:\program files\devstudio\vb\nwind.mdb")
' Добавление объекта Node
Set nodODE = tvwODE.Nodes.Add(, , "r", "Products")
' Открытие набора записей, содержащего одно поле
' из таблицы Products
Set rsProducts = mdbNWind.OpenRecordset _
("SELECT Products.ProductName FROM Products;")
Dim intCounter As Integer
' Добавление узлов для вывода названий продуктов
For intCounter = 1 To 4
' Добавление объекта Node
Set nodODE = tvwODE.Nodes.Add(1, tvwChild)
' Установка свойства Text
nodODE.Text = rsProducts!PRODUCTNAME
' Переход к следующей записи
rsProducts.MoveNext
Next intCounter
End Sub
5. Запустить пример на выполнение. Дважды щелкнуть по узлу Products в дереве и вывести узлы с названиями продуктов.
Редактор меню Menu Editor
Для проектирования меню всех видов используется редактор меню Menu Editor (Редактор меню) среды проектирования IDE . Редактор меню вызывается одним из следующих способов:
- командой Menu Editor (Редактор меню) меню Tools (Инструменты);
- нажатием кнопки Menu Editor на стандартной панели инструментов;
- нажатием комбинации клавиш <Ctrl>+<E>.
Редактор создает меню для активного в данный момент окна, то есть, если активно MDI-OKHO, проектируется меню для него, если активна дочерняя форма, проектируется меню для дочерней формы. На рис. 5 показан редактор меню родительского окна, созданного автоматически мастером приложения Application Wizard.
Редактор меню состоит из двух групп: элементов управления свойствами и элементов конструирования структуры меню. Управлять основными свойствами меню, о которых было сказано выше, можно с помощью следующих элементов редактора меню:
- поле Caption (Заголовок) -- наименование пункта меню, то есть текст, появляющийся в меню;
- поле Name (Имя) -- имя меню. Используется для идентификации объекта при написании программных кодов;
- раскрывающийся список Shortcut (Оперативная клавиша) -- назначает комбинацию клавиш для быстрого вызова команды меню;
- поле HelpContextID (Идентификатор справки) -- ссылка на тему в справочной системе;
- флажок Enabled (Доступно) -- доступ к пункту меню;
- флажок Visible (Видимость) -- определяет, будет ли виден на экране элемент меню;
- флажок WindowList (Список окон) -- определяет наличие списка открытых окон.
Элементы группы конструирования структуры меню позволяют добавлять и удалять новые пункты меню, перемещать пункты по вертикали, меняя порядок их следования, и по горизонтали, меняя расположение пунктов в иерархии системы меню:
- кнопки с направленными вправо и влево стрелками перемещают пункты или команды меню в иерархии меню;
- кнопки с направленными вверх и вниз стрелками перемещают пункты или команды меню по структуре меню;
- Next (Следующий) -- перемещает указатель к следующему пункту меню. Если указатель находится на последнем пункте меню, то создается новый пункт меню или новая команда меню такого же уровня иерархии;
- Insert (Вставить) -- добавляет пункт меню или команду в пункт меню;
- Delete (Удалить) -- удаляет пункт меню или команду из пункта меню.
Для добавления пункта меню выполните следующие шаги:
1. Выбрать место в имеющейся структуре меню.
2. Добавить пункт меню, нажав кнопку Insert (Вставить).
3. В поле Caption (Заголовок) ввести название пункта меню, которое будет отображаться в строке меню при запуске приложения на выполнение.
4. В поле Name (Имя) ввести имя пункта меню, по которому он идентифицируется в программном коде.
Раздел 6. Проектная часть
6.1. DFD - диаграмма
Спецификации данных
Спецификация «Мастер»
@Ввод Сигнал
@Вывод Загрузка
@Спец процесс
ЕСЛИ «Мастер»=TRUE ТО
ВЫВОД Запуск Мастера
@КОНЕЦ
Спецификация «Справка»
@Ввод Сигнал
@Вывод Загрузка
@Спец процесс
ЕСЛИ «Справка»=TRUE ТО
ВЫВОД Открытие Справки
@КОНЕЦ
Спецификация «Открыть»
@Ввод Сигнал
@Вывод Загрузка
@Спец процесс
ЕСЛИ «Открыть»=TRUE ТО
ВЫВОД Запуск диалогового окна Открыть
@КОНЕЦ
Спецификация «Сохранить»
@Ввод Сигнал
@Вывод Загрузка
@Спец процесс
ЕСЛИ «Сохранить»=TRUE ТО
ВЫВОД Запуск диалогового окна Сохранить
@КОНЕЦ
Спецификация «Печать»
@Ввод Сигнал
@Вывод Загрузка
@Спец процесс
ЕСЛИ «Печать»=TRUE ТО
ВЫВОД Запуск Word
@КОНЕЦ
6.2. Руководство пользователю
Электронный справочник по работе с программой Visual Basic ориентирован на самостоятельное изучение материала студентами, а также начинающим программистам, желает изучить данный язык программирования.
В программном продукте «Электронный справочник по работе с программой Visual Basic», написанной на Microsoft Visual Basic 6.0, были реализованы следующие функции и процедуры.
При запуске программы появится стартовое окно, в котором будет отображено её название, а также - появится окно Введите пароль, в котором нужно заполнить поля и нажать Ок, после чего загрузится сама программа «Электронный справочник по работе с программой Visual Basic». На главной форме программы располагаются все основные элементы управления.
Главное меню программы:
– Меню «Файл» содержит кнопки «Открыть» (запускает стандартное диалоговое окно Windows «Open». Нажав «ОК», выбранный документ будет открыт в текстовом поле главной формы), «Сохранить» (Запускает стандартное диалоговое окно Windows «Save»), «Печать» и «Выход»;
– Меню «Поиск» (запускает диалоговое окно «Поиск», в появившемся поле вводится название искомого документа);
– Меню «Закладки» содержит кнопки «Новая» (Автоматически сохраняется название просматриваемой темы) и «Открыть» (Из предложенного списка тем можно открыть любую из них);
– Меню «Пользователю» содержит кнопку «Редактор паролей»;
– Меню «Справка» содержит кнопку «О программе».
В левой части окна справочника находятся главы и темы, а в большом окне отображаются выбранные темы в формате HTML-страниц.
Внизу располагаются кнопки: «Пример» (в большом окне отображается пример по какой -либо теме), «Начать тест» (окно с тестовыми вопросами и вариантами ответов), «Назад» (возвращает на предыдущую тему), «Главная» (возвращает на главную страницу) и «Вперед» (переходит на следующую страницу).
Раздел 7. Расчет экономической эффективности дипломного проекта
7.1. Расчет стоимости разработки
Величину затрат на научно-исследовательские работы определяют на основе метода калькуляций. В этом случае затраты определяются расчетом по отдельным статьям расходов и их последующим суммированием в форме. Рассмотрим затраты по отдельным статьям расходов.
7.2. Расчёт статьи, материалы, покупные изделия, полуфабрикаты
На эту статью относится стоимость материалов, покупных изделий, полуфабрикатов и других материальных ценностей, расходуемых непосредственно в процессе выполнения НИР по теме. Цена материальных ресурсов определяется по соответствующим ценникам. В стоимость материальных затрат включаются транспортные расходы (10% от прейскурантной цены).
Таблица 1
Расчёт статьи, материалы, покупные изделия, полуфабрикаты
Наименование товара
|
Единицы измерения
|
Количество
|
Цена за единицу (руб.)
|
Суммарные
затраты (руб.)
|
|
Дискеты
|
Пачка
|
2
|
170
|
340
|
|
Диски (CD-RW)
|
Пачка
|
1
|
500
|
500
|
|
Бумага для принтера
|
Пачка
|
1
|
130
|
130
|
|
Итого (затраты) 970
|
|
|
С учётом транспортных расходов: Транспортные расходы 10%
10%:100=0,1
970+0.1*970=1064 (руб.)
7.3. Расчёт основной заработной платы
К этой статье относятся основная заработная плата работников, а также премии, входящие в фонд заработной платы. Расчёт основной заработной платы выполняется на основе трудоёмкости выполнения каждого этапа в человеко-днях и величины месячного должностного оклада исполнителя. Среднее количество рабочих дней в месяце равно 20-ти. Следовательно, дневная заработная плата определяется делением размера оклада на количество рабочих дней в месяце. Трудоемкость определяется по готовым расчетам или следующим образом: по таблицам 1 и 2 находится количество дней, которое необходимо потратить на каждый из 5-ти этапов разработки. Например, на первом этапе разработки потребуется количество дней, равное сумме продолжительностей работ, коды которых: 0-1, 0-3, 1-2, 2-5, 3-4. Трудоемкость каждого этапа определяется для группы специалистов, отвечающих за этот этап разработки. Произведение трудоемкости на сумму дневной заработной платы определяет затраты по зарплате для каждого работника на все время разработки.
Таблица 2
Расчет основной заработной платы по теме
Наименование работ
|
Исполнитель
|
Оклад (руб.)
|
Дневная зарплата (руб.)
|
Трудоем-ть
(в человеко-днях)
|
Затраты по
зарплате (руб.)
|
|
1.Подготовительный этап
|
Ведущий инженер
|
1300
|
15
|
40
|
600
|
|
|
Инженер
|
1150
|
11
|
20
|
220
|
|
2.Разработка алгоритмов
и программ
|
Ведущий инженер
|
1400
|
20
|
30
|
600
|
|
|
Программист
|
1200
|
15
|
20
|
300
|
|
|
Инженер
|
1000
|
12
|
20
|
240
|
|
3.Оформление документации и
подготовка к сдаче
|
Инженер
|
1000
|
15
|
25
|
375
|
|
Итого: 2335
|
|
|
7.4. Расчет дополнительной заработной платы
На эту статью относятся выплаты, предусмотренные законодательством о труде за неотработанное по уважительным причинам время: оплата очередных и дополнительных отпусков и т.п. (принимается в размере 20% от суммы основной заработной платы):
20%:100=0,2
2335 * 0,2 = 467 руб.
7.5. Расчёт накладных расходов
К этой статье относят расходы по управлению научно-исследовательской организацией, выполняющей данную разработку, а также расходы по содержанию и ремонту зданий, сооружений, оборудования, коммунальные услуги и т. п.
Накладные расходы принимаются в размере 250% от суммы основной заработной платы.
250%:100=2,5
2335*2.5 = 5837,5руб.
7.6. Расчёт договорной цены разработки
Калькуляция стоимости разработки приведена в таблице 3.
Полная себестоимость разработки определяется суммированием пп.1-4 таблицы 3.
Полная себестоимость:
1064 + 2335 + 467 + 5837,5 = 9703,5
Оптовая цена определяется следующим образом:
Цопт = себестоимость + прибыль.
Прибыль составляет 30% от себестоимости:
30%:100=0,3
Прибыль =9703,5 *0.3 =2911,05 руб.
Цопт = 9703,5+2911,05=12614,55 руб.
При расчете договорной цены в общую стоимость включается НДС 18%
18% : 100 = 0,18
12614,55 * 0,18 = 2270,619
12614,55 + 2270,619 = 14885,169
Таблица 3
Калькуляция стоимости разработки
№ п/п
|
Наименование статьи расхода
|
Затраты (в руб.)
|
|
1.
|
Материалы, покупные изделия, полуфабрикаты
|
970
|
|
2.
|
Основная заработная плата
|
2335
|
|
3.
|
Дополнительная заработная плата
|
467
|
|
4.
|
Накладные расходы
|
5837,5
|
|
5.
|
Полная себестоимость
|
9703,5
|
|
6.
|
Прибыль
|
2911,05
|
|
7.
|
Оптовая цена
|
12614,55
|
|
8.
|
НДС 18%
|
2270,619
|
|
9.
|
Договорная цена
|
14885,169
|
|
|
Заключение
В данном разделе дипломного проекта осуществлена калькуляция темы с расчётом договорной цены ПП и дано технико-экономическое обоснование с оценкой экономической эффективности применения ПП.
Договорная цена на ПП, сформированная на основе нормативной себестоимости производства ПП и прибыли, составляет 14885,169 руб.
Экономический эффект от использования данного ПП за расчётный период (5 лет) составит 74425,845 руб., при этом эффективность разработки - примерно 0.68, т. е. разработчик покроет свои расходы на создание автоматизированной системы ориентировочно за год и затем начнёт получать прибыль.
Таким образом, заказчик должен утвердить затраты на создание нашей автоматизированной системы, поскольку в результате анализа установлено, что внедрение разработки оправдано и экономически целесообразно.
Приложение 1
Исходный код программы «Электронный справочник по работе с программой
Visual Basic»
I. m_Tbook.frm
Основная форма учебника
Const SuperRootName = "NULL?+1234r55tegwegdsfasfgsdg"
Const SubjectFile = "Subject.htm"
Const ExampleFile = "Example.rtf"
Const TestFile = "Test\index.htm"
Const iThemeListWidth = 3000
Dim NavPath As String
Dim NavBKPath As String
Dim bFullMode As Boolean
Function CreateTheme(pName As String, rName As String)
Dim tmpNode As Node
Set tmpNode = m_ThemeList.Nodes.Add(, tvwFirst, rName, pName, 1, 3)
End Function
Function CreateSection(pName As String, rName As String)
Dim tmpNode As Node
Set tmpNode = m_ThemeList.Nodes.Add(rName, tvwChild, , pName, 2)
End Function
Private Sub Themes_Loading()
Dim sFile As String
Dim i As Integer
sFile = Dir(App.Path & "\Themes\", vbDirectory)
Do Until sFile = ""
If sFile <> "." And sFile <> ".." Then
CreateTheme sFile, "r" & CStr(i)
CreateSection SuperRootName, "r" & CStr(i)
End If
sFile = Dir
i = i + 1
Loop
End Sub
Private Sub Form_Load()
Load m_Password
m_Password.Show 1
Themes_Loading
bFullMode = False
m_CmdSwitch.Caption = "Пример"
m_CmdSwitch.Enabled = False
m_ThemeView.Navigate2 App.Path & "\StartPage.htm", navNoHistory
End Sub
Function CtrlResize(iTheme As Integer)
On Error Resume Next
If m_TBook.Width <= iThemeListWidth + 110 Or m_TBook.Height <= 800 Then Exit Function
If m_TBook.WindowState = vbMinimized Then Exit Function
m_CmdSwitch.Left = iTheme + 10
m_CmdSwitch.Top = m_TBook.Height - 1000
m_CmdSwitch.Height = 400
m_CmdSwitch.Width = 1500
m_CmdTest.Left = m_CmdSwitch.Left + m_CmdSwitch.Width
m_CmdTest.Top = m_TBook.Height - 1000
m_CmdTest.Height = 400
m_CmdTest.Width = 1500
m_CmdCopyClip.Left = m_CmdTest.Left + m_CmdTest.Width
m_CmdCopyClip.Top = m_TBook.Height - 1000
m_CmdCopyClip.Height = 400
m_CmdCopyClip.Width = 1500
m_Back.Left = m_CmdCopyClip.Left + m_CmdCopyClip.Width
m_Back.Top = m_TBook.Height - 1000
m_Back.Height = 400
m_Back.Width = 1000
m_Home.Left = m_Back.Left + m_Back.Width
m_Home.Top = m_TBook.Height - 1000
m_Home.Height = 400
m_Home.Width = 1000
m_Forward.Left = m_Home.Left + m_Home.Width
m_Forward.Top = m_TBook.Height - 1000
m_Forward.Height = 400
m_Forward.Width = 1000
m_ThemeView.Left = iTheme + 100
m_ThemeView.Top = 0
m_ThemeView.Width = m_TBook.Width - (iTheme + 200)
m_ThemeView.Height = m_TBook.Height - 1000
m_BtnFullMode.Width = 100
m_BtnFullMode.Height = 1000
m_BtnFullMode.Left = iTheme
m_BtnFullMode.Top = m_TBook.Height / 2 - m_BtnFullMode.Height / 2
m_ExampleView.Left = iTheme + 100
m_ExampleView.Top = 0
m_ExampleView.Width = m_TBook.Width - (iTheme + 200)
m_ExampleView.Height = m_TBook.Height - 1000
m_ThemeList.Left = 0
m_ThemeList.Top = 0
m_ThemeList.Width = iTheme
m_ThemeList.Height = m_TBook.Height - 400
End Function
Private Sub Form_Resize()
If bFullMode Then
m_ThemeList.Visible = False
CtrlResize 0
Else
m_ThemeList.Visible = True
CtrlResize iThemeListWidth
End If
End Sub
Private Sub m_About_Click()
Load frmAbout
frmAbout.Show
End Sub
Private Sub m_NewBK_Click()
m_gBKPath = NavBKPath
Load m_FrmBookMark
m_FrmBookMark.Show 1
End Sub
Private Sub m_openBK_Click()
m_gBKPath = ""
Load m_FrmBookMark
m_FrmBookMark.Show 1
End Sub
Private Sub m_BtnFullMode_Click()
If bFullMode = True Then
bFullMode = False
Else
bFullMode = True
End If
Form_Resize
End Sub
Private Sub m_cmdCopyClip_Click()
Clipboard.SetText m_ExampleView.TextRTF
End Sub
Private Sub m_CmdSwitch_Click()
If m_CmdSwitch.Caption = "Тема" Then
m_CmdSwitch.Caption = "Пример"
m_ThemeView.Visible = True
m_ExampleView.Visible = False
m_CmdCopyClip.Visible = False
ElseIf m_CmdSwitch.Caption = "Пример" Then
m_CmdSwitch.Caption = "Тема"
m_ExampleView.Visible = True
m_ThemeView.Visible = False
m_CmdCopyClip.Visible = True
End If
End Sub
Private Sub m_CmdTest_Click()
If NavPath = "" Then Exit Sub
m_gTestPath = NavPath & "test.txt"
If Dir(m_gTestPath, vbNormal) <> "" Then
Load m_FrmTest
m_FrmTest.Show 1
End If
End Sub
Private Sub m_Back_Click()
On Error Resume Next
m_ThemeView.GoBack
End Sub
Private Sub m_Forward_Click()
On Error Resume Next
m_ThemeView.GoForward
End Sub
Private Sub m_Home_Click()
m_ThemeView.Navigate2 App.Path & "\StartPage.htm", navNoHistory
End Sub
Private Sub m_MenuPrint_Click()
On Error Resume Next
m_ThemeView.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT
End Sub
Private Sub m_MenuSave_Click()
m_ThemeView.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT
End Sub
Private Sub m_MenuFind_Click()
On Error Resume Next
' m_ThemeView.ExecWB OLECMDID_F, OLECMDEXECOPT_DODEFAULT
End Sub
Private Sub m_Quit_Click()
End
End Sub
Private Sub m_ThemeList_Expand(ByVal Node As MSComctlLib.Node)
Dim pNode As Node
Set pNode = Node.Child
If pNode.Text = SuperRootName Then
m_ThemeList.Nodes.Remove pNode.Index
Dim sFile As String
Dim i As Integer
sFile = Dir(App.Path & "\Themes\" & Node.Text & "\", vbDirectory)
Do Until sFile = ""
If sFile <> "." And sFile <> ".." Then
CreateSection sFile, Node.Key
End If
sFile = Dir
i = i + 1
Loop
End If
End Sub
Private Sub m_ThemeList_NodeClick(ByVal Node As MSComctlLib.Node)
If Node.Children Then Exit Sub
m_CmdSwitch.Enabled = True
NavPath = App.Path & "\Themes\" & Node.FullPath & "\"
NavBKPath = Node.FullPath
m_ThemeView.Navigate2 NavPath & SubjectFile, navNoHistory
If (Len(Dir(NavPath & ExampleFile))) <= 0 Then
m_ExampleView.Text = ""
Else
m_ExampleView.LoadFile NavPath & ExampleFile
End If
End Sub
II. mdl_Question.bas
Модуль для хранения глобальных переменных
Type Question
Question As String
Answer(2) As String
True As Integer
End Type
Public m_gTestPath As String
Public m_gBKPath As String
Public m_gBKNewName As String
III. m_FrmBookMark.frm
Форма управления закладками
Private Sub Form_Load()
On Error GoTo EndLoadForm
Dim pLine As String
m_bFindName = False
Open App.Path & "\bookmark.txt" For Input As #1
Do Until EOF(1)
Line Input #1, pLine
m_BKList.AddItem pLine
If m_bFindName = False Then
If pLine = m_gBKPath Then m_bFindName = True
End If
Loop
If m_bFindName = False And m_gBKPath <> "" Then
m_BKList.AddItem m_gBKPath
End If
Close #1
EndLoadForm:
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo EndUnLoadForm
If m_gBKPath = "" Then
GoTo EndUnLoadForm
End If
Open App.Path & "\bookmark.txt" For Output As #1
For i = 0 To m_BKList.ListCount - 1
m_BKList.ListIndex = 0
Print #1, m_BKList.Text
m_BKList.RemoveItem m_BKList.ListIndex
Next
Close #1
EndUnLoadForm:
End Sub
Private Sub m_DeleteBK_Click()
If m_BKList.ListIndex <> -1 Then m_BKList.RemoveItem m_BKList.ListIndex
End Sub
IV. m_FrmTest.frm
Форма управления тестом
Dim qcount As Integer ' общее количество вопросов
Dim r As Integer ' количество правильный
' ответов
Dim curq As Integer
Dim rate(1 To 4) As Integer ' критерии оценок
Dim comment(1 To 4) As String ' комментарии
Dim f As String ' буфер чтения
Dim qcycle() As Integer
Dim quest() As Question
Sub LoadQuestions()
Dim fquest As String
Dim ftrue As Integer
Dim fanswer() As String
Do While NextQuestion(fquest, ftrue, fanswer)
If qcount = 1 Then
ReDim quest(0)
Else
ReDim Preserve quest(qcount - 1)
End If
quest(qcount - 1).Question = fquest
quest(qcount - 1).True = ftrue
For i = 0 To 2
quest(qcount - 1).Answer(i) = fanswer(i)
Next
Loop
End Sub
Function NextQuestion(ByRef fquest As String, ByRef ftrue As Integer, ByRef fanswer() As String) As Boolean
If Not EOF(1) Then ' файл не закончился
' считывание и ввод вопроса
Line Input #1, fquest
' считывание вариантов ответа
ReDim fanswer(2)
For i = 0 To 2
Line Input #1, f
fanswer(i) = f
Line Input #1, f
If f = "1" Then ftrue = i
Next
' верный ли ответ: 1 - верный 0 - нет
' 0 или 1 записывается в свойство Tag соответствующего компонента
' Option
' увеличение счетчика вопросов
qcount = qcount + 1
NextQuestion = True
Else
NextQuestion = False
End If
End Function
Private Sub ShowQuestion(ByVal num As Integer)
If num >= qcount - 1 Then m_CmdNext.Caption = "Завершить"
num = qcycle(num)
m_CmdNext.Enabled = False
m_Question.Caption = quest(num).Question
m_Var1.Caption = quest(num).Answer(0)
m_Var1.Tag = 0
If quest(num).True = 0 Then m_Var1.Tag = 1
m_Var2.Caption = quest(num).Answer(1)
m_Var2.Tag = 0
If quest(num).True = 1 Then m_Var2.Tag = 1
m_Var3.Caption = quest(num).Answer(2)
m_Var3.Tag = 0
If quest(num).True = 2 Then m_Var3.Tag = 1
m_Var1.Value = False
m_Var2.Value = False
m_Var3.Value = False
End Sub
Private Sub Form_Load()
m_Question.Font.Size = 10
FileName = m_gTestPath
On Error GoTo EndTest
Open FileName For Input As #1 ' открытие файла
' для чтения
Line Input #1, f ' чтение названия теста
m_FrmTest.Caption = f
' комментарии и критерии оценок
For i = 1 To 4 Step 1
Line Input #1, f
comment(i) = f
Line Input #1, f
rate(i) = f
Next
' обнуление счетчиков
q = 0
r = 0
LoadQuestions
Close #1
ReDim qcycle(qcount - 1)
Dim qvars() As Boolean
ReDim qvars(qcount - 1)
For i = 0 To qcount - 1
qvars(i) = True
Next
For i = 0 To qcount - 1
Dim rn As Integer
Dim num As Integer
Randomize
rn = Rnd(qcount - 1) * (qcount - 1) + 1
Do While rn > 0
num = num + 1
If num > qcount - 1 Then num = 0
Do Until qvars(num)
num = num + 1
If num > qcount - 1 Then num = 0
Loop
rn = rn - 1
Loop
qcycle(i) = num
qvars(num) = False
Next
If qcount = 0 Then GoTo EndTest
ShowQuestion (0)
EndTest:
End Sub
Private Sub m_CmdEndTest_Click()
Erase quest
curq = 0
qcount = 0
r = 0
Unload m_FrmTest
End Sub
Private Sub m_CmdNext_Click()
If m_Var1.Value = True Then r = r + m_Var1.Tag
If m_Var2.Value = True Then r = r + m_Var2.Tag
If m_Var3.Value = True Then r = r + m_Var3.Tag
If m_CmdNext.Caption = "Завршить" Then
m_Var1.Visible = False
m_Var2.Visible = False
m_Var3.Visible = False
m_Question.Height = m_Question.Height * 2
m_Question.Caption = "Тестирование завершено." + Chr(13) + _
"Правильных ответов: " + Format$(r) + _
" из " + _
Format$(qcount) + "."
i = 1
While (r < rate(i)) And (i < 4)
i = i + 1
Wend
' ввод коментария
m_Question.Caption = m_Question.Caption + Chr(13) + comment(i)
m_CmdNext.Enabled = False
Else
curq = curq + 1
ShowQuestion curq
End If
End Sub
Private Sub m_Question_Click()
End Sub
Private Sub m_Var1_Click()
m_CmdNext.Enabled = True
End Sub
Private Sub m_Var2_Click()
m_CmdNext.Enabled = True
End Sub
Private Sub m_Var3_Click()
m_CmdNext.Enabled = True
End Sub
V. m_Password.frm
Форма для ввода пароля
Dim Entered As Boolean
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
Dim sName As String
Dim sPass As String
Dim deName As String
Dim dePass As String
Dim Equal As Boolean
Open App.Path & "\Passwords" For Input As 1
Do Until EOF(1)
deName = ""
dePass = ""
Input #1, sName
Input #1, sPass
Dim sim As String
Dim sima As String
Dim simb As String
For i = 0 To Len(sName) - 1 Step 2
sima = Mid(sName, i + 1, 1)
simb = Mid(sName, i + 2, 1)
sim = Chr((Asc(sima) - 210) * 16 + (Asc(simb) - 210))
deName = deName & sim
Next
For i = 0 To Len(sPass) - 1 Step 2
sima = Mid(sPass, i + 1, 1)
simb = Mid(sPass, i + 2, 1)
sim = Chr((Asc(sima) - 210) * 16 + (Asc(simb) - 210))
dePass = dePass & sim
Next
If deName = txt_Name And dePass = txt_Password Then
Equal = True
End If
Loop
Close #1
If Not Equal Then
MsgBox "Неправильно введены" & vbCrLf & _
"имя пользователя" & vbCrLf & _
"и пароль", vbOKOnly
Else
Entered = True
Unload m_Password
End If
End Sub
Private Sub Form_Load()
Entered = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Not Entered Then End
End Sub
Заключение
В ходе дипломного проектирования была разработана программа «Справочник по работе с программой Visual Basic». Эта программа предназначена для самостоятельной работы студентов при обучении программированию в среде Visual Basic.
На основании поставленной цели решались следующие задачи:
- провести анализ теоретического материала предлагаемого к компьютерной реализации;
- предоставить студентам, изучающим Visual Basic эффективное и легкодоступное средство обучения, которое включало бы в себя теоретический материал, вопросы и практические задания, и выполняло бы не только обучающую, но и контролирующую и оценивающую функции;
- предоставить учебному заведению полноценное программное обеспечение, которое сможет применяться при обучении Visual Basic-у и которым смогут пользоваться сотни студентов.
Для решения данных задач была проделана следующая работа:
- проведен анализ теоретического материала предлагаемого к изучению студентам и выбран материал для первоочередной реализации в электронном справочнике;
- проведен сравнительный анализ электронных справочников («VBHELP» - справочник по Visual Basic 5.0, «Vbfunction», «Справочник по WIN 32 API», «Справочник по функциям Windows API») с целью выявления системы, наиболее отвечающей требованиям, предъявляемым при разработке справочника;
- подобрана система тестовых вопросов для выявления уровня усвоения нового материала;
- разработана система подсказок, призванная облегчить обучение студентов;
- разработан и реализован электронный справочник по работе с программой Visual Basic, который может применяться при обучении студентов.
Практическую ценность своей работы я вижу в том, что: во-первых, мною был получен богатый опыт разработки обучающих компьютерных систем, в том числе, освоены инструментальные средства разработки подобных систем; во-вторых, и это главное, учебное заведение получит в свое распоряжение и сможет использовать в образовательном процессе новое электронное средство обучения - электронный справочник по работе с программой Visual Basic.
Список использованных источников
1. Штайнер Г. Visual Basic .NET. -- M.: Лаборатория Базовых Знаний, 2002. -- 544 с.: ил. -- (Справочник).
2. Глушаков С.В. Программирование на Visual Basic 6.0 / СБ. Глушаков, С. А. Сурядный; Худож.-оформ. А.С. Юхтман. -- М.: ООО «Издатель-ство ACT»; Харьков: «Фолио», 2005. -- 497, [15] с.-- (Учебный курс).
3. Культин Н. Б. Visual Basic. Освой на примерах. -- СПб.: БХВ-Петербург, 2004. - 288 с.: ил.
4. Кен Гетц, Майк Гилберт Программирование на Visual Basic 6 и VBA. Руководство разработчика: Пер. с англ. -- К.: Издательская группа BHV, 2001. - 912 с., ил.
5. Аляев Ю. А., Козлов О. А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие. -- М.: Финансы и ста-тистика, 2002. -- 320 с.: ил.
6. Методические рекомендации по проектированию обучающих программ / Институт психологии Министерства просвещения УССР; - Киев, 1986.
7. Технология сертификации программных средств учебного назначения (ПС УН) / Рос. центр информатизации образования (РОСЦИО) / Под редакцией А.И. Галкина, В.К. Мороз. - М., 1993.
8. Тодд Миллер, Дэвид Пауэл. Использование Delphi 3 / специальное издание. - М.-Киев, Диалектика, 1997.
9. Павловская Т. А. C/C++. Программирование на языке высокого уровня. - "Питер", 2005 г., 461 с.
10. Брайан Сайлер, Джефф Споттс. Использование Visual Basic 6.0. - Издательский Дом «Вильямс», 1999 г., 832 с.
11. http://www.vbstreets.ru/ - «VB улицы». Все о Visual Basic, VBScript, Active Server Page, ActiveX, ADO и SQL.
12. http://www.vbplanet.km.ru/ - Всё для программистов. Отличный сайт о Visual Basic. Много интересных материалов: исходники, ActiveX, статьи, форум.
13. http://www.vb.narod.ru - сайт со статьями по VB, имеется электронный учебник…
14. http://www.visualbasic.boom.ru - сайт очень полезный, особенно для программистов на Visual Basic.
15. http://www.vbmaster.fhost.ru - сайт посвященный программированию.
16. http://www.vbrussia.com - материалы по программированию
Array
Страницы: 1, 2
|