База данных Бюро знакомств
База данных Бюро знакомств
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ КОРАБЛЕБУДУВАННЯ
ім. адм. Макарова
Херсонський філіал
Кафедра інформаційних технологій
Курсова робота
З ДИСЦИПЛІНИ
“Об’єктно – орієнтоване програмування”
ТЕМА: Розробка програмного забезпечення “Бюро знайомств”
Виконав:
Перевірив:
Херсон 2004
Ход работы программы
Модуль Proect1 содержит информацию о всех 7-ми Формах.
Форма 1 (Unit1) состоит из 6-ти кнопок и хранит процедуры их обработки:
. Кнопка Новая анкета позволяет создать новую анкету клиента,
содержащую данные о нем.
. Кнопка Просмотр анкет выводит список ранее зарегистрированных
клиентов.
. Кнопка Работа с архивом открывает таблицу, содержащую личные
данные клиентов о себе и раздел анкет по полу.
. Кнопка Просмотр архива открывает таблицу архива, содержащую личные
данные и параметры клиентов.
. Кнопка Просмотр сохраненных приглашений открывает диалоговое окно,
содержащее информацию о текущем приглашении пары (по умолчанию в
кафе “Ночной Тарзан”).
. Кнопка Выход завершает работу программы Бюро знакомств.
Форма 2 (Unit 2) создаёт новую анкету, содержащую такие поля: Дата,
Регистрационный номер (задаётся автоматически), Фамилия, Имя, Отчество,
Пол, Возраст, О себе, Требования. Так же имеются 2 кнопки: OK – сохраняет
новую, заполненную анкету, Cancel - отменяет создание новой анкеты.
Форма 3 (Unit3) – это форма, просмотра анкет, она содержит такие
заполненные поля: Рег №, Дата регистрации, Имя, Фамилия, Возраст, Пол,
данные клиента о себе и требования к партнёру. Так же есть строка поиска
по регистрационному номеру и две кнопки: Удалить – удаляет полностью
выбранную анкету, Выход – закрывает форму Просмотр анкет.
Форма 4 (Unit4) содержит таблицу, содержащую личные данные клиентов и
сортировку пар по полу. Имеются 3 кнопки: Занести в архив – занос в архив
выбранной пары, Выход – завершение работы с архивом, Подготовить
приглашение – открывает окно подготовки приглашения пары в кафе “Ночной
Тарзан” на вечер знакомства с кандидатом женского пола и кандидатом
мужского пола. Далее приглашение можно сохранить нажатием кнопки
Сохранить, либо отменить приглашение, нажатием кнопки Выйти.
Форма 5 (Unit5) состоит из строк для просмотра всех данных клиента:
регистрационный номер, дата регистрации, пол, данные о себе, требования,
возраст, ФИО. Так же имеется кнопка Выход – завершающая просмотр данной
формы.
Форма 6 (Unit 6) открывает окно подготовки приглашения пары в кафе
“Ночной Тарзан” на вечер знакомства с кандидатом женского пола и
кандидатом мужского пола. Далее приглашение для дальнейшего
редактирования можно сохранить нажатием кнопки Сохранить, что открывает
окно диалога сохранения файла и сохраняем текстовую область Mtmo1 в
указанный файл, либо отменить приглашение, нажатием кнопки Выйти.
Форма 7 (Unit7) представляет собой окно, для просмотра готовых
приглашений тех пар, которым были назначены встречи, тут же можно
отредактировать приглашение и сохранить заново. Имеются 3 кнопки:
Открытие приглашения – открытие готового приглашения, путём вывода окна
диалога, которое открывает файл. В этом окне происходит заполнение
текстовой области Memo1 из указанного файла;
Сохранить приглашение – даёт возможность сохранить новое,
отредактированное приглашение путём открытия окна диалога сохранения
файла и сохраняется текстовая область Memo1 в указанный файл;
Выход – завершение работы Unite7.
Текст программы
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Unit7 in 'Unit7.pas' {Form7};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button4: TButton;
Button3: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit7;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);//Процедура обработки клика
кнопки "Новая форма"
begin
form2.ShowModal; //показ формы Form2. Форма открывается в режиме при
котором другие формы не доступны
end;
procedure TForm1.Button2Click(Sender: TObject);//Процедура обработки клика
кнопки "Просмотр анкет"
begin
Form3.showmodal;//показ формы Form3. Форма открывается в режиме при котором
другие формы не доступны
end;
procedure TForm1.Button4Click(Sender: TObject);//Процедура обработки клика
кнопки "Выход"
begin
Close;//Закрытие формы Form1, что означает выход из программы
end;
procedure TForm1.Button3Click(Sender: TObject);//Процедура обработки клика
кнопки "Работа с архивом"
begin
form4.ShowModal;//показ формы Form4. Форма открывается в режиме при котором
другие формы не доступны
end;
procedure TForm1.Button5Click(Sender: TObject);//Процедура обработки клика
кнопки "Просмотр архива"
begin
form5.Table1.Open; //откритие таблицы Table1 находящейся на форме FORM5
form5.ShowModal; //показ формы Form5. Форма открывается в режиме при
котором другие формы не доступны
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
form7.ShowModal;//показ формы Form7. Форма открывается в режиме при
котором другие формы не доступны
end;
end.
[pic]
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, DBCtrlsEh, Mask, DBCtrls, DB, DBTables, StdCtrls, Buttons;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
Table1: TTable;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBDateTimeEditEh1: TDBDateTimeEditEh;
DBEdit5: TDBEdit;
Label6: TLabel;
Label7: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DBEdit6: TDBEdit;
Label8: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit3;
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);//При показе, активации и
создании формы Form2 выполняются действия:
begin
Table1.Open;//Открывается таблица Table1
table1.Append;//Добавляется в конец таблицы новая строка в таблицу Table1
table1.FieldByName('date').AsDateTime:=date;//Записываем в текущую строку в
поле Date сегодняшнее число
table1.Post; //Сохранение изменений
table1.edit; //Начинаем изменения в таблице Table1 в текущей сторке
end;
procedure TForm2.BitBtn1Click(Sender: TObject);//Процедура обработки клика
кнопки "ОК"
begin
table1.Post; //Сохранение изменений
close;//Закрытие формы Form2
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
table1.Cancel;//отмена изменений
table1.Delete;//Удаление текущей строки в таблице Table1
close;//Закрытие формы Form2
end;
procedure TForm2.FormClose(Sender: TObject; var Action:
TCloseAction);//Процедура обработки событя при закрытии формы Form2
begin
form3.Table1.Refresh;//Обновление данных в таблице Table1 находящейся на
форме Form3
end;
end.
[pic]
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, Buttons, ExtCtrls, DB,
DBTables;
type
TForm3 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
Panel1: TPanel;
DBGrid1: TDBGrid;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject); //прцедура обработки события
при создании формы Form3
begin
table1.Open;//Открытие таблицы table1
end;
procedure TForm3.BitBtn1Click(Sender: TObject);//Процедура обработки клика
кнопки "Удалить"
begin
table1.Delete;//Удаление текущей строки в таблице Table1
end;
procedure TForm3.Button2Click(Sender: TObject);//Процедура обработки клика
кнопки "Выход"
begin
Close;//Закрытие Form3
end;
procedure TForm3.Edit1Change(Sender: TObject);
begin
Try //Задействование обработчика
ошибок
Table1.FindKey([strtoint(edit1.Text)]); //Поиск по индексу (ставит курсор
в таблице ближе всего находящейся к искомому значению)
except
Showmessage('Не верный параметр для поиска'); //в солучае возникновения
ошибки будет дано сообщение
end;
end;
end.
[pic]
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids, DBTables;
type
TForm4 = class(TForm)
Table1: TTable;
Table2: TTable;
Table3: TTable;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DataSource1: TDataSource;
DataSource2: TDataSource;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit6;
{$R *.dfm}
procedure TForm4.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm4.Button1Click(Sender: TObject);//Процедура обработки клика
кнопки "Занести в архив"
begin
//table1.Open;
//table2.Open;
table1.DisableControls;//Отмена слежения за изменениями в таблице Table1
table2.DisableControls;//Отмена слежения за изменениями в таблице Table2
table3.Open;//Открываем таблицу Table3
table3.Append;//Добавляем в конец таблицы новую строку
table3.FieldByName('reg').AsInteger:=table1.FieldByName('reg').AsInteger;//к
опируем в поле "REG" таблицы Table3 значение поля "REG" таблицы Table1
table3.FieldByName('date').Asdatetime:=table1.FieldByName('date').Asdatetime
;//копируем в поле "DATE" таблицы Table3 значение поля "DATE" таблицы
Table1
table3.FieldByName('pol').Asstring:=table1.FieldByName('pol').Asstring;//коп
ируем в поле "POL" таблицы Table3 значение поля "POL" таблицы Table1
table3.FieldByName('osebe').AsVariant:=table1.FieldByName('osebe').AsVariant
;//копируем в поле "OSEBE" таблицы Table3 значение поля "OSEBE" таблицы
Table1
table3.FieldByName('treb').AsVariant:=table1.FieldByName('treb').AsVariant;/
/копируем в поле "TREB" таблицы Table3 значение поля "TREB" таблицы Table1
table3.FieldByName('name').Asstring:=table1.FieldByName('name').Asstring;//к
опируем в поле "NAME" таблицы Table3 значение поля "NAME" таблицы Table1
table3.FieldByName('family').Asstring:=table1.FieldByName('family').Asstring
;//копируем в поле "FAMILY" таблицы Table3 значение поля "FAMILY" таблицы
Table1
table3.FieldByName('father').Asstring:=table1.FieldByName('Father').Asstring
;//копируем в поле "FATHER" таблицы Table3 значение поля "FATHER" таблицы
Table1
table3.Post;//Сохраняем изменения в таблице Table3
table3.Append;//Добавляем в конец таблицы новую строку
table3.FieldByName('reg').AsInteger:=table2.FieldByName('reg').AsInteger;//к
опируем в поле "REG" таблицы Table3 значение поля "REG" таблицы Table2
table3.FieldByName('date').Asdatetime:=table2.FieldByName('date').Asdatetime
;//копируем в поле "DATE" таблицы Table3 значение поля "DATE" таблицы
Table2
table3.FieldByName('pol').Asstring:=table2.FieldByName('pol').Asstring;//коп
ируем в поле "POL" таблицы Table3 значение поля "POL" таблицы Table2
table3.FieldByName('osebe').AsVariant:=table2.FieldByName('osebe').AsVariant
;//копируем в поле "OSEBE" таблицы Table3 значение поля "OSEBE" таблицы
Table2
table3.FieldByName('treb').AsVariant:=table2.FieldByName('treb').AsVariant;/
/копируем в поле "TREB" таблицы Table3 значение поля "TREB" таблицы Table2
table3.FieldByName('name').Asstring:=table2.FieldByName('name').Asstring;//к
опируем в поле "NAME" таблицы Table3 значение поля "NAME" таблицы Table2
table3.FieldByName('family').Asstring:=table2.FieldByName('family').Asstring
;//копируем в поле "FAMILY" таблицы Table3 значение поля "FAMILY" таблицы
Table2
table3.FieldByName('father').Asstring:=table2.FieldByName('Father').Asstring
;//копируем в поле "FATHER" таблицы Table3 значение поля "FATHER" таблицы
Table2
table3.Post;//Сохраняем изменения в таблице Table3
Button3Click(Sender);//Вызов процедуры Button3Click(см ниже)
table1.Delete;//Удаляем текущую строку из таблицы TABLE1
table2.Delete;//Удаляем текущую строку из таблицы TABLE2
table1.EnableControls;//Возобновляем контроль над таблицей TABLE1
table2.EnableControls;//Возобновляем контроль над таблицей TABLE2
table1.Refresh;//Обновляем данные в таблице Table1
table2.Refresh;//Обновляем данные в таблице Table1
end;
procedure TForm4.FormShow(Sender: TObject); //При показе формы Form4
выполняются действия:
begin
table1.Open;//открытие таблицы Table1
table2.Open;//открытие таблицы Table2
end;
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);//При
закрытии формы Form4 выполняются действия:
begin
table1.Close;//Закрытие таблицы Table1
table2.Close;//Закрытие таблицы Table2
end;
procedure TForm4.Button3Click(Sender: TObject);//Процедура обработки клика
кнопки "Подготовить приглашение"
var ff:textfile;//Объявление типа файловой переменной
begin
assignfile(ff,'c:\Prigl.txt'); //процедура ассоциации имени файла с
файловой переменной FF
rewrite(ff);//Перезапись файла
Writeln(ff,'Приглашение в кафе "Ночной Тарзан"');//Добавляем строку в файл
Writeln(ff,'На вечер знакомства с '+table1.fieldbyname('Family').asstring+'
'+table1.fieldbyname('Name').asstring);//Добавляем строку в файл со
значениями некоторых полей из таблиц Table1 и Table2
Writeln(ff,' и '+table2.fieldbyname('Family').asstring+'
'+table2.fieldbyname('Name').asstring);
closefile(ff);//Закрытие файла
form6.Memo1.Lines.LoadFromFile('c:\Prigl.txt');//Заполняем текстовое поле
Memo1 в окне формы 6 содержимым только что сохранненого файла
form6.ShowModal;//показ формы Form6. Форма открывается в режиме при котором
другие формы не доступны
end;
end.
[pic]
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, DB, DBTables, Grids,
DBGrids;
type
TForm5 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
Panel1: TPanel;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
BitBtn1: TBitBtn;
Label1: TLabel;
Label2: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
close;//закрытие формы Form5
end;
end.
[pic]
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm6 = class(TForm)
Memo1: TMemo;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
memo1.Lines.SaveToFile(SaveDialog1.FileName);//Открываем окно диалога
сохранения файла и сохраняем текстовую область Memo1 в указанный файл
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
Close;//Закрытие формы
end;
end.
[pic]
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm7 = class(TForm)
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Panel1: TPanel;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
procedure TForm7.Button3Click(Sender: TObject);
begin
Close;//Закрытие формы Form7
end;
procedure TForm7.Button1Click(Sender: TObject);
begin
If OpenDialog1.Execute then
memo1.Lines.LoadFromFile(OpenDialog1.FileName);//Открываем окно диалога
открытия файла и заполняем текстовую область Memo1 из указанного файла
end;
procedure TForm7.Button2Click(Sender: TObject);
begin
If SaveDialog1.Execute then
memo1.Lines.SaveToFile(SaveDialog1.FileName);//Открываем окно диалога
сохранения файла и сохраняем текстовую область Memo1 в указанный файл
end;
end.
[pic]
Целью моей курсовой работы является программирование базы
даных с помощью Delphi 7. Прежде чем начать выполнять свое
задание рассмотрим эту систему программирования, в общем.
Delphi - это греческий город, где жил дельфийский оракул. И этим именем
был назван новый программный продукт с феноменальными характеристиками.
Delphi - это комбинация нескольких важнейших технологий:
. Высокопроизводительный компилятор в машинный код
. Объектно-ориентированная модель компонент
. Визуальное (а, следовательно, и скоростное) построение приложений
из программных прототипов
. Масштабируемые средства для построения баз данных
Компилятор, встроенный в Delphi, обеспечивает высокую
производительность, необходимую для построения приложений в архитектуре
“клиент-сервер”. Этот компилятор в настоящее время является самым быстрым
в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту
на компьютере 486DX33. Он предлагает легкость разработки и быстрое время
проверки готового программного блока, характерного для языков четвертого
поколения (4GL) и в то же время обеспечивает качество кода, характерного
для компилятора 3GL.
В процессе построения приложения разработчик выбирает из палитры
компонент готовые компоненты как художник, делающий крупные мазки кистью.
Еще до компиляции он видит результаты своей работы - после подключения к
источнику данных их можно видеть отображенными на форме, можно перемещаться
по данным, представлять их в том или ином виде.
Cреда Delphi включает в себя полный набор визуальных инструментов для
скоростной разработки приложений (RAD - rapid application development),
поддерживающей разработку пользовательского интерфейса и подключение к
корпоративным базам данных.
В Delphi визуальные компоненты пишутся на объектном паскале, на том же
паскале, на котором пишется алгоритмическая часть приложения. И визуальные
компоненты Delphi получаются открытыми для надстройки и переписывания.
Delphi использует структурный объектно-ориентированный язык (Object
Pascal), который сочетает с одной стороны выразительную мощь и простоту
программирования, характерную для языков 4GL, а с другой стороны
эффективность языка 3GL.
Структура базы данных
База данных — это набор однородной, как правило, упорядоченной по
некоторому критерию, информации. База данных может быть представлена в
"бумажном" или в компьютерном виде.
Типичным примером "бумажной" базы данных является каталог библиотеки —
набор бумажных карточек, содержащих информацию о книгах. Информация в этой
базе однородная (содержит сведения только о книгах) и упорядоченная
(карточки расставлены, например, в соответствии с алфавитным порядком
фамилий авторов). Другими примерами "бумажной" базы данных являются
телефонный справочник и расписание движения поездов.
Компьютерная база данных представляет собой файл (или набор связанных
файлов), содержащий информацию.
База данных состоит из записей. Каждая запись содержит информацию об
одном экземпляре. Записи состоят из полей. Каждое поле содержит информацию
об одной характеристике экземпляра. Например, запись базы данных “Бюро
знакомств” состоит из следующих полей: "Регистрационный номер", "Дата
регистрации", "ФИО", "Возраст", "Пол". Содержимое этих полей характеризует
личность клиентов Бюро знакомств.
Следует обратить внимание, что каждая запись состоит из одинаковых
полей. Некоторые поля могут быть не заполнены, однако они все равно
присутствуют в записи.
На бумаге базу данных удобно представить в виде таблицы. Каждая строка
таблицы соответствует записи, а ячейка таблицы — полю. При этом заголовок
столбца таблицы — это имя поля, а номер строки таблицы — номер записи.
Информацию компьютерных баз данных обычно выводят на экран в виде
таблиц. Поэтому в литературе довольно часто вместо словосочетания "файл
данных" используется словосочетание "таблица данных" или просто "таблица".
Программа управления базой данных
Перед тем как приступить непосредственно к разработке приложения
управления базой данных, необходимо, используя утилиту Database Desktop,
создать файл данных (таблицу) и добавить в нее несколько записей.
Приложение работы с базой данных должно содержать компоненты,
обеспечивающие доступ к данным, возможность просмотра и редактирования
содержимого полей. Компоненты доступа к данным находятся на вкладке Data
Access палитры компонентов, а компоненты отображения данных — на вкладке
Data Controls.
Создание базы данных
Приложения баз данных могут получать доступ к источникам данных при
помощи разнообразных технологий
доступа, многие из которых используются и в приложениях Delphi. Тем не
менее любое приложение баз данных в
Delphi имеет стандартное ядро, структура которого определена
архитектурой приложения баз данных.
Набор базовых компонентов и способов разработки является единой
основой, на которой базируются технологии
доступа к данным. Это позволило унифицировать процесс разработки
приложений баз данных.
В основе процесса разработки лежит триада компонентов:
- невизуальные компоненты набора данных;
- невизуальные компоненты TDataSource;
- визуальные компоненты отображения данных.
Для создания таблицы автономной базы имеется приложение
Database Desktop, которое вызывается командой Tools/Database Desktop.
Оно имеет собственное окно, меню и кнопки (заставка этого пункта). Новая
таблица создается построителем таблиц, который вызывается командой
File/New/ТаЫе. На запрос тип СУБД выберем Рагаdох 7.
Рассмотрим основные колонки и поля окна конструктора таблиц.
File Name - идентификаторы полей (не более латинских букв и цифр для
совместимости с другими СУБД).
Туре - тип поля (указывается выбором из контекстного меню): А1рhа (А -
строка из не более чем 255, символов), Number (N - число с плавающей
точкой), Моnеу ($ - аналогичен типу NumЬег, но добавляется денежный
знак), Short (S - целое число в диапазоне -32768..32767), LongIntereger (I
целое число в диапазоне-2147483.. 2147483647), ВСD (# - число в двоично-
десятичном формате), Datе (D - дата). Time (Т - время), Timestamp (@ - дата
и время), Меmо (М - строка любой длины), Formatted Memo (F - аналогичен
Меmо, но может содержать форматированный текст), Graphic (G -изображение
ВМР, РСХ, ТIF, СИР, ЕРS), ОLЕ (О - объект ОLЕ), Logical (L логическое - Т,
F), Autoincrement (+ - при добавлении записи, автоматически формируется
уникальное значение), Вinary (В – последовательность байтов любой длины),
Вуtes (У последовательность не более, чем 255 байтов).
Size- размер поля в байтах.
Кеу - признак первичного ключевого поля (двойной щелчок по колонке).
Таbles properties - дополнительные свойства таблицы: Secondary Index
(задание вторичных индексов), Validity Checks (ограничения на ввод значений
полей). Рassword Security (определение пароля), Referential Intergity
(определение ссылочной целостности между таблицами), ТаЫе Language(задание
языка), ТаЫе Lоокор (задание полей просмотра), Depending ТаЫеs(зависимые
дочерние таблицы).
Requierd Filed - признак обязательного заполнения поля.
Мiniтит..., Махiпит... - начало и конец диапазона допустимых значений.
Default vа1ие - значение по умолчанию при добавлении пустой записи.
Р1сture,Assist - шаблон и построитель шаблона значения поля.
Вторичные ключи (индексы) создаются путем выбора из списка свойств
таблицы строки Secondary Indexes, и после нажатия кнопки Define выводится
окно Define Secondary Indexes. Используя кнопки со стрелками или двойными
щелчками, перенесем нужное поле или несколько полей, если ключ составной, в
список индексов. Имеются переключатели: Unique (уникальный индекс), Саse
sensitive (учет регистров строковых полей), Descending (сортировка по
возрастанию). Кнопкой ОК. производится выход с указанием имени индекса.
Поле, которое является первичным ключом другой родительской таблицы,
называют внешним ключом. Для связи таблиц обычно создают индексы по внешним
ключам. После формирования таблицы она сохраняется, если нажать кнопку Save
As, под указанным именем; при этом в поле имени файла можно указать как
полное имя с каталогами, так и псевдоним базы (Аlias). Псевдоним позволяет
не привязываться к каталогу, который может меняться в дальнейшем.
Для создания псевдонима выполним команду Тоо1s/Аlias Мапаger, и
появится окно Аlias Маnаgег.
Нажмем кнопку New и в поле Database alias введем имя
псевдонима Учет, кнопкой Вrowse выберем наш каталог с базой Люди, далее
Кеер New и ОК.
Командой File/Working Directory установим текущий каталог, выбрав
псевдоним Курсовая в списке Alias, займемся созданием таблиц.
[pic]
Таблица Люди, будет иметь столбцы: Люди, Регистрационный номер, Дата
регистрасии, Пол, О себе, Требования, Возраст, ФИО.
Вторая таблица – Архив будет иметьаналогичные названия столбцов.
[pic]
Для корректировки и просмотра открытой таблицы имеются команды
ТаЫе/Restructure (кнопка Restructure) и ТаЫе/Into Structure. Для
переименования таблицы следует сохранить ее под новым именем. Для
заполнения и редактирования таблицы, после ее связывания с другими
таблицами, испочьзуется кнопка Edit Data и меню Record приложения
Database Deskot (кириллицу при вводе использовать нельзя).
Сведения о бюро знакомств
С судьбой можно встретиться еще в школе. Или в институте. Можно
выйти замуж за кучерявого брюнета из соседнего дома или познакомиться с
будущей женой в очереди за жетончиками метро. Вариантов масса. Но даже если
все варианты испробованы, а своего единственного вы еще не встретили,
остается еще один вариант - знакомство через Бюро знакомств.
Бытует мнение, что в службу знакомств обращаются в основном
несчастные, никому ненужные люди. Конечно, можно еще подумать, а можно
отнестись к проблеме более целеустремленно. На самом деле это люди с
активной жизненной позицией, которые смогли побороть в себе какие-то
комплексы и решили попробовать цивилизованный способ знакомства.
Бюро знакомств уже не первый год успешно работает на рынке брачных
услуг, имеет очень много положительных результатов, и у каждого есть свой
шанс найти спутника жизни.
Названию "брачное агентство" лучше предпочесть более нейтральное -
"служба знакомств". Это позволит избегать трудновыполнимых обещаний,
поскольку каких-либо гарантий в деле устройства чьей-то судьбы просто не
существует.
Брачный бизнес - это коммерческая, то есть платная, подразумевающая
получение дохода, деятельность, связанная с предоставлением услуг в сфере
брачных знакомств. Организациями, занимающимися данным видом деятельности и
предоставляющими услуги в этом виде бизнеса, являются брачные агентства и
службы знакомств. Кроме организаций, в брачном бизнесе активно работают и
индивидуальные брачные дилеры, в прошлом - брачные свахи.
Применение программы на практике
С давних времен люди искали себе спутников жизни на протяжении долгого
времени. Постепенно стали появляться фирмы, помогающие людям найти себе
партнера, так называемые “службы знакомств”.
Люди приходили в эти службы, заполняли анкеты, оставляя данные о себе,
оставляли так же и требования к человеку, которого хотели бы найти.
Так же приходили в бюро знакомств люди, которые хотели не только
зарегистрироваться, но и поискать спутника или спутницу в уже существующей
базе. В этих службах велась огромная документация, хранившая адреса,
фотографии, номера телефонов, личные данные своих клиентов. Следовательно,
чтобы найти кого-то, нужно было пересмотреть и отсортировать сотни, а то и
тысячи бумаг.
Моя задача – облегчить поиск и подбор желающих познакомиться с новыми
людьми через бюро знакомств.
Программа, написанная мной, может хранить данные о личности, такие как
ФИО, возраст, пол, дату регистрации, описания внешности и других
характеристик клиента, а так же требования, удовлетворяющие желание клиента
в поиске избранницы либо избранника. Реализован поиск по регистрационному
номеру, что удобно как для работника бюро знакомств (для сортировки анкет),
так и для клиентов. Клиент может зарегистрироваться, оставив анкету в бюро
знакомств, и автоматически получить регистрационный номер, что поможет при
объявлении в той же газете. Введя определённый регистрационный номер,
компьютер автоматически выводит все данные о человеке.
|