«Автоматизированный
телефонный справочник»
Оглавление
1. Введение………………………………………………………………………3-4
2. Принципы разработки
2.1. Принципы объектно-ориентированного программирования………..5-8
2.2. Краткая характеристика СУБД……………………………………….9-10
2.3. Microsoft Visual FoxPro 8.0…………………………………………..11-15
2.4. Постановка задачи……………………………………………………….16
3. Принципы реализации
3.1. Структура системы…………………………………………………..17-20
3.2. Алгоритм работы приложения………………………………………….21
4. Заключение…………………………………………………………………….22
5. Приложения………………………………………………………………..23-28
6. Использованная литература………………………………………………….29
1. Введение
Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия или учреждения. Такая система должна:
обеспечивать получение общих и/или детализированных отчетов по итогам работы;
позволять легко определять тенденции изменения важнейших показателей;
обеспечивать получение информации, критической по времени, без существенных задержек;
выполнять точный и полный анализ данных.
Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полно использовать возможности персональной ЭВМ, нежели среда DOS. Снижение стоимости высокопроизводительных ПК обусловил не только широкий переход к среде Windows, где разработчик программного обеспечения может в меньшей степени заботиться о распределении ресурсов, но также сделал программное обеспечение ПК в целом и СУБД в частности менее критичными к аппаратным ресурсам ЭВМ.
Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBASE, Borland Paradox, Microsoft Visual FoxPro, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии "клиент-сервер".
На сегодняшний день разработчик не связан рамками какого-либо конкретного пакета, а в зависимости от поставленной задачи может использовать самые разные приложения. Поэтому, более важным представляется общее направление развития СУБД и других средств разработки приложений в настоящее время.
Для того чтобы в полной мере раскрыть тему данной работы рассмотрим основные характеристики СУБД Visual FoxPro8.0 компании Microsoft.
2.1. Принципы объектно-ориентированного программирования
В основу структурного подхода программирования положены структуризация и декомпозиция окружающего мира. Задача любой сложности разбивается на подзадачи, а те, в свою очередь, разбиваются далее, пока каждая подзадача не станет простой, соответствующей модулю (подпрограмме), выполняющему строго одно действие. Методы структурного проектирования используют модули в качестве строительных блоков программы, а структура программы представляется иерархией подчиненности модулей.
При объектно-ориентированном подходе в качестве строительных блоков используются объекты, содержащие свои собственные коды и данные. Структура программ при объектно-ориентированном подходе представляется графом взаимодействия объектов, а не деревом иерархии, как это имеет место в структурном проектировании.
Объектно-ориентированный анализ (object-oriented analysis) - это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области. Объектно-ориентированный анализ направлен на создание моделей реальной действительности на основе объектно-ориентированного подхода.
Объектно-ориентированное проектирование (object-oriented design) - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления моделей, отражающих логическую (классы и объекты) и физическую структуру системы (процессы и деление на компоненты, файлы или модули), а также ее статические и динамические аспекты.
Объектно-ориентированное программирование (object-orientedprogramming) - это технология реализации программ, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
На результатах объектно-ориентированного анализа формируются модели, на которых основывается объектно-ориентированное проектирование, а оно, в свою очередь, создает фундамент для окончательной реализации системы с использованием языковых средств объектно-ориентированного программирования.
Понятие объектно-ориентированного программирования определяет три основные концепции, при соблюдении которых программа будет объектно-ориентированной:
базовых элементов классы, порождающие объекты;
использоваться несколько объектов, порожденных от одного класса
(экземпляров реализации класса);
«быть частью»).
Класс - представляет собой объединяющую концепцию набора объектов, имеющих общие характеристики. Класс также определяет интерфейс с окружающим миром, посредством которого осуществляется взаимодействие с отдельными объектами.
Класс является описанием того, как будет выглядеть и вести себя его представитель. Поэтому класс проектируют как образование, отвечающее за создание своих новых представителей (экземпляров или объектов). Создание объектов и их уничтожение осуществляется с помощью особых методов - называемых конструктором и деструктором.
Объект — это структурированная переменная типа класс, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии. Все объекты - представители данного класса аналогичны друг другу в том смысле, что они имеют один и тот же набор операций - методов.
Объект, как логическая единица, содержит следующие данные и операции (методы с кодом алгоритма) в отдельном участке памяти:
определяют текущее состояние объекта;
алгоритмов) в ответ на их вызов в виде преданного сообщения;
есть его реакцию на внешние воздействия.
При объявлении классов определяются описанные выше три характеристики объектов: поля, методы и свойства, а также указывается предок данного класса.
Объекты в программах воспроизводят все оттенки явлений реального мира: «рождаются» и «умирают»; меняют свое состояние; запускают и останавливают процессы; «убивают» и «возрождают» другие объекты.
В основе классов лежат три фундаментальных принципа - инкапсуляция, наследование и полиморфизм.
Инкапсуляция. Проектирование программных и технических систем базируется на том условии, что никакая подсистема данного уровня не должна зависеть от устройства любой другой подсистемы этого уровня. Такая независимость внутреннего устройства одного объекта от внутреннего устройства другого называется инкапсуляцией.
Принцип инкапсуляции использовался в технологии модульного программирования. В модуле в явной форме введена инкапсуляция путем разделения его на секции интерфейса и реализации.
В объектно-ориентированном программировании принцип инкапсуляции используется для изоляции класса от остальных частей программы, чтобы сделать его самодостаточным для решения конкретной задачи.
Инкапсуляция достигается путем совмещения в одной записи языка программирования структур данных с процедурами и функциями, которые манипулируют полями данных этой записи, для получения нового типа данных - класса. Инкапсуляция позволяет защитить по интерфейсу доступ к полям и методам. Доступ разрешается лишь к открытым методам и полям. Полная совокупность методов и тонкости их реализаций являются скрытыми.
Наследование. Число абстракций в сложных программных системах намного превышает наши возможности их осознания. Инкапсуляция частично помогает устранить это препятствие, убирая из поля зрения внутреннее содержание абстракций.
Однако значительное упрощение понимания сложных задач достигается за счет усложнения иерархии. Под иерархией здесь понимается упорядочение абстракций, расположение их по уровням. Усложнение иерархии от уровня к уровню достигается за счет наследования.
Принцип наследования оперирует с понятиями «предок - потомок» и предусматривает расширение набора свойств наследника за счет принятия всех свойств предка.
Любой класс может быть порожден от другого класса. Порожденный класс автоматически наследует поля, методы и свойства своего родителя и может добавлять их новыми. Таким образом, принцип наследования обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов.
Полиморфизм. Одним из базовых понятий технологии объектно-ориентированного программирования является полиморфизм. Этот термин имеет греческое происхождение и приблизительно означает «много форм» (poly — много, morphos — форма).
Полиморфизм - это средство для придания различных значений одному и тому же событию в зависимости от типа обрабатываемых данных. Этот принцип определяет различные формы реализации одноименного действия.
Целью полиморфизма является использование одного имени для задания общих для класса действий, причем каждый объект или класс иерархии имеет возможность по-своему реализовать это действие своим собственным, подходящим для него, кодом. Таким образом, полиморфизм является свойством классов решать схожие по смыслу проблемы разными способами.
2.2. Краткая характеристика СУБД
База данных - это реализованная с помощью компьютера информационная структура (модель), отражающая состояние объектов и их отношения.
База данных предполагает наличие комплекса программных средств, обслуживающих эту базу данных и позволяющих использовать содержащуюся в ней информацию. Такой комплекс программ называют СУБД. Это программная система, поддерживающая наполнение и манипулирование данными, представляющими интерес для пользователей при решении прикладных задач. Иными словами, СУБД является интерфейсом между базой данных и прикладными задачами.
Перечислим основные функции СУБД.
1. Определение данных - определить, какая именно информация будет храниться в БД, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой.
2. Обработка данных - данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и собирать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения.
3. Управление данными - можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию.
Входящие в состав современных СУБД средства совместно выполняют следующие функции:
описание данных, их структуры;
первичный ввод, пополнение информации в БД;
удаление устаревшей информации из БД;
корректировку данных для поддержания их актуальности;
упорядочение (сортировку) данных по некоторым признакам;
поиск информации по некоторым признакам
подготовку и генерацию отчетов;
защиту информации и разграничение доступа пользователей к ней;
резервное сохранение и восстановление БД.
Архитектурно СУБД состоит из двух основных компонентов: ЯОД, позволяющего создать схему описания данных в базе, и ЯМД, выполняющего операции с базой данных (наполнение, обновление, удаление, выборку информации). Данные языки могут быть реализованы в виде тренажеров и интерпретаторов. Помимо ЯОД и ЯМД к СУБД следует отнести средства (или языки) подготовки отчетов (СПО), позволяющие подготовить сводки (отчеты) на основе информации, найденной в базе данных, по заданным формам.
СУБД предназначены для автоматизации процедур создания, хранения и извлечения электронных данных. Многие существующие экономические, информационно-справочные, банковские, программные комплексы реализованы с использованием инструментальных средств СУБД.
Для различных классов компьютеров и операционных средств разработано множество СУБД, отличающихся по способу организации данных, формату данных, языку формирования запросов. Наиболее распространенными пакетами для ПЭВМ являются Microsoft Access, dBase, Paradox, Visual Fox Pro, Oracle и др.
2.3. Microsoft Visual FoxPro 8.0
Visual FoxPro 8.0 представляет собой новую версию широко известной системы управления базами данных (СУБД) Visual FoxPro, которая функционирует в среде Windows и представляет собой полноценное 32-х разрядное приложение. Visual FoxPro является объектно-ориентированным, визуально-программируемым языком, управляемым по событиям и в полной мере соответствует новым требованиям, предъявляемым к современным средствам проектирования.
В Visual FoxPro имеется несколько уровней разработки приложений. Если вам необходимо в кратчайшее время разработать не очень сложное приложение, вы можете воспользоваться средствами быстрой разработки приложений, которые представлены многочисленными мастерами для создания форм, отчетов, почтовых этикетов и многого другого. Если вам не достаточно средств, предоставляемых мастерами, используйте конструкторы для создания форм отчетов, меню и запросов. При разработке крупных проектов целесообразно создавать пользовательские классы и использовать их при создании разнообразных форм ввода данных.
Visual FoxPro является системой управления реляционными базами данных, которые в настоящее время являются наиболее распространенными. В данной версии реализованы все атрибуты реляционных СУБД. В Visual FoxPro существует понятие базы данных, которая содержит совокупность таблиц. В базе данных вы можете определить условия целостности данных с помощью первичных и внешних ключей таблиц. В Visual FoxPro реализованы триггеры и хранимые процедуры, которые позволяют централизованно обрабатывать события, возникающие при любых изменениях в базе данных.
Отличительной особенностью Visual FoxPro 8.0 является совместимость с предыдущими версиями FoxPro, что позволяет достаточно просто перенести приложения, созданные ранее, в более привлекательную среду Windows.
Visual FoxPro использует средства Windows, с помощью которых приложение Visual FoxPro может обмениваться данными с другими приложениями Windows.
Опытному пользователю предоставляются широчайшие возможности по обработке информации с помощью полнофункциональной интегрированной среды программирования на языке Visual FoxPro.
Visual FoxPro поддерживает доступ к наиболее популярным SQL-серверам баз данных - Microsoft SQL Server, Oracle, Informix и другим, используя стандарт ODBC.
В мире насчитывается более 50 типов СУБД для IBM PC и совместимых с ними компьютеров. Традиционно одной из наиболее популярных из них в России является Visual FoxPro, новая версия которого Visual FoxPro 7.0 содержит дополнения, ускоряющие разработку приложений.
Новые возможности Visual FoxPro 8.0
В Microsoft Visual FoxPro 8.0 много нововведений. Ряд из них относится к модификациям среды проектирования. В Конструкторе форм сняты ограничения на размеры проектного пространства, введены конструкторы Data Environment и XML Web Service. Ярлыки вкладок теперь можно располагать вдоль любой из сторон. Конструктор таблиц позволяет теперь строить выражения в поле Caption и использовать надписи контейнера базы данных DBC как выражения. В Конструкторе таблиц также доступен автоинкремент соответствующих полей. Существенно улучшены возможности оформления сеток.
Для многотабличных объединений и соответствующих SQL SELECT –команд внесен ряд изменений. Конструктор меню позволяет теперь выполнять перемещение меню. Усовершенствованы средства подготовки печать и отчетов. Конструктор запросов обеспечивает эффективную работу со сложными запросами.
При запуске Visual FoxPro 8.0 пользователя теперь встречает специальное окно панели задач Task Pane, позволяющее выбрать область деятельности, ознакомиться с примерами и т.д.
Компоненты Visual FoxPro
Visual FoxPro состоит из отдельных компонентов, которые используются для хранения и представления информации. Этими компонентами являются таблицы, представления данных, формы, отчеты, запросы, программы и библиотеки. Для создания форм и отчетов используются конструкторы, поэтому эти компоненты часто называют конструкторскими объектами. Конструкторские объекты являются основными объектами, то есть состоят из более мелких объектов (таких как поля, кнопки, диаграммы, рамки и т.д.), которые называются объектами интерфейса.
К объектам интерфейса относятся:
В Visual FoxPro вся информация содержится в таблицах. Каждая таблица имеет уникальное имя и хранится в отдельном файле, наименование которого совпадает с именем таблицы. При задании наименований таблиц действуют те же правила, что и присвоении имен файлов в Windows.
Каждая создаваемая вами таблица может иметь связанные с ней индексы, а также файлы, содержащие значения полей типа Memo и General. Перечисленные объекты всегда связаны с таблицей, для которой они созданы.
Каждый объект хранится в отдельном файле, причем имена файлов, содержащих основные объекты, вы задаете самостоятельно, а наименования файлов, содержащих объекты, связанные с таблицей, совпадают с именем таблицы. В зависимости от типа содержащегося в нем объекта, Visual FoxPro автоматически присваивает каждому файлу расширение, которое помогает в идентификации объекта.
Формы используются для ввода и просмотра таблиц в окне формы. Формы позволяют ограничить объем информации, отображаемой на экране, и представить ее в более наглядном виде. С помощью мастера вы можете создать форму, поместив в нее поля исходной таблицы, расположенные в соответствии с одним из заранее созданных шаблонов. С помощью конструктора форм вы можете создавать формы любой степени сложности.
Отчеты используется для печати информации, содержащейся в базе данных. С помощью конструктора отчетов вы можете разработать собственный отчет, включающий группировку данных, групповые и вычисляемые поля, и оформить соответствующим образом.
Запрос является средством для излечения информации из базы данных, причем данные могут быть распределены среди нескольких таблиц. В Visual FoxPro для формирования запросов используется способ, получивший название запроса по образцу. Используя это средство, на основании визуальной информации вы можете извлечь нужную информацию из одной или нескольких таблиц.
Программы, написанные на языке Visual FoxPro, предназначены для выполнения различных операций. При использовании объектно-ориентированного программирования, как правило, программы связаны с объектами, размещаемыми в формах. Однако программа может выступать и в роли независимого объекта. Такие программы выполняются независимо от наличия форм на экране.
Библиотеки классов предназначены для хранения классов, созданных в Visual FoxPro. Классы могут использоваться при создании форм.
Файл параметров настройки FOXPRO. INI содержит параметры основного окна Visual FoxPro, настройки таблиц, параметры окон диалога и панели инструментов.
Индексы хранят ссылки, предназначенные для упорядочения данных и ускорения поиска в таблице. Каждая таблица может иметь несколько индексов.
Memo-поля содержат текстовую информацию, а поля типа General используются при обмене данными с другими приложениями, работающими под Windows.
В качестве инструмента реализации представляемого в курсовой работе программного обеспечения была выбрана объектно-ориентированная СУБД Visual FoxPro 8.0. Выбор обосновывался следующими факторами:
1) сравнительно низкая стоимость лицензионной версии;
2) простота использования в сочетании с широким спектром возможностей программирования;
3) широкая распространенность в Российской Федерации.
2.4. Постановка задачи
Целью представляемой курсовой работы является разработка автоматизированного телефонного справочника. В качестве примера был разработан телефонный справочник п.г.т. Богатые Сабы.
В рамках представляемой курсовой работы была предусмотрена разработка следующих функциональных возможностей системы:
1) работа со справочниками, обеспечивающая возможность корректировки и ввода записей справочников;
2) ввод и корректировка данных по каждой отдельной операции;
3) поиск нужной информации.
Для реализации приложения по автоматизации телефонного справочника была использована программная среда объектно-ориентированной СУБД Visual FoxPro версии 8.0.
3.1. Структура системы
Система состоит из базы данных, содержащей таблицы, в которых хранятся данные, принадлежащих к определенной группе информации, экранных форм, программ и меню.
1. База данных.
Таблица «Street» определяет справочник улиц в п.г.т. Богатые Сабы и содержит поле «Улица»:
Таблица «Телефонный_справочник_сабинского_района» является основной и содержит такие поля, как ФИО, Улица, Номер дома, Номер телефона:
2. Экранные формы.
Приложение по автоматизации телефонного справочника включает в себя следующие экранные формы:
1. Запускная форма
2. Справочник «Street» содержит названия всех улиц. Позволяет добавлять, удалять, исправлять данные.
3. Справочник «Directory» содержит список людей, проживающих в п.г.т. Богатые Сабы, их адреса (улица, номер дома) и номера телефонов. Позволяет добавлять, удалять, исправлять данные, а также осуществить поиск по фамилии, по улице, по номеру телефона или общий поиск (при частичном совпадении фамилии или улицы или при полном совпадении номера телефона).
3.2. Алгоритм работы приложения
4. Заключение
Данный курсовой проект был выполнен в полном соответствии поставленному заданию. В ходе выполнения курсовой работы было разработано автоматизированное приложение «телефонный справочник».
Реализованное программное обеспечение включает в себя:
2 таблицы баз данных
3 экранные формы(2 из них модальные, одна немодальная)
1 главную запускную программу mainform, используемую для активизации всех остальных объектов и множество программных методов, привязанных к экранным формам.
В соответствии с заданием было разработано приложение, имеющее удобный интерфейс, и предоставляющее возможность создания и редактирования телефонного справочника и поиск по различным параметрам. Данное приложение продемонстрировало хорошую работоспособность, не должно вызывать затруднений в работе конечного пользователя.
5. Приложения
Листинги программ:
1. Запускная программа mainform
SET DEFAULT TO C:\Curs\MyCurs
CLEAR EVENTS
CLEAR
DO FORM mainform
READ events
CLEAR WINDOWS
CLOSE DATABASES
CLEAR EVENTS
QUIT
2. Кнопка «Справочник»
DO FORM maintable
3. Кнопка «Список улиц»
DO FORM street
4. Кнопка «Выход»
IF MESSAGEBOX("Выходить из формы?", 4+32+256, "Выход")=6
_screen.ActiveForm.Release()
ELSE
_screen.ActiveForm.Refresh()
ENDIF
5. Кнопка «Добавить» (Street)
thisform.grid1.SetFocus
thisform.grid1.Visible=.F.
thisform.container1.Visible=.T.
thisform.container1.text1.Value=''
thisform.command1.Visible=.F.
thisform.command2.Visible=.F.
thisform.command3.Visible=.F.
thisform.command4.Visible=.F.
thisform.command5.Visible=.T.
thisform.command6.Visible=.T.
thisform.command12.Visible=.F.
thisform.command9.Visible=.F.
thisform.command10.Visible=.F.
thisform.command11.Visible=.F.
6. Кнопка «Удалить» (Street)
IF MESSAGEBOX("Вы действительно хотите удалить запись?", 4+32+256, "Выход")=6
DELETE
thisform.grid1.SetFocus
ENDIF
7. Кнопка «Правка» (Street)
thisform.grid1.Visible=.F.
thisform.container1.Visible=.T.
thisform.container1.Refresh
thisform.command1.Visible=.F.
thisform.command2.Visible=.F.
thisform.command3.Visible=.F.
thisform.command5.Visible=.F.
thisform.command6.Visible=.T.
thisform.command7.Visible=.T.
thisform.command4.Visible=.F.
thisform.command12.Visible=.F.
thisform.command9.Visible=.F.
thisform.command10.Visible=.F.
thisform.command11.Visible=.F.
SELECT street
thisform.container1.text1.Value=thisform.grid1.column1.text1.Value
8. Кнопка «Отмена»(Street)
thisform.grid1.Visible=.T.
thisform.command1.Visible=.T.
thisform.command2.Visible=.T.
thisform.command3.Visible=.T.
thisform.command4.Visible=.T.
thisform.command5.Visible=.F.
thisform.command6.Visible=.F.
thisform.command7.Visible=.F.
thisform.command12.Visible=.T.
thisform.command9.Visible=.T.
thisform.command10.Visible=.T.
thisform.command11.Visible=.T.
9.1. Кнопка «Сохранить»(Street)
s=ThisForm.Container1.Text1.Value
s=UPPER(ALLTRIM(s))
SELECT street
locate FOR UPPER(ALLTRIM(street))=s
IF FOUND()
MESSAGEBOX("Такая запись существует", 4+68+256, "Предупреждение" )
ELSE
INSERT INTO street VALUES (s)
ENDIF
thisform.Grid1.Visible=.T.
thisform.container1.Visible=.F.
thisform.command1.Visible=.T.
thisform.command2.Visible=.T.
thisform.command3.Visible=.T.
thisform.command4.Visible=.T.
thisform.command5.Visible=.F.
thisform.command6.Visible=.F.
thisform.command7.Visible=.F.
thisform.command12.Visible=.T.
thisform.command9.Visible=.T.
thisform.command10.Visible=.T.
thisform.command11.Visible=.T.
thisform.grid1.SetFocus
thisform.Refresh
9.2. Кнопка «Сохранить»(Street)
ThisForm.Grid1.Column1.Text1.Value=ThisForm.container1.text1.Value
thisform.Grid1.Visible=.T.
thisform.container1.Visible=.F.
thisform.command1.Visible=.T.
thisform.command2.Visible=.T.
thisform.command3.Visible=.T.
thisform.command4.Visible=.T.
thisform.command5.Visible=.F.
thisform.command6.Visible=.F.
thisform.command7.Visible=.F.
thisform.command12.Visible=.T.
thisform.command9.Visible=.T.
thisform.command10.Visible=.T.
thisform.command11.Visible=.T.
thisform.grid1.SetFocus
10. Кнопка «Поиск по фамилии»
LOCAL v
v=UPPER(ALLTRIM(thisform.Text1.Value))
SELECT t.fio AS 'ФИО', t.street AS 'Улица', t.house AS 'Дом', t.ntel AS 'Номер_телефона' FROM TABINF t;
WHERE v = UPPER(t.fio)
thisform.Text1.Value=""
11. Кнопка «Поиск по улице»
LOCAL v
v=UPPER(ALLTRIM(thisform.Text2.Value))
SELECT Fio AS 'ФИО', Street AS 'Улица', House AS 'Дом', Ntel AS 'Номер_телефона' FROM TABINF t;
WHERE UPPER(t.street) = v
thisform.Text2.Value=""
12. Кнопка «Поиск по номеру телефона»
LOCAL v
v=ALLTRIM(thisform.Text3.Value)
SELECT Fio AS 'ФИО', Street AS 'Улица', House AS 'Дом', Ntel AS 'Номер_телефона' FROM TABINF t;
WHERE t.ntel = v
thisform.Text3.Value=""
13. Кнопка «Поиск»
LOCAL lcName
lcName = UPPER(ALLTRIM(thisform.Text4.Value)) SELECT t.fio AS 'ФИО', t.street AS 'Улица', t.house AS 'Дом', t.ntel AS 'Номер_телефона' FROM TABINF t;
WHERE lcName=t.fio OR t.street=lcName OR t.house=lcName OR t.ntel=lcName
thisform.Text4.Value=""
6. Использованная литература
1. Справочник по Visual FoxPro 8.0
2. Мусина Т.В. Visual FoxPro 8.0. Учебный курс – К.:ВЕК+, СПб.: КОРОНА принт, К.: НТИ, 2004. – 464 с.
3. Базиян, Менахем и др. Использование Visual FoxPro 6. Специальное издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2003. – 928 с.
32