Реализация информационной системы средствами объектно-ориентированного языка Delphi




 

Delphi – это среда разработки приложений с использованием графического интерфейса Windows. Программирование является:

а) Объектно-ориентированным (программирование осуществляется над объектами и с помощью объектов)

б) Событийно-ориентированным (раз есть объект, то должно быть и событие на которое реагирует объект). Программирование в Delphi осуществляется с помощью объектов, каждый объект имеет свойства.

Средства Delphi для разработки приложений, использующих базы данных:

BDE (Borland Database Engine).

Взаимодействие приложения, созданного в среде разработке Delphi, и базы данных обеспечивает процессор баз данных Borland Database Engine. Он представляет собой набор динамических библиотек, функции которых позволяют не только обращаться к данным, но и эффективно управлять ими на стороне приложения. Компоненты доступа к данным Delphi для работы с базами данных используют возможности BDE, обращаясь к его функциям и процедурам. Механизм доступа к BDE инкапсулирован в базовом классе TBDEDataSet. BDE взаимодействует с базами данных посредствам драйверов. Для наиболее распространенных СУБД разработан набор стандартных драйверов. Однако при всех преимуществах BDE не претендует на всеобъемлющую универсальность и имеет некоторые недостатки. К ним, например, относится снижение скорости работы приложения, недостатки реализации некоторых драйверов.

SQL Links.

Приложения Delphi обращаются к данным при помощи BDE, при этом способы доступа к данным различаются в зависимости от типа базы данных. К локальным БД Paradox, dBASE, MS Access, FoxPro BDE обращается посредствам стандартных драйверов. Данные от серверов SQL поступают благодаря использованию специальной системы драйверов SQL Links. Важнейшую роль при обработке и отправлении запроса играет составная часть процессора БД-система обработки запросов. Локальные СУБД не используют язык SQL в качестве основного при работе с данными. Тем не менее, BDE при помощи соответствующего стандартного драйвера транслирует поступающие от приложений запросы в понятный для локальной СУБД вид и принимает ответы. Так как запрос к любой локальной БД выполняется одним механизмом, то существует и единый синтаксис SQL для работы с такими данными. Этот вариант носит название локальный SQL и является подмножеством стандарта SQL 92. Все серверы БД, работающие через SQL Links, являются серьезными промышленными системами и работают на собственных расширениях языка.

BDE Administrator.

Для успешного доступа к данным приложение и BDE должны обладать информацией о местоположении файлов требуемой базы данных. Самый простой способ заключается в явном задании полного пути к каталогу, в котором хранятся файлы БД. Но в случае изменения пути, что случается не так уж редко (например, при переносе готового приложения на компьютер заказчика), разработчик должен перекомпилировать проект с учетом будущего местонахождения БД или предусмотреть специальные элементы управления, в которых можно задать путь к БД. Для решения такого рода проблем разработчик может использовать псевдоним базы данных, который представляет собой именованную структуру, содержащую путь к файлам БД и некоторые дополнительные параметры. Помимо маршрута к файлам базы данных, псевдоним BDE обязательно содержит информацию о драйвере БД, который используется для доступа к данным. Наличие других параметров зависит от типа драйвера, а значит от типа СУБД. Для управления псевдонима баз данных, настройки стандартных и дополнительных драйверов в составе BDE имеется специальная утилита - ВDЕ Adminstrator (см. выше, исполняемый файл BDEADMIN.EXE). Стандартная конфигурация BDE сохраняется в файле IDAPI.CFG.

Database Desktop.

Это программа для создания, редактирования, удаления, изменения логической структуры таблиц баз данных.

 

3.1 Конфигурация системы с помощью утилиты

 

BDE ADMINISTRATOR

Данная курсовая работа не нуждается в создании псевдонима. Она лишь требует следующего:

а) Наличия на компьютере BDE Administrator-a.

б) Папка, где хранятся таблицы баз дынных, не должна переименовываться.

 

3.2 Создание таблиц базы данных с помощью утилиты

 

DATABASE DESKTOP

 

 
 

Таблица 1: Автомобили имеет следующий вид

 


 
 

Таблица 3: Счет-фактура

 

Таблица 4: Торговый чек

 
 

Примечание: Таблица “Автомобили” и “Счет-фактура” связаны связью 1:M (один-ко-многим), следовательно, прежде чем удалять поле из таблицы “Счет-фактура”, сначала следует удалить соответствующее поле в таблице “Aвтомобили”. Таблица “Торговый чек” и ”Покупатель” также связаны связью 1:M, следовательно, прежде чем удалять поле из таблицы “Торговый чек”, сначала следует удалить соответствующее поле в таблице “Покупатель”, для сохранения ссылочной целостности.

 

3.3 Организация пользовательского интерфейса

 

3.3.1 Создание меню, реализующего основные функции информационной системы

После загрузки приложения появляется первая форма ввода пароля:

После успешной идентификации пользователя загружается следующая форма:

