Смекни!
smekni.com

База данных Бюро знакомств

МІНІСТЕРСТВООСВІТИ І НАУКИУКРАЇНИ

НАЦІОНАЛЬНИЙУНІВЕРСИТЕТКОРАБЛЕБУДУВАННЯ

ім.адм. Макарова

Херсонськийфіліал


Кафедра інформаційнихтехнологій


Курсоваробота


З ДИСЦИПЛІНИ


“Об’єктно– орієнтованепрограмування”


ТЕМА:РозробкапрограмногозабезпеченняБюрознайомств


Виконав:


Перевірив:


Херсон 2004

Ход работыпрограммы


Модуль Proect1содержит информациюо всех 7-ми Формах.

Форма 1 (Unit1)состоит из 6-тикнопок и хранитпроцедуры ихобработки:

  • КнопкаНовая анкетапозволяетсоздать новуюанкету клиента,содержащуюданные о нем.

  • КнопкаПросмотр анкетвыводит списокранее зарегистрированныхклиентов.

  • КнопкаРабота с архивом открываеттаблицу, содержащуюличные данныеклиентов осебе и разделанкет по полу.

  • КнопкаПросмотр архиваоткрываеттаблицу архива,содержащуюличные данныеи параметрыклиентов.

  • КнопкаПросмотрсохраненныхприглашенийоткрываетдиалоговоеокно, содержащееинформациюо текущемприглашениипары (по умолчаниюв кафе “НочнойТарзан”).

  • КнопкаВыход завершаетработу программыБюро знакомств.

Форма 2 (Unit2) создаёт новуюанкету, содержащуютакие поля:Дата, Регистрационныйномер (задаётсяавтоматически),Фамилия, Имя,Отчество, Пол,Возраст, О себе,Требования.Так же имеются2 кнопки: OK– сохраняетновую, заполненнуюанкету, Cancel- отменяетсоздание новойанкеты.

Форма 3 (Unit3)– это форма,просмотраанкет, она содержиттакие заполненныеполя: Рег №, Датарегистрации,Имя, Фамилия,Возраст, Пол,данные клиентао себе и требованияк партнёру. Также есть строкапоиска порегистрационномуномеру и двекнопки: Удалить– удаляетполностьювыбраннуюанкету, Выход– закрываетформу Просмотранкет.

Форма 4 (Unit4)содержит таблицу,содержащуюличные данныеклиентов исортировкупар по полу.Имеются 3 кнопки:Занести в архив– занос в архиввыбранной пары,Выход – завершениеработы с архивом,Подготовитьприглашение– открываетокно подготовкиприглашенияпары в кафе“Ночной Тарзан”на вечер знакомствас кандидатомженского полаи кандидатоммужского пола.Далее приглашениеможно сохранитьнажатием кнопкиСохранить,либо отменитьприглашение,нажатием кнопкиВыйти.

Форма 5 (Unit5)состоит изстрок для просмотравсех данныхклиента: регистрационныйномер, датарегистрации,пол, данные осебе, требования,возраст, ФИО.Так же имеетсякнопка Выход– завершающаяпросмотр даннойформы.

Форма 6 (Unit6) открываетокно подготовкиприглашенияпары в кафе“Ночной Тарзан”на вечер знакомствас кандидатомженского полаи кандидатоммужского пола.Далее приглашениедля дальнейшегоредактированияможно сохранитьнажатием кнопкиСохранить,что открываетокно диалогасохраненияфайла и сохраняемтекстовуюобласть Mtmo1в указанныйфайл, либо отменитьприглашение,нажатием кнопкиВыйти.

Форма 7 (Unit7)представляетсобой окно, дляпросмотраготовых приглашенийтех пар, которымбыли назначенывстречи, тутже можно отредактироватьприглашениеи сохранитьзаново. Имеются3 кнопки:

Открытиеприглашения– открытиеготового приглашения,путём выводаокна диалога,которое открываетфайл. В этомокне происходитзаполнениетекстовойобласти Memo1из указанногофайла;

Сохранитьприглашение– даёт возможностьсохранитьновое, отредактированноеприглашениепутём открытияокна диалогасохраненияфайла и сохраняетсятекстоваяобласть Memo1в указанныйфайл;

Выход – завершениеработы Unite7.


Текст программы

programProject1;


uses

Forms,

Unit1 in 'Unit1.pas'{Form1},

Unit2 in 'Unit2.pas'{Form2},

Unit3 in 'Unit3.pas'{Form3},

