Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик ТРПП.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
342.94 Кб
Скачать

Приложение 2- Эскизный проект

Ведомость эскизного проекта

Документы по разработанному продукту:

Техническое задание на создание информационной системы СуБД «Кадровое агенство».

Пояснительная записка к эскизному проекту.

Общие положения:

Данный документ является эскизным проектом на создание Системы Управления Базой Данных для ВУЗа (СуБД «кадровое агенство»).

Основные технические решения:

Решения по структуре системы СуБД «Кадровое агенство» будет представлять собой персональную систему управления локальной базой данных, работающей на одном компьютере.

Система будет управлять реляционной базой данных,

представляющей собой набор связанных между собой таблиц в

формате FoxPro (Visual *.DBF), доступ к которым осуществляется с помощью ключей или/и индексов. Сведения в одной таблице могут отражать

сведения из другой, и при изменении сведений в первой таблице

эти изменения немедленно отображаются во второй.

Таким образом будет достигнута непротиворечивость данных. Таблицы распределены на типы «Справочники» и «Динамические данные».

Общая структура базы данных:

Хранение информации о работниках и вакансиях осуществляется с сохранением целостности данных при изменении или удалении записей таблицы.

Указанные решения должны удовлетворять требованиям,

приведенным в техническом задании на разработку системы.

Состав функций комплексов задач, реализуемых системой:

Автоматизированная система должна выполнять следующие

функции:

• Обеспечивать целостное хранение данных в базе;

•Выводить корректные данные в случае поиска;

• Формировать необходимые отчеты;

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

Для реализации АС будет использоваться среда

программирования Lazarus и язык программирования FreePascal.

Источники разработки:

Данный документ разрабатывался на основании ГОСТ

34.698—90 на написание ТЗ на автоматизированные системы

управления от 01.01.1992 г.

Приложение 3- sadt и dfd модели

SADT модель

Рисунок 19- SADT модель

DFD модель

Рисунок 20- DFD модель

Приложение 4- Тексты программ

Form1 (Редактор таблиц)

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, DB, dbf, FileUtil, Forms, Controls, Graphics, Dialogs,

Menus, DBGrids, StdCtrls, DbCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

list_t: TComboBox;

d: TDatasource;

t: TDbf;

DBGrid1: TDBGrid;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure list_tChange(Sender: TObject);

procedure MenuItem2Click(Sender: TObject);

procedure MenuItem3Click(Sender: TObject);

procedure MenuItem4Click(Sender: TObject);

procedure MenuItem6Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.lfm}

uses Unit2;

{ TForm1 }

procedure t_close();

begin

if (Form1.t.State = dsEdit) then Form1.t.Post;

Form1.t.Close;

end;

procedure TForm1.MenuItem2Click(Sender: TObject);

begin

t_close();

t.TableName:=list_t.Text;

t.Open;

end;

procedure TForm1.MenuItem3Click(Sender: TObject);

begin

t_close();

end;

procedure TForm1.MenuItem4Click(Sender: TObject);

begin

t.TableName := 'rab.dbf';

t.FieldDefs.Add('id_r', ftString, 10);

t.FieldDefs.Add('fio', ftString, 250);

t.FieldDefs.Add('tel', ftString, 10);

t.FieldDefs.Add('kod_c', ftString, 10);

t.CreateTable;

t.FieldDefs.Clear;

t.TableName := 'cpec.dbf';

t.FieldDefs.Add('kod_c', ftString, 10);

t.FieldDefs.Add('naim', ftString, 250);

t.FieldDefs.Add('oklad', ftInteger);

t.CreateTable;

t.FieldDefs.Clear;

t.TableName := 'd_rabot.dbf';

t.FieldDefs.Add('id_ra', ftString, 10);

t.FieldDefs.Add('naimen', ftString, 250);

t.FieldDefs.Add('adres', ftString, 250);

t.FieldDefs.Add('tel', ftString, 10);

t.FieldDefs.Add('kod_c', ftString, 30);

t.CreateTable;

t.FieldDefs.Clear;

end;

procedure TForm1.MenuItem6Click(Sender: TObject);

begin

form2.ShowModal;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

procedure TForm1.FormShow(Sender: TObject);

begin

end;

procedure TForm1.list_tChange(Sender: TObject);

begin

t_close();

t.TableName:=list_t.Text;

t.Open;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

t_close();

form1.close;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

t.Delete;

end;

end.

Form2 (Анкета)

unit Unit2;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,

DbCtrls, StdCtrls, Calendar;

type

{ TForm2 }

TForm2 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

now_kod: TDBEdit;