При помощи этой формы можно корректировать цену автомобилей с

учетом роста (падения) курса доллара. После того как курс доллара был установлен, загружается следующая форма.

Данная форма является формой-заставкой.

После успешной загрузки этой формы появляется главная форма.

На главной форме находится пять кнопок, четыре из которых указывают на таблицы. Нажатием пятой кнопки осуществляется выход из программы.

Также, на этой форме еще присутствуют кнопки изменения времени сохранения, установив которые на нужной цифре, можно установить период, через который программа будет осуществлять автосохранение.

 

3.3.2 Проектирование форм для работы с базой данных

Рассмотрим одну из форм (меню у всех форм практически одинаковы) автомобили. Она имеет вид:

 


Рассмотрим все меню по порядку:

Меню - здесь осуществляется выход из программы. По сочетанию клавиш Alt+F4 или непосредственно нажатием.

Текст процедуры:

If MessageDlg('Подтверждение?',MtConfirmation,[mbYes,mbNo,mbCancel],

0)=mrYes then

Form1.Close;

Form4.Table1.FlushBuffers;

Form5.Table1.FlushBuffers;

Form6.Table1.FlushBuffers;

Form7.Table1.FlushBuffers;

Формы – здесь осуществляется навигация по формам.

Текст процедуры:

form5.visible:=false;

form3.visible:=true;

Примечание: Для остальных форм текст такой же только изменяется номер форм.

Действия – здесь организованы различные режимы работы с базой данных (ввод, редактирование, поиск, поиск и замена, фильтрация).

Организация формы ввода нового автомобиля осуществляется следующим образом:

form11.visible:=true;

form11.Edit3.clear;

form11.Edit4.clear;

form11.Edit5.clear;

form11.Edit6.clear;

form11.Edit7.clear;


Внешний вид этой формы:

 

Марка автомобиля и цена добавляются автоматически.

Процедура кнопки добавить:

form5.Table1.insert;

form5.Table1.edit;

form5.Table1Color.Asstring:=edit4.text;

form5.Table1Kol_vo_door.Asstring:=edit5.text;

form5.Table1Engine_power.Asstring:=edit6.text;

form5.Table1Type_Salon.Asstring:=edit7.text;

form5.table1.post;

Form5.Table1.FlushBuffers;

form11.visible:=false;

Организация формы поиска осуществляется следующим образом:

Form5.Table1.FlushBuffers;

Form5.Visible:=false;

Form24.visible:=true;

Form24.Table1.Refresh;

Form24.DBGrid3.Visible:=false;

 


 
 

Форма поиска выглядит так:

 

 

Процедура кнопки “Поиск”:

procedure TForm24.Button1Click(Sender: TObject);

Label s,d;

begin

if (Form24.Edit1.text='')or (Form24.Edit2.text='') or (Form24.Edit3.text='')

then

BEGIN

Showmessage('Значения не введены, возможен неправильный поиск!');

goto s;

END;

with Form24.table1 do

begin

locate('Name_Modeli',edit1.text,[]);

locate('Predlag_Zena',edit2.text,[]);

locate('Color',edit3.text,[]);

if (locate('Name_Modeli',edit1.text,[])=false) and

(locate('Predlag_Zena',edit2.text,[])=false) and

(locate('Color',edit3.text,[])=false)

then

begin

Showmessage('Такого автомобиля нет!');

Form24.Edit1.clear;

Form24.table1.first;

s: Form24.DBGrid3.Visible:=false;

end

else

d: Form24.DBGrid3.Visible:=True;

end;

Form24.Table1.Refresh;

Form24.Query1.active:=true;

end;

 

Пример поиска автомобиля:

 

 

Такой автомобиль программа не нашла, но после поиска было задано условие, найти по цвету. Также можно задать еще два других условия, или все сразу, поставив галочку в соответствующем окошке.

Следующий компонент меню – это поиск и замена данных об автомобиле.

Организация формы поиска:

form13.visible:=true;

form13.edit1.clear;form13.edit2.clear;form13.edit3.clear;

form13.edit4.clear;form13.edit5.clear;form13.edit6.clear;

form13.edit7.clear;

form13.edit10.clear;form13.edit11.clear;form13.edit12.clear;

form13.edit13.clear;form13.edit14.clear;form13.edit15.clear;

 
 

Внешний вид формы

 

 

Процедура кнопки найти:

with Form5.table1 do

if (Locate('Kod_Modeli',Edit1.text,[])=true) then

begin

SpeedButton3.Enabled:=true;

Form13.Edit2.text:=Form5.table1Name_Modeli.AsString;

Form13.Edit3.text:=Form5.table1Color.AsString;

Form13.Edit4.text:=Form5.table1Predlag_Zena.AsString;

Form13.Edit5.text:=Form5.table1Kol_vo_Door.AsString;

Form13.Edit6.text:=Form5.table1Engine_Power.AsString;