Unit4 in 'Unit4.pas'{Form4},

Unit5in '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.


unitUnit1;


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;

procedureButton1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

procedureButton4Click(Sender: TObject);

procedureButton3Click(Sender: TObject);

procedureButton5Click(Sender: TObject);

procedureButton6Click(Sender: TObject);

private

{Private declarations }

public

{ Publicdeclarations }

end;


var

Form1: TForm1;


implementation


uses Unit2, Unit3,Unit4, Unit5, Unit7;


{$R *.dfm}


procedureTForm1.Button1Click(Sender: TObject);//Процедураобработки кликакнопки "Новаяформа"

begin

form2.ShowModal;//показ формыForm2. Форма открываетсяв режиме прикотором другиеформы не доступны

end;


procedureTForm1.Button2Click(Sender:TObject);//Процедураобработки кликакнопки "Просмотранкет"

begin

Form3.showmodal;//показформы Form3. Формаоткрываетсяв режиме прикотором другиеформы не доступны

end;


procedureTForm1.Button4Click(Sender: TObject);//Процедураобработки кликакнопки "Выход"

begin

Close;//Закрытиеформы Form1,что означаетвыход из программы

end;


procedureTForm1.Button3Click(Sender:TObject);//Процедураобработки кликакнопки "Работас архивом"

begin

form4.ShowModal;//показформы Form4. Формаоткрываетсяв режиме прикотором другиеформы не доступны

end;


procedureTForm1.Button5Click(Sender:TObject);//Процедураобработки кликакнопки "Просмотрархива"

begin

form5.Table1.Open;//откритие таблицыTable1 находящейсяна форме FORM5

form5.ShowModal;//показ формыForm5. Форма открываетсяв режиме прикотором другиеформы не доступны

end;


procedureTForm1.Button6Click(Sender: TObject);

begin

form7.ShowModal;//показформы Form7. Формаоткрываетсяв режиме прикотором другиеформы не доступны

end;


end.



unitUnit2;


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;

procedureFormCreate(Sender: TObject);

procedureBitBtn1Click(Sender: TObject);

procedureBitBtn2Click(Sender: TObject);

procedureFormClose(Sender: TObject; var Action: TCloseAction);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;


var

Form2: TForm2;


implementation


uses Unit3;


{$R *.dfm}


procedureTForm2.FormCreate(Sender: TObject);//При показе,активации исоздании формыForm2 выполняютсядействия:

begin

Table1.Open;//Открываетсятаблица Table1

table1.Append;//Добавляетсяв конец таблицыновая строкав таблицу Table1

table1.FieldByName('date').AsDateTime:=date;//Записываемв текущую строкув поле Dateсегодняшнеечисло

table1.Post;//Сохранениеизменений

table1.edit;//Начинаем измененияв таблице Table1в текущей сторке


end;


procedureTForm2.BitBtn1Click(Sender: TObject);//Процедураобработки кликакнопки "ОК"

begin

table1.Post;//Сохранениеизменений

close;//Закрытиеформы Form2

end;


procedureTForm2.BitBtn2Click(Sender: TObject);

begin

table1.Cancel;//отменаизменений

table1.Delete;//Удалениетекущей строкив таблице Table1

close;//Закрытиеформы Form2


end;


procedureTForm2.FormClose(Sender: TObject; var Action:TCloseAction);//Процедураобработкисобытя призакрытии формыForm2

begin

form3.Table1.Refresh;//Обновлениеданных в таблицеTable1 находящейсяна форме Form3

end;


end.



unitUnit3;


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;

procedureFormCreate(Sender: TObject);

procedureBitBtn1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