kod_c: TDBEdit;

DBText1: TDBText;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

dd: TDatasource;

kod_sotr: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

tt: TDbf;

d: TDatasource;

t: TDbf;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure kod_cChange(Sender: TObject);

procedure kod_sotrChange(Sender: TObject);

procedure now_kodChange(Sender: TObject);

procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Label1Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.lfm}

{ TForm2 }

procedure TForm2.FormCreate(Sender: TObject);

begin

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

tt.Prior;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

tt.next;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

t.append;

end;

procedure TForm2.Button4Click(Sender: TObject);

begin

t.delete;

t.close;

tt.close;

Form2.close;

end;

procedure TForm2.kod_cChange(Sender: TObject);

begin

end;

procedure TForm2.kod_sotrChange(Sender: TObject);

begin

end;

procedure TForm2.now_kodChange(Sender: TObject);

begin

kod_c.text:=now_kod.text;

end;

procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);

begin

if(t.State=dsEdit) then

t.post;

t.close;

tt.close;

end;

procedure TForm2.FormShow(Sender: TObject);

var x:string;

begin

t.open;

tt.open;

t.First;

while not(t.EOF) do begin

if (kod_sotr.Text <> '') then

x := IntToStr(StrToInt(kod_sotr.Text)+1);

t.Next;

end;

//ShowMessage(x);

t.Append;

t.Edit;

kod_sotr.Text:=x;

end;

procedure TForm2.Label1Click(Sender: TObject);

begin

end;

end.

Form3 (Меню)

unit Unit3;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,

Menus, DBGrids, StdCtrls;

type

{ TForm3 }

TForm3 = class(TForm)

Button1: TButton;

temp: TDatasource;

temp1: TDbf;

rab: TDatasource;

rabi: TDatasource;

cpec: TDatasource;

rab1: TDbf;

rabi1: TDbf;

cpec1: TDbf;

DBGrid1: TDBGrid;

MainMenu1: TMainMenu;

MenuItem1: TMenuItem;

MenuItem2: TMenuItem;

MenuItem3: TMenuItem;

MenuItem4: TMenuItem;

MenuItem5: TMenuItem;

MenuItem6: TMenuItem;

MenuItem7: TMenuItem;

MenuItem8: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure MenuItem1Click(Sender: TObject);

procedure MenuItem2Click(Sender: TObject);

procedure MenuItem3Click(Sender: TObject);

procedure MenuItem4Click(Sender: TObject);

procedure MenuItem5Click(Sender: TObject);

procedure MenuItem6Click(Sender: TObject);

procedure MenuItem7Click(Sender: TObject);

procedure MenuItem8Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.lfm}

uses unit1, unit2, unit4, unit5, unit6, Unit7;

{ TForm3 }

procedure TForm3.MenuItem1Click(Sender: TObject);

begin

end;

procedure TForm3.FormShow(Sender: TObject);

begin

rab1.Open;

cpec1.Open;

rabi1.open;

temp1.TableName := 'temp.dbf';

temp1.FieldDefs.Add('fio', ftString, 250);

temp1.FieldDefs.Add('tel', ftString, 10);

temp1.FieldDefs.Add('s', ftString, 10);

temp1.FieldDefs.Add('naimen', ftString, 250);

temp1.FieldDefs.Add('adres', ftString, 250);

temp1.FieldDefs.Add('tel1', ftString, 10);

temp1.FieldDefs.Add('naim', ftString, 250);

temp1.CreateTable;

temp1.FieldDefs.Clear;

temp1.Open;

end;

procedure TForm3.FormCreate(Sender: TObject);

begin

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

end;

procedure TForm3.MenuItem2Click(Sender: TObject);

begin

form2.ShowModal;

end;

procedure TForm3.MenuItem3Click(Sender: TObject);

begin

form4.ShowModal;

end;

procedure TForm3.MenuItem4Click(Sender: TObject);

begin

form5.ShowModal;

end;

procedure TForm3.MenuItem5Click(Sender: TObject);

begin

form7.ShowModal;

end;

procedure TForm3.MenuItem6Click(Sender: TObject);

begin

form6.ShowModal;

end;

procedure TForm3.MenuItem7Click(Sender: TObject);

begin

form1.showmodal;

end;

procedure TForm3.MenuItem8Click(Sender: TObject);

var x,c,v,b,n,m,z:string;

begin

dbgrid1.Visible:=true;

button1.Visible:=true;

cpec1.First;

rab1.First;

rabi1.First;

while not(rab1.eof) do

begin

while not(rabi1.eof) do

begin

if((rab1.FieldByName('kod_c').AsString=rabi1.FieldByName('kod_c').AsString))

then

begin

x:= rab1.FieldByName('fio').AsString;

c:= rab1.FieldByName('tel').AsString;

v:= '-->';

b:= rabi1.FieldByName('naimen').AsString;

n:= rabi1.FieldByName('adres').AsString;

m:= rabi1.FieldByName('tel').AsString;

z:= cpec1.FieldByName('naim').AsString;

temp1.Append;

temp1.FieldByName('fio').AsString:=x;

temp1.FieldByName('tel').AsString:=c;

temp1.FieldByName('s').AsString:=v;

temp1.FieldByName('naimen').AsString:=b;

temp1.FieldByName('adres').AsString:=n;

temp1.FieldByName('tel1').AsString:=m;

temp1.FieldByName('naim').AsString:=z;

end ;

rabi1.next;

end;

rab1.next;

end;

cpec1.close;

rab1.close;

rabi1.close;

end;

end.

Form4 (Ввод специальности)

unit Unit4;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,

DbCtrls, StdCtrls;

type

{ TForm4 }

TForm4 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

d: TDatasource;

kod_c: TDBEdit;

naim: TDBEdit;

oklad: TDBEdit;

t: TDbf;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure naimChange(Sender: TObject);

procedure okladChange(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.lfm}

{ TForm4 }

procedure TForm4.FormShow(Sender: TObject);

var x:string;

begin

t.open;

//d2.open;

t.First;

while not(t.EOF) do begin

if (kod_c.Text <> '') then

x := IntToStr(StrToInt(kod_c.Text)+1);

t.Next;

end;

//ShowMessage(x);

t.Append;

t.Edit;

kod_c.Text:=x;

end;

procedure TForm4.naimChange(Sender: TObject);

begin

end;

procedure TForm4.okladChange(Sender: TObject);

begin

// oklad:=StrToInt(oklad.text);

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

t.append;

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

t.delete;

t.close;

Form4.close;

end;

end.

Form5 (Ввод вакансии)

unit Unit5;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,

DbCtrls, StdCtrls;

type

{ TForm5 }

TForm5 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

dd: TDatasource;

DBEdit5: TDBEdit;

tt: TDbf;

DBText1: TDBText;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

d: TDatasource;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

t: TDbf;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure DBText1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.lfm}

{ TForm5 }

procedure TForm5.FormCreate(Sender: TObject);

begin

end;

procedure TForm5.FormShow(Sender: TObject);

begin

t.Open;

tt.Open;

end;

procedure TForm5.Button1Click(Sender: TObject);

begin

t.Append;

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

t.delete;

t.close;

Form5.close;

end;

procedure TForm5.Button3Click(Sender: TObject);

begin

tt.Prior;

end;

procedure TForm5.Button4Click(Sender: TObject);

begin

tt.next;

end;

procedure TForm5.DBText1Click(Sender: TObject);

begin

end;

end.

Form6 (Запрос работника)

unit Unit6;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,

DbCtrls, StdCtrls, DBGrids;

type

{ TForm6 }

TForm6 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

dd: TDatasource;

fio: TDBEdit;

Label2: TLabel;

Label3: TLabel;

code: TMemo;

SaveDialog1: TSaveDialog;

tel: TDBEdit;

naim: TDBEdit;

DBGrid1: TDBGrid;

temp1: TDatasource;

temp: TDbf;

DBText1: TDBText;

d: TDatasource;

Label1: TLabel;

now_k: TDBEdit;

t: TDbf;

tt: TDbf;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure DBText1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);

procedure FormShow(Sender: TObject);

procedure Label1Click(Sender: TObject);

procedure now_kChange(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.lfm}

{ TForm6 }

procedure TForm6.Button1Click(Sender: TObject);

begin

t.Prior;

end;

procedure TForm6.Button2Click(Sender: TObject);

begin

t.next;

end;

procedure TForm6.Button3Click(Sender: TObject);

var x,y,z,w: string;

begin

//while not(tt.eof) do begin

//if(now_k.Text = t.FieldByName('kod_c').AsString) then

//begin

//temp.Append; temp.Edit;

//fio.text:=tt.FieldByName('fio').AsString;

//tel.text:=tt.FieldByName('tel').AsString;

//naim.text:=t.FieldByName('naim').AsString;

//end;

//tt.Next;

// end;

x:=now_k.text;

tt.First;

temp.open;

temp.First;

while not(tt.eof) do begin

if(x=tt.FieldByName('kod_c').AsString) then begin

z:= tt.FieldByName('fio').AsString;

y:= t.FieldByName('naim').AsString;

w:= tt.FieldByName('tel').AsString;

Label2.caption:=z;

Label3.caption:=y;

//tt.FieldDefs.;

temp.Append;

temp.FieldByName('fio').AsString:=z;

temp.FieldByName('tel').AsString:=w;

temp.FieldByName('naim').AsString:=y;

end;

tt.Next;

end;

Button5.Visible:=true;

end;

procedure TForm6.Button4Click(Sender: TObject);

begin

tt.close;

t.close;

Form6.close;

temp.close;

end;

procedure TForm6.Button5Click(Sender: TObject);

var s:string;

begin

Button6.Visible:=true;

code.Visible:=true ;

if(savedialog1.Execute) then begin

temp.First;

code.Lines.Add( ' Список работников ');

code.Lines.Add( ' ФИО '+' Телефон '+' Специальность ' );

while not(temp.EOF) do begin

code.Lines.Add(

temp.FieldByName('fio').AsString+' '+

temp.FieldByName('tel').AsString+' '+

temp.FieldByName('naim').AsString+' '

);

temp.Next;

end;

code.Lines.SaveToFile(UTF8ToSys(SaveDialog1.FileName+'.txt'));

end;

end;

procedure TForm6.Button6Click(Sender: TObject);

begin

code.Visible:=false ;

Button6.Visible:=false;

end;

procedure TForm6.DBText1Click(Sender: TObject);

begin

end;

procedure TForm6.FormClose(Sender: TObject; var CloseAction: TCloseAction);

begin

temp.Close;

t.Close;

tt.Close;

end;

procedure TForm6.FormShow(Sender: TObject);

begin

temp.TableName := 'temp2.dbf';

temp.FieldDefs.Add('fio', ftString, 250);

temp.FieldDefs.Add('tel', ftString, 10);

temp.FieldDefs.Add('naim', ftString, 250);

temp.CreateTable;

temp.FieldDefs.Clear;

temp.Open;

t.open;

tt.open;

end;

procedure TForm6.Label1Click(Sender: TObject);

begin

end;

procedure TForm6.now_kChange(Sender: TObject);

begin

end;

end.

Form7 (Запрос вакансии)

unit Unit7;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, dbf, db, FileUtil, Forms, Controls, Graphics, Dialogs,

DbCtrls, StdCtrls, DBGrids, ExtCtrls;

type

{ TForm7 }

TForm7 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

d: TDatasource;

temp1: TDatasource;

temp: TDbf;

dd: TDatasource;

now_k: TDBEdit;

tt: TDbf;

DBGrid1: TDBGrid;

DBText1: TDBText;

Label1: TLabel;

t: TDbf;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form7: TForm7;

implementation

{$R *.lfm}

{ TForm7 }

procedure TForm7.Button1Click(Sender: TObject);

begin

t.Prior;

end;

procedure TForm7.Button2Click(Sender: TObject);

begin

t.next;

end;

procedure TForm7.Button3Click(Sender: TObject);

var x,z,y,w,u:string;

begin

x:=now_k.text;

tt.First;

temp.open;

temp.First;

while not(tt.eof) do begin

if(x=tt.FieldByName('kod_c').AsString) then begin

z:= tt.FieldByName('naimen').AsString;

w:= tt.FieldByName('tel').AsString;

u:= tt.FieldByName('adres').AsString;

y:= t.FieldByName('naim').AsString;

temp.Append;

temp.FieldByName('naimen').AsString:=z;

temp.FieldByName('tel').AsString:=w;

temp.FieldByName('adres').AsString:=u;

temp.FieldByName('naim').AsString:=y;

end;

tt.Next;

end;

end;

procedure TForm7.Button4Click(Sender: TObject);

begin

form7.close;

tt.close;

t.close;

temp.close;

end;

procedure TForm7.FormShow(Sender: TObject);

begin

temp.TableName := 'temp.dbf';

temp.FieldDefs.Add('naimen', ftString, 250);

temp.FieldDefs.Add('tel', ftString, 10);

temp.FieldDefs.Add('adres', ftString, 250);

temp.FieldDefs.Add('naim', ftString, 250);

temp.CreateTable;

temp.FieldDefs.Clear;

temp.Open;

tt.open;

t.open;

end;

end.

Исполняемый код.

program project1;

{$mode objfpc}{$H+}

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Interfaces, // this includes the LCL widgetset

Forms, Unit1, dbflaz, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm4, Form4);

Application.CreateForm(TForm5, Form5);

Application.CreateForm(TForm6, Form6);

Application.CreateForm(TForm7, Form7);

Application.Run;

end.