- •Курсовая работа по дисциплине «Информационные технологии»
- •Содержание введение
- •1.Теоретическая часть
- •1.1. Выбор субд. Ms Access
- •1.2. Технология ado
- •1.3. Microsoft Jet 4.0 ole db Provider
- •1.4. Delphi
- •1.5. Выводы
- •2.1.2. Требования к разрабатываемой информационной системе
- •2.1.3. Описание разрабатываемой системы
- •2.2. Проектирование базы данных «Интернет провайдер»
- •2.2.1. Модели разрабатываемой информационной системы
- •2.2.2. Проектирование интерфейса
- •2.3. Реализация программного средства
- •2.4. Тестирование и анализ качества программного обеспечения
- •2.5. Выводы
- •Заключение
- •Список использованных источников
- •Приложение: листинг кода программы
2.2.2. Проектирование интерфейса
В процессе проектирования интерфейса определены следующие функциональные блоки:
База данных (см. Таблица 2.1);
Блок просмотра и редактирования (см. Таблица 2.2).
Таблица 2.1. Спецификация функционального блока "База данных"
Атрибут |
Значения |
Назначение |
Упорядоченное хранение данных |
Описание |
Возможность отображения и редактирования данных с СУБД |
Внешнее отображение |
Таблицы с данными |
Входные/выходные данные |
Данные абонентов, тарифов, оплат |
Входные/выходные сигналы управления |
Команды редактирования |
Таблица 2.2. Спецификация функционального блока "Блок просмотра и редактирования"
Атрибут |
Значения |
Назначение |
Обеспечение возможности редактирования и просмотра базы данных |
Описание |
Возможность отображения и редактирования базы данных без СУБД |
Внешнее отображение |
Совокупность форм на каждую из таблиц |
Входные/выходные данные |
Данные абонентов, тарифов, оплат |
База данных |
База данных интернет провайдера |
Входные/выходные сигналы управления |
Команды редактирования |
База данных должна быть приведена к третьей нормальной форме. Логическая модель базы данных отображена на диаграмме ErWin(рис. 2.2).
Для реализации интерфейса требуется, чтобы с помощью него появилась возможность выполнения следующих задач:
Добавление/удаление/редактирование записей
Составление запросов
Выдача информации по конкретному пользователю
Для пользователя должен быть осуществлен простой и легкий в освоении интерфейс.
Структура интерфейса представлена на рисунке 2.3.
Рисунок 2.3. Схема интерфейса программы
2.3. Реализация программного средства
Описание и проектирование программного комплекса, а также выбор средства для разработки программного продукта уже готовы. Теперь, непосредственно, можно приступать к реализации информационной системы.
Для начала необходимо создать саму базу данных в MicrosoftAccess, состоящую из трех таблиц. Для каждой из таблиц указаны атрибуты. Физическая структура таблиц присутствует в таблицах 2.3 – 2.5.
Таблица 2.3. Абоненты
Имя поля |
Тип данных |
Код |
Счетчик |
Фамилия |
Текстовый |
Имя |
Текстовый |
Отчество |
Текстовый |
Паспорт |
Числовой |
Телефон |
Числовой |
Адрес |
Текстовый |
Таблица 2.4. Тарифы
Имя поля |
Тип данных |
Код |
Счетчик |
Название |
Текстовый |
Минута |
Денежный |
Мегабайт |
Денежный |
Сутки |
Денежный |
Таблица 2.5. Оплата
Имя поля |
Тип данных |
Код |
Счетчик |
Тариф |
Числовой |
Плательщик |
Числовой |
Дата начала |
Дата/время |
Дата окончания |
Дата/время |
Минут |
Числовой |
Мбайт |
Числовой |
База данных готова, после этого приступим к основному этапу курсовой работы – реализации приложения для взаимодействия с созданной базой данных.
Создано девять форм. Основная (Main) форма представляет собой главное меню (рис. 2.4), в котором располагаются: меню, логотип интернет провайдера, и три кнопки для открытия других форм, каждым из которых соответствует отдельная таблица.
Рисунок 2.4. Главная форма приложения
По нажатию каждой кнопке прописана процедура для создания и затем модального отображения соответственной формы. Код процедур для каждой из этих кнопок приведен ниже:
procedure TFormMain.btn1Click(Sender: TObject);
var tarf: TFormTariff;
begin
tarf := TFormTariff.Create(Self);
tarf.ShowModal;
end;
procedure TFormMain.btn2Click(Sender: TObject);
var usrf: TFormUsers;
begin
usrf := TFormUsers.Create(Self);
usrf.ShowModal;
end;
procedure TFormMain.btn3Click(Sender: TObject);
var billf: TFormBills;
begin
billf := TFormBills.Create(Self);
billf.ShowModal;
end;
Так же нужно заметить, что главная форма не отображается сразу. Перед ней появляется форма «Вход в систему» (рис. 2.5), которая служит для проверки кто – пользователь или администратор пытается войти в систему. Проверка осуществляется путем ввода пароля для администратора, или простым нажатием кнопки «Войти» для пользователя. Если был введен неверный пароль – программа уведомит об этом и сделает поле для ввода пароля красным, а если верный – выдаст уведомление с приветствием.
Пользователь и администратор обладают разными правами доступа в приложении.
Рисунок 2.5. Форма для входа
На главной форме находится компонент ADOConnectionс именемMainCon, в котором установлена связь с созданной базой данных, находящейся в той же папке что и сам файл приложения.
Рисунок 2.6. Настройки соединения с базой данных
На остальных формах добавлены компоненты для работы с базой данных, охарактеризованные в таблице 2.6:
Таблица 2.6. Свойства компонентов
Компонент |
Свойство |
Значение |
ADOTable |
Connection |
FormMain.MainCon |
TableName |
Имя таблицы | |
Active |
True | |
DataSource |
DataSet |
ADOTable |
DBGrid |
DataSource |
DataSource |
DBNavigator |
DataSource |
DataSource |
ADOQuery |
Connection |
FormMain.MainCon |
Active |
True |
Компонент ADOQueryбыл использован только на одной форме для реализации фильтрации и сортировки таблицы.
Примеры интерфейсов форм представлены на рисунках 2.7 – 2.9
Рисунок 2.7. Форма «Абоненты»
Рисунок 2.8. Форма «Тарифы»
Рисунок 2.9. Форма «Оплата»
Основные требования к интерфейсу программного продукта выполнены. Формы отображают соответствующую таблицу из базы данных с возможностью добавления и редактирования записей (для администратора).
Но, кроме этого, полезно добавить в приложение и дополнительные функции, служащие для упрощения его использования. Среди таких функций были выбраны фильтрация по промежутку между датами и сортировка по отдельно взятому полю.
Для фильтрации по промежутку было использовано два компонента DateTimePicker, одинADOQueryи одинCheckBox.
Код реализации фильтрации:
procedure TFormBills.btnFILTClick(Sender: TObject);
begin
if (chk1.Checked = True) then
ADOQuery1.Filter:= '( [Дата начала] > '+DateToStr(dtp1.Date)+
') and ( [Дата начала] < '+DateToStr(dtp2.Date)+
') and ( [Дата окончания] > '+DateToStr(dtp1.Date)+
') and ( [Дата окончания] < '+DateToStr(dtp2.Date)+')';
ADOQuery1.Filtered:=chk1.Checked;
end;
Как видно из кода, мы передаём параметру Filterнаш фильтр в виде строки и затем состояниюFilteredпередаём текущее состояниеCheckBox.
Результаты работы фильтра приведены на рисунках 2.10 – 2.12.
Рисунок 2.10. Форма без применения фильтра
Рисунок 2.11. Форма с применением фильтра от 03.06.2005 до 21.12.2005
Рисунок 2.12. Форма с применением фильтра от 03.06.2006 до 21.12.2007
Для сортировки таблицы по определенному полю был использован SQLзапрос вADOQuery.
Поле для сортировки выбирается с помощью RadioGroupс именемrg1. Так же существует возможность выбора типа сортировки либо по возрастанию, либо по убыванию, используяRadioGrouprg2.
Код реализации сортировки:
procedure TFormBills.btnSORTClick(Sender: TObject);
var s: string;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [Оплата]');
case rg2.ItemIndex of
0: s:= 'ASC';
1: s:= 'DESC';
end;
case rg1.ItemIndex of
0: s:='ORDER BY [Код] ' + s;
1: s:='ORDER BY [Тариф] ' + s;
2: s:='ORDER BY [Плательщик] ' + s;
3: s:='ORDER BY [Дата начала] ' + s;
4: s:='ORDER BY [Дата окончания] ' + s;
5: s:='ORDER BY [Минут] ' + s;
6: s:='ORDER BY [Мбайт] ' + s;
end;
ADOQuery1.SQL.Add(s);
ADOQuery1.Open;
end;
Примеры работы сортировки приведены на рисунках 2.13 - 2.15.
Рисунок 2.13. Форма без применения сортировки (по умолчанию)
Рисунок 2.14. Форма с применением сортировки по полю «Плательщик» по возрастанию
Рисунок 2.15. Форма с применением сортировки по полю «Дата окончания» по убыванию
Так же я добавил возможность смены пароля, только для администратора (рис. 2.15). Вызвать окно смены пароля можно из Меню->Операции->Админ->Сменить пароль.
Рисунок 2.15. Форма для смены пароля администратора