procedureEdit1Change(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;


var

Form3: TForm3;


implementation


{$R *.dfm}


procedureTForm3.FormCreate(Sender: TObject); //прцедураобработкисобытия присоздании формыForm3

begin

table1.Open;//Открытиетаблицы table1

end;


procedureTForm3.BitBtn1Click(Sender: TObject);//Процедураобработки кликакнопки "Удалить"

begin

table1.Delete;//Удалениетекущей строкив таблице Table1

end;


procedureTForm3.Button2Click(Sender: TObject);//Процедураобработки кликакнопки "Выход"

begin

Close;//ЗакрытиеForm3

end;


procedureTForm3.Edit1Change(Sender: TObject);

begin

Try //Задействованиеобработчикаошибок

Table1.FindKey([strtoint(edit1.Text)]); //Поиск по индексу(ставит курсорв таблице ближевсего находящейсяк искомомузначению)

except

Showmessage('Неверный параметрдля поиска');//в солучаевозникновенияошибки будетдано сообщение

end;

end;


end.



unitUnit4;


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;

procedureButton2Click(Sender: TObject);

procedureButton1Click(Sender: TObject);

procedureFormShow(Sender: TObject);

procedureFormClose(Sender: TObject; var Action: TCloseAction);

procedureButton3Click(Sender: TObject);

private

{ Privatedeclarations }

public

{Public declarations }

end;


var

Form4: TForm4;


implementation


uses Unit6;


{$R *.dfm}


procedureTForm4.Button2Click(Sender: TObject);

begin

close;

end;


procedureTForm4.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;


procedureTForm4.FormShow(Sender: TObject); //При показеформы Form4 выполняютсядействия:

begin

table1.Open;//открытиетаблицы Table1

table2.Open;//открытиетаблицы Table2

end;


procedureTForm4.FormClose(Sender: TObject; var Action: TCloseAction);//Призакрытии формыForm4 выполняютсядействия:

begin

table1.Close;//Закрытиетаблицы Table1

table2.Close;//Закрытиетаблицы Table2

end;


procedureTForm4.Button3Click(Sender: TObject);//Процедураобработки кликакнопки "Подготовитьприглашение"

varff: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.



unitUnit5;


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;

procedureBitBtn1Click(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;


var

Form5: TForm5;


implementation


{$R *.dfm}


procedureTForm5.BitBtn1Click(Sender: TObject);

begin

close;//закрытиеформы Form5

end;


end.



unitUnit6;


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;

procedureButton1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;


var

Form6: TForm6;


implementation


{$R *.dfm}


procedureTForm6.Button1Click(Sender: TObject);

begin

ifSaveDialog1.Execute thenmemo1.Lines.SaveToFile(SaveDialog1.FileName);//Открываемокно диалогасохраненияфайла и сохраняемтекстовуюобласть Memo1 вуказанный файл

end;


procedureTForm6.Button2Click(Sender: TObject);

begin

Close;//Закрытиеформы

end;


end.



unitUnit7;


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;

procedureButton3Click(Sender: TObject);

procedureButton1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;


var

Form7: TForm7;


implementation


{$R *.dfm}


procedureTForm7.Button3Click(Sender: TObject);

begin

Close;//Закрытиеформы Form7

end;


procedureTForm7.Button1Click(Sender: TObject);

begin

If OpenDialog1.Executethen memo1.Lines.LoadFromFile(OpenDialog1.FileName);//Открываемокно диалогаоткрытия файлаи заполняемтекстовуюобласть Memo1 изуказанногофайла

end;


procedureTForm7.Button2Click(Sender: TObject);

begin

If SaveDialog1.Executethen memo1.Lines.SaveToFile(SaveDialog1.FileName);//Открываемокно диалогасохраненияфайла и сохраняемтекстовуюобласть Memo1 вуказанный файл

end;


end.


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

Delphi - этогреческийгород, где жилдельфийскийоракул. И этимименем былназван новыйпрограммныйпродукт сфеноменальнымихарактеристиками.


Delphi - этокомбинациянесколькихважнейшихтехнологий:

  • Высокопроизводительныйкомпиляторв машинный код

  • Объектно-ориентированнаямодель компонент

  • Визуальное(а, следовательно,и скоростное)построениеприложенийиз программныхпрототипов

  • Масштабируемыесредства дляпостроениябаз данных


Компилятор,встроенныйв Delphi,обеспечиваетвысокую производительность,необходимуюдля построенияприложенийв архитектуре“клиент-сервер”. Этот компиляторв настоящеевремя являетсясамым быстрымв мире, его скоростькомпиляциисоставляетсвыше 120 тысячстрок в минутуна компьютере486DX33. Он предлагаетлегкость разработкии быстрое времяпроверки готовогопрограммногоблока, характерногодля языковчетвертогопоколения (4GL)и в то же времяобеспечиваеткачество кода,характерногодля компилятора3GL.

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

Cреда Delphiвключает в себяполный наборвизуальныхинструментовдля скоростнойразработкиприложений(RAD - rapid application development), поддерживающейразработкупользовательскогоинтерфейсаи подключениек корпоративнымбазам данных.

В Delphiвизуальныекомпонентыпишутся наобъектномпаскале, на томже паскале, накотором пишетсяалгоритмическаячасть приложения.И визуальныекомпонентыDelphi получаютсяоткрытыми длянадстройкии переписывания.

Delphi используетструктурныйобъектно-ориентированныйязык (Object Pascal), которыйсочетает содной сторонывыразительнуюмощь и простотупрограммирования,характернуюдля языков 4GL,а с другой стороныэффективностьязыка 3GL.


Структурабазы данных


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

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

Компьютернаябаза данныхпредставляетсобой файл (илинабор связанныхфайлов), содержащийинформацию.

База данныхсостоит иззаписей. Каждаязапись содержитинформациюоб одном экземпляре.Записи состоятиз полей. Каждоеполе содержитинформациюоб одной характеристикеэкземпляра.Например, записьбазы данных“Бюро знакомств”состоит изследующихполей: "Регистрационныйномер", "Датарегистрации","ФИО", "Возраст","Пол". Содержимоеэтих полейхарактеризуетличность клиентовБюро знакомств.

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

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

Информациюкомпьютерныхбаз данныхобычно выводятна экран в видетаблиц. Поэтомув литературедовольно частовместо словосочетания"файл данных"используетсясловосочетание"таблица данных"или просто"таблица".


Программауправлениябазой данных


Перед темкак приступитьнепосредственнок разработкеприложенияуправлениябазой данных,необходимо,используяутилиту Database Desktop,создать файлданных (таблицу)и добавить внее несколькозаписей. Приложениеработы с базойданных должносодержатькомпоненты,обеспечивающиедоступ к данным,возможностьпросмотра иредактированиясодержимогополей. Компонентыдоступа к даннымнаходятся навкладке DataAccess палитрыкомпонентов,а компонентыотображенияданных — навкладке DataControls.


Созданиебазы данных


Приложениябаз данныхмогут получатьдоступ к источникамданных припомощи разнообразныхтехнологий

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

Delphi имеет стандартноеядро, структуракоторого определенаархитектуройприложениябаз данных.

Набор базовыхкомпонентови способовразработкиявляется единойосновой, накоторой базируютсятехнологии

доступа кданным. Этопозволилоунифицироватьпроцесс разработкиприложенийбаз данных.

В основепроцесса разработкилежит триадакомпонентов:

- невизуальныекомпонентынабора данных;

- невизуальныекомпонентыTDataSource;

- визуальныекомпонентыотображенияданных.


Для созданиятаблицы автономнойбазы имеетсяприложение
DatabaseDesktop, котороевызываетсякомандойTools/DatabaseDesktop.
Оноимеет собственноеокно, меню икнопки (заставкаэтого пункта).Новая таблицасоздаетсяпостроителемтаблиц, которыйвызываетсякомандойFile/New/ТаЫе.На запрос типСУБД выберемРагаdох 7.

Рассмотримосновные колонкии поля окнаконструкторатаблиц.
FileName -идентификаторыполей (не болеелатинских букви цифр для совместимостис другими СУБД).

Туре- типполя (указываетсявыбором изконтекстногоменю): А1рhа(А - строка изне более чем255, символов),Number(N - число с плавающей точкой), Моnеу($ - аналогичентипу NumЬег,но добавляетсяденежный знак),Short(S - целое числов диапазоне-32768..32767), LongIntereger(I целое числов диапазоне-2147483..2147483647), ВСD (# - числов двоично-десятичномформате), Datе(D -дата). Time(Т - время), Timestamp(@ - дата и время),Меmо(М -строка любойдлины), FormattedMemo (F -аналогиченМеmо,но может содержатьформатированныйтекст), Graphic(G -изображениеВМР, РСХ, ТIF, СИР,ЕРS), ОLЕ (О - объектОLЕ), Logical(L логическое- Т, F), Autoincrement(+ - при добавлениизаписи, автоматическиформируетсяуникальноезначение), Вinary(В – последовательность байтов любойдлины), Вуtes(У последовательностьне более, чем255 байтов).

Size-размер поляв байтах.

Кеу -признак первичногоключевого поля(двойной щелчокпо колонке).
Таblesproperties -дополнительныесвойства таблицы:Secondary Index(задание вторичныхиндексов), ValidityChecks(ограниченияна ввод значенийполей). РasswordSecurity(определениепароля), ReferentialIntergity(определениессылочнойцелостностимежду таблицами),ТаЫе Language(заданиеязыка), ТаЫеLоокор(задание полейпросмотра),DependingТаЫеs(зависимыедочерние таблицы).

RequierdFiled- признакобязательногозаполненияполя.
Мiniтит...,Махiпит... -начало и конецдиапазонадопустимыхзначений.
Defaultvа1ие -значение поумолчанию придобавлениипустой записи.
Р1сture,Assist- шаблони построительшаблона значенияполя.


Вторичныеключи (индексы)создаются путемвыбора из списка свойств таблицыстрокиSecondaryIndexes,и после нажатиякнопкиDefine выводитсяокноDefine Secondary Indexes.Используякнопки со стрелкамиили двойнымищелчками, перенесемнужное полеили несколькополей, еслиключ составной,в список индексов.Имеются переключатели:Unique(уникальныйиндекс),Саsesensitive(учет регистровстроковыхполей),Descending(сортировкапо возрастанию).КнопкойОК.производитсявыход с указаниемимени индекса.Поле, котороеявляется первичнымключом другойродительскойтаблицы, называютвнешним ключом.Для связи таблицобычно создаютиндексы повнешним ключам.После формированиятаблицы онасохраняется,если нажатькнопку SaveAs, подуказаннымименем; приэтом в полеимени файламожно указатькак
полноеимя с каталогами,так и псевдонимбазы (Аlias). Псевдонимпозволяет непривязыватьсяк каталогу,который можетменяться вдальнейшем.


Длясозданияпсевдонимавыполним командуТоо1s/АliasМапаger,и появится окноАliasМаnаgег.

Нажмемкнопку Newи в поле Databasealiasвведем имя

псевдонимаУчет, кнопкойВrowseвыберем нашкаталог с базойЛюди, далееКеер New и ОК.

КомандойFile/WorkingDirectoryустановимтекущий каталог,выбрав псевдонимКурсовая всписке Alias,займемся созданиемтаблиц.



Таблица Люди,будет иметьстолбцы: Люди,Регистрационныйномер, Датарегистрасии,Пол, О себе,Требования,Возраст, ФИО.

Вторая таблица– Архив будетиметьаналогичныеназвания столбцов.



Длякорректировкии просмотраоткрытой таблицыимеются командыТаЫе/Restructure(кнопкаRestructure) иТаЫе/Into Structure.Для переименованиятаблицы следуетсохранить еепод новым именем.Для заполненияи редактированиятаблицы, послеее связыванияс другими таблицами,испочьзуетсякнопка Edit Data именю Record приложенияDatabase Deskot(кириллицу привводе использоватьнельзя).


Сведения о бюро знакомств


С судьбойможно встретитьсяеще в школе.Или в институте.Можно выйтизамуж за кучерявогобрюнета изсоседнего домаили познакомитьсяс будущей женойв очереди зажетончикамиметро. Вариантовмасса. Но дажеесли все вариантыиспробованы,а своего единственноговы еще не встретили,остается ещеодин вариант- знакомствочерез Бюрознакомств.

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

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

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

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


Применениепрограммы напрактике


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

Люди приходилив эти службы,заполнялианкеты, оставляяданные о себе,оставляли также и требованияк человеку,которого хотелибы найти.

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

Моя задача– облегчитьпоиск и подборжелающихпознакомитьсяс новыми людьмичерез бюрознакомств.

Программа,написаннаямной, можетхранить данныео личности,такие как ФИО,возраст, пол,дату регистрации,описания внешностии других характеристикклиента, а также требования,удовлетворяющиежелание клиентав поиске избранницылибо избранника.Реализованпоиск по регистрационномуномеру, чтоудобно как дляработника бюрознакомств (длясортировкианкет), так идля клиентов.Клиент можетзарегистрироваться,оставив анкетув бюро знакомств,и автоматическиполучитьрегистрационныйномер, что поможетпри объявлениив той же газете.Введя определённыйрегистрационныйномер, компьютеравтоматическивыводит вседанные о человеке.


Б

лок-схемаUnit1


Б

лок-схемаUnit2

Б

лок-схемаUnit3

Б

Подготовкаприглашенияи сохраненияв выбранныйфайл

Занесениеизменений втаблицу table3

Закрытиеформы Form4

лок-схемаUnit4

Б

Закрытиеформы Form5

лок-схемаUnit5

Б

Закрытиеформы Form5

Сохранениеизменений ввыбранный файл

лок-схемаUnit6

Б

Сохранениеизменений ввыбранный файл

Открытиевыбранногофайл

Закрытиеформы Form7

лок-схемаUnit7