Form13.Edit7.text:=Form5.table1Type_Salon.AsString;

Form13.Label11.Visible:=true;

Form13.Label12.Visible:=false;

end

else

begin

Form13.Label12.Visible:=true;

SpeedButton3.Enabled:=false;

Form13.Label11.Visible:=false;

Form13.Edit2.Clear;

Form13.Edit3.Clear;

Form13.Edit4.Clear;

Form13.Edit5.Clear;

Form13.Edit6.Clear;

Form13.Edit7.Clear;

end;

Организация формы фильтрации:

Form5.Visible:=false;

Form26.visible:=true;

form4.timer2.enabled:=false;

 

Внешний вид формы:

 
 

 

Процедура кнопки применить для столбца Цена (для других столбцов аналогично, только меняется название столбца):

if (radiogroup1.ItemIndex=0) and (radiogroup2.ItemIndex=0) then

with table1 do

begin

Filtered:=false;

Filter:='Predlag_Zena<'+(Edit1.Text);

Filtered:=true;

end;

begin

if (radiogroup1.ItemIndex=1) and (radiogroup2.ItemIndex=0) then

with table1 do

begin

Filtered:=false;

Filter:='Predlag_Zena>'+(Edit1.Text);

Filtered:=true;

end;

end;

begin

if (radiogroup1.ItemIndex=2) and (radiogroup2.ItemIndex=0) then

with table1 do

begin

Filtered:=false;

Filter:='Predlag_Zena<='+(Edit1.Text);

Filtered:=true;

end;

end;

if (radiogroup1.ItemIndex=3) and (radiogroup2.ItemIndex=0) then

with table1 do

begin

Filtered:=false;

Filter:='Predlag_Zena>='+(Edit1.Text);

Filtered:=true;

end;

 

if (radiogroup1.ItemIndex=4) and (radiogroup2.ItemIndex=0) then

with table1 do

begin

Filtered:=false;

Filter:='Predlag_Zena='+(Edit1.Text);

Filtered:=true;

end;

Следующий пункт меню – это Графики.

Организация формы показа графиков осуществляется следующим образом:

Form5.Table1.FlushBuffers;

Form5.Visible:=false;

Form25.Visible:=true;

Форма графики, может показывать два графика. Рассмотрим внешний вид этих графиков:

Первый: Цены на автомобили.

 
 

 

Процедура кнопки показа первого графика:

Form5.Visible:=false;

Form25.Caption:='Цены на автомобили';

Form25.DBChart1.Visible:=true;

Form25.DBChart2.Visible:=false;

 


 
 

Второй: Сезонность цен.

 

 

Процедура кнопки показа второго графика:

Form5.Visible:=false;

Form25.Caption:='Сезонность цен на автомобили';

Form25.DBChart1.Visible:=false;

Form25.DBChart2.Visible:=true;

Следующий пункт меню – это Очистка базы.

Этот пункт был создан для того, чтобы осуществлять быструю очистку всех или текущих таблиц.

Процедура меню “Очистка всей базы”

Form5.Table1.Edit;

repeat

Form5.Table1.delete;

until (Form5.table1.eof=true);

Form6.Table1.active:=true;

Form6.Table1.Edit;

repeat

Form6.Table1.delete;

until (Form6.table1.eof=true);

Form7.Table1.active:=true;

Form7.Table1.Edit;

repeat

Form7.Table1.delete;

until (Form7.table1.eof=true);

Form4.Table1.active:=true;

Form4.Table1.Edit;

repeat

Form4.Table1.delete;

until (Form4.table1.eof=true);

 


Заключение

 

В курсовой работе можно подвести следующий итог. Поставленные задачи были выполнены. Был осуществлен сбор и структуризация материала об объекте, для которого необходимо было создать программный продукт. Спроектирована база данных, таблицы приведены к трем нормальным формам. Создано приложение, позволяющее работать с базой данных: Редактирование, поиск, удаление, фильтрация данных. Были приобретены и закреплены теоретические знания по объектно-ориентированному программированию в среде Delphi.

Следует отметить, что данный программный продукт может быть использован (и даже рекомендуется) в небольших фирмах, которые занимаются закупкой и продажей автомобилей, для совершения более организованной и оперативной работы. При необходимости, данный программный продукт может быть скорректирован под запросы и задачи определенной фирмы. Преимущества данной программы, заключаются в том, что этот продукт позволяет решать конкретные задачи и не требует специальных знаний в программировании, т.к. интерфейс интуитивно понятен. Листинг программы может быть использован студентами для создания своих собственных приложений.

 


Список используемой литературы

1. Дарахвелидзе П. М. Программирование в Delphi 5 – М: 2001. – 500с., ил

2. Базы данных: Модели, разработка, реализация / Т.С. Карпова. - СПб.: Питер, 2001. – 304 с.: ил.

3. Грабер М. Введение в SQL: Пер. с англ. - М.: “ЛОРИ”, 2001.- 6412., ил.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: