1. Анализ исходных данных
1.1 Основание и назначение разработки
Программа адресная книга ZiBook написана на языка Visual Basic, целью написания данной программы, было создание многофункциональной адресной книги с возможностью добавления, изменения, редактирования и поиска информации, так же в программе имеется возможность дозвона модемом по номеру абонента.
1.2 Минимальные требования к составу и параметрам технических средств: ЭВМ, внешние устройства
Для того, чтобы использовать ZiBook, Вам нужен компьютер со следующим аппаратным и программным обеспечением:
· Процессор Pentium (или аналогичный) *
· Звуковая карта **
· Микрофон и динамики (лучше наушники - для устранения эха)
· Модем
· Microsoft Windows 95-98
*Может быть использован также быстрый процессор i486, однако успешный результат в этом случае не гарантирован.
** Для наилучшего результата, звуковая карта должна поддерживать звуковой формат 8000 Гц (8 кГц) / 16 бит и работать в режиме полного дуплекса (то есть позволять одновременные запись и воспроизведение звука).
1.3 Требования к информационной и программной совместимости
· Операционная система MS Windows 95-98-Me
· Поддержка операционной системой кириллицы
· Для работы программы на компьютере должны быть установлен Scripting Host (Сервер сценариев) (WSCRIPT.SHELL)
· 16Мб оперативной памяти
· 10 Мб на жестком диске
· Видеоадаптер SVGA
· SVGA монитор
1.4 Требования к функциональным характеристикам
Постановка задачи. Программа должна выполнять следующие функции:
· Вывод формы, содержащей всю адресную книгу
· Вывод формы, для внесения и редактирования адресной книги
· Вывод формы, для настройки параметров модема (тоновый\импульсный, номер СОМ порта)
· Вывод формы поиска.
1.5 Выбор и обоснование системы программирования и используемых программных средств
При разработке программных продуктов, обязательно возникает вопрос выбора программных средств для оптимального решения, поставленной задачи. Но, каждый пакет имеет свои особенности, решению которых уделено большее внимание. В данном случае оптимальным выбором стал Visual Basic 6.0. Так как, Visual Basic 6.0 является очень гибким языком, что позволяет в короткие сроки создавать программное обеспечение довольно высокой степени сложности. Кроме того, Visual Basic популярный язык программирования, как следствие, наличие достаточно полной справочной информации.
1.6 Разработка математической модели задачи, выбор алгоритма реализации и его обоснование
В основе программы лежит работа с текстовыми файлами, открытие его для записи, поиск нужных элементов.
2. Внешняя спецификация
2.1 Входные данные
Входными данными являются:
- Имя
- Отчество
- Фамилия
- Адрес
- Дом
- Квартира
- Телефон
- Комментарии
2.2 Выходные данные
Выходными данными для данной программы является список адресатов.
2.3 Общее описание алгоритмов и внутренних данных
Внутренние данные хранятся в локальных и в глобальных переменных, а также в свойствах элементов управления.
Общее описание алгоритмов. Программа основана на событийной модели. Когда происходит какое-либо событие (нажатие клавиши на клавиатуре или кнопке мыши), программа его обрабатывает (выполняет определённый код).
2.4 Основной алгоритм программы
Основной алгоритм программы заключается в организации работы пользователя с БД адресной книги. Внесение данных происходит в файл data.dat, после того, как все данные введены, и номер телефона проверен на корректность, данные записываются в него.
3. Руководство пользователя
3.1Назначение программы
Программа адресная книга ZiBook предназначена для хранения данных о ваших знакомых, коллегах и друзьях.
3.2 Описание интерфейса. Требования к входным данным
После запуска программы на экране появляется главное окно. Как видно, программа имеет очень приятный и интуитивно понятный интерфейс.
Нажимая на соответствующие кнопки пользователь может:
Добавлять\изменять элементы.
Поиск по БД. Заполняем нужные поля и нажимаем Ok.
Никаких особых требования программа не предъявляет пользователю. В поле «телефон» поставлена проверка на вводимые символы – программа просто не даст Вам ввести туда ничего кроме цифр. В остальные поля, можете вводить что угодно, использовать любые символы, но учтите что при поиске слова «Иванов» и «иванов» будут учитываться как разные, т.к. программа чувствительна в регистру букв.
Результаты поиска выводятся в том же окне, где и основная БД. Но в этот момент основная БД адресной книги будет невидима для удобства пользователя.
Чтобы просмотреть, найденные элементы, нажимаем кнопку «Изменить»
Чтобы, загрузить всю базу, нажимаем на кнопку «Вся книга»
Выбор параметров дозвона – тоновый или импульсный, номер порта «Параметры»
По всем возникающим вопросам, пользователь всегда может обратиться в службу поддержки по электронной почте: admin@zigmynd.tk или ICQ UIN 907700
4. Руководство программиста
4.1 Описание типов пользовательских данных
В программе пользовательские типы данных не используется, применяются стандартные типы данных: Single, Long, Integer, String, Boolean. Для хранения БД используется файл data.dat. Результаты поиска временно хранятся в файле search.dat
4.2 Организация ввода данных в программу и вывода результатов
Данные в программу вводятся при помощи клавиатуры, все данные хранятся в файле data.dat
4.3 Блок схема
4.4 Структура программы. Описание процедур и их параметров
В программе использовалась четыре формы:
FrmMain
Эта форма содержит основную форму программы.
- SaveData() процедура сохраняющая данные в файл data.dat
- butAbout_Click() процедура вызывающая меню About
- butAdd_Click() процедура инициализирующая добавление элементов в адресную книгу.
- butDelete_Click() процедура удаляющая выбранные элементы из адресной книги.
- butDial_Click() процедура инициализирующая дозвон
- butEdit_Click() процедура инициализирующая редактирование элементов
- butOptions_Click() процедура, инициализирующая запуск меню настроек модема
- Command1_Click() процедура, инициализирующая поиск
- Command2_Click() процедура, загружающая всю адресную книгу в окно
FrmEdit
Эта форма содержит меня для редактирования БД. Эта же форма выводится при введении параметров поиска.
- txtPhone_KeyPress(KeyAscii As Integer) – процедура проверяющая правильность ввода номера телефона. Даёт вводить только цифры.
FrmAbout
Эта форма выводит окно «About» c кратким описанием программы.
FrmOptions
Эта форма используется для настройки параметров модема.
- butOk_Click() – процедура сохраняющая параметры дозвона, которые выбирает пользователь.
- txtPort_KeyPress(KeyAscii As Integer) - процедура проверяющая правильность ввода номера порта. Даёт вводить только цифры.
Все процедуры можно формы можно разделить на следующие группы:
1. процедуры загрузки
2. процедуры, обрабатывающие данные на конкретных шагах
3. процедуры обработки и ввода данных.
4.5 Настройка программы
Данная программа не содержит сложных настроек. Всё что пользователь может настроить – это параметры модемы – порт соединения и тип звонка (тоновый или импульсный в зависимости от тока какой звонок поддерживает АТС) Подробное описание программы находится в файле readme.txt
5. Контрольный пример
В качестве примера рассмотрим вопрос о внесении нового пользователя в БД.
1. Для добавления элемента заполним следующие поля:
- Имя
- Отчество
- Фамилия
- Адрес
- Дом
- Квартира
- Телефон
Далее называем кнопку «Добавить» и если всё было верно сделано, в БД занесётся новый элемент.
2. Для того чтобы проверить, выделяем интересующий нас элемент и жмем кнопку «Изменить»
Приложение
FrmMain
Rem Автор программы ZIGMyND <admin@zigmynd.tk>
Option Explicit
Public Sub SaveData()
Dim Index As Long
Dim strText As String
SetAttr Path & "data.dat", vbNormal
On Error Resume Next
Open Path & "data.dat" For Output As #1
For Index = 0 To UBound(User)
If Not (User(Index).strKvartira = vbNullString Or User(Index).strDoma = vbNullString Or User(Index).strFamilia = vbNullString Or User(Index).strOtchectvo = vbNullString Or User(Index).strAdress = vbNullString Or User(Index).strComment = vbNullString Or User(Index).strName = vbNullString Or User(Index).strPhone = vbNullString) Then
Print #1, User(Index).strName
Print #1, User(Index).strOtchectvo
Print #1, User(Index).strFamilia
Print #1, User(Index).strAdress
Print #1, User(Index).strDoma
Print #1, User(Index).strKvartira
Print #1, User(Index).strPhone