Автор работы: Пользователь скрыл имя, 26 Мая 2011 в 06:26, дипломная работа
Целью данного дипломного проекта являлось создание базы данных по анкетам детей, оставшихся без попечения родителей для ОГОУ “Центра психолого-медико-социального сопровождения”.
Реализация данной задачи проводится в системе программирования Delphi7.0, располагающей широкими возможностями по созданию приложений баз данных, необходимым набором драйверов для доступа к самым известным форматам баз данных, удобными и развитыми средствами для доступа к информации, расположенной как на локальном диске, так и на удаленном сервере, а также большим коллекцией визуальных компонент для построения отображаемых на экране окон, что необходимо для создания удобного интерфейса между пользователем и исполняемым кодом.
Введение 5
Глава 1. Описание предметной области объекта автоматизации 7
1.1. Постановка задачи 7
1.2. Описание предметной области задачи 9
1.2.1. История ОГОУ ЦПМСС 9
1.2.2. Направление деятельности ОГОУ ЦПМСС 9
1.2.3. Структура ОГОУ ЦПМСС 10
1.2.4. Описание компьютерной сети 12
1.2.5. Декомпозиция бизнес-процессов 13
1.2.6. Построение объектной модели задачи 19
Глава 2. Проектирование базы данных и реализация приложения 24
2.1. Программные средства, используемые при реализации проекта 24
2.2. Базы данных 26
2.2.1. Классификация баз данных 28
2.2.2. Структурные элементы баз данных 29
2.3. Проектирование базы данных 30
2.3.1. Проектирование инфологической модели 31
2.3.2. Проектирование логической и физической модели 34
2.4. Описание серверной части клиент-серверного приложения 37
2.5. Описание клиентской части 38
клиент-серверного приложения 38
2.6. Проектирование тестов и тестирование 40
Глава 3. Организационно-экономическая часть 46
3.1. Оценка затрат на разработку АС 46
3.1.1. Материальные затраты 48
3.1.2. Затраты на оплату труда 48
3.1.3. Дополнительная заработная плата 49
3.1.4. Страховые взносы 49
3.1.5. Затраты на электроэнергию 50
3.1.6. Затраты на содержание и эксплуатацию оборудования 50
3.1.7. Амортизационные отчисления 51
3.1.8. Накладные расходы 51
3.1.9. Cводная таблица затрат на разработку и внедрение проекта 52
3.2. Оценка эффекта от внедрения АС 53
Заключение 55
Список литературы 57
Приложения 58
q:=q1+q2+q3+q4; //сформированный запрос
dm.IBQuery1.SQL.Clear;
dm.IBQuery1.SQL.Add(q);
dm.IBQuery1.ExecSQL; //выполняем запрос
dm.anketa.Close;
dm.anketa.Open;
form1.FormShow(Sender);
form1.CheckBox1Click(sender);
close;
end;
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls,
StdCtrls, ExtCtrls;
type
TForm5 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
Memo1: TMemo;
Label2: TLabel;
Label3: TLabel;
RadioGroup1: TRadioGroup;
DateTimePicker2: TDateTimePicker;
Label4: TLabel;
Memo2: TMemo;
Memo3: TMemo;
Label5: TLabel;
Memo4: TMemo;
Button1: TButton;
Button2: TButton;
Label6: TLabel;
Label7: TLabel;
procedure RadioGroup1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit2, Unit1;
{$R *.dfm}
procedure TForm5.RadioGroup1Click(
begin
//если значение другие, то дополнительно доступно
//поле ввода
if RadioGroup1.ItemIndex=3 then
Memo4.Visible:=true
else
memo4.Visible:=false;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm5.Button1Click(Sender: TObject);
var
rea:string;
begin
//происходит проверка если снятия с учета нет
//то вносятся данные по постановке
if TabSheet2.tabVisible=false then
begin
dm.IBQuery1.SQL.clear;
dm.IBQuery1.SQL.Add('INSERT
INTO account (id_a, date_acc, taken_m, us_n) VALUES('+chr(39)+label6.
dm.IBQuery1.ExecSQL;
dm.IBQuery1.SQL.clear;
dm.IBQuery1.SQL.Add('update
anketa SET uc=1 WHERE id_a='+chr(39)+label7.Caption+
dm.IBQuery1.ExecSQL;
close;
end else
begin
//иначе вносятся данные по снятию с учета
dm.IBQuery2.SQL.Clear;
dm.IBQuery2.SQL.Add('select
* from cess_acc join account on account.id_acc=cess_acc.id_acc where
account.id_a='+form1.DBGrid1.
dm.IBQuery2.Open;
if dm.IBQuery2.RecordCount=0 then
begin
if Memo4.Visible=true then
rea:=memo4.Text
else if RadioGroup1.ItemIndex=0 then
rea:='Достижение 23 лет'
else if RadioGroup1.ItemIndex=1 then
rea:='Переезд в др. область'
else if RadioGroup1.ItemIndex=2 then
rea:='Смерть';
//rea:=chr(39)+label6.Caption+
dm.IBQuery1.SQL.clear;
dm.IBQuery1.SQL.Add('INSERT
INTO cess_acc (id_acc, date_cess, reg_doc, dop_inf, reasons, us_n )
VALUES('+chr(39)+label6.
dm.IBQuery1.ExecSQL;
dm.IBQuery1.SQL.clear;
dm.IBQuery1.SQL.Add('update
anketa SET uc=2 WHERE id_a='+chr(39)+label7.Caption+
dm.IBQuery1.ExecSQL;
close;
end else
ShowMessage('внесение изменений невозможно');
end;
form1.CheckBox1Click(sender);
end;
end.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
ComCtrls, Mask;
type
TForm6 = class(TForm)
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Label4: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label5: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit4: TEdit;
MaskEdit1: TMaskEdit;
procedure ComboBox1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
ss:string;
implementation
uses Unit2, Unit1;
{$R *.dfm}
procedure TForm6.ComboBox1Change(Sender: TObject);
begin
//здесь в зависимости от выбранной колонки анкеты извлекаются
//данные из нее и поля формируются соответствующим образом
if ((ComboBox1.ItemIndex=1) or (ComboBox1.ItemIndex=2) or (ComboBox1.ItemIndex=3) or (ComboBox1.ItemIndex=4) or (ComboBox1.ItemIndex=7)) then
begin
Label5.Visible:=false;
Memo1.Visible:=false;
Label6.Visible:=false;
Label7.Visible:=false;
Label8.Visible:=false;
Edit1.Visible:=false;
Edit2.Visible:=false;
Edit3.Visible:=false;
memo1.Clear;
edit1.Clear;
edit2.Clear;
edit3.Clear;
MaskEdit1.Text:='';
Label3.Caption:=ComboBox1.
MaskEdit1.Visible:=true;
if (ComboBox1.ItemIndex=1) then
MaskEdit1.Text:=dm.IBQuery1.
if (ComboBox1.ItemIndex=2) then
MaskEdit1.Text:=dm.IBQuery1.
if (ComboBox1.ItemIndex=3) then
MaskEdit1.Text:=dm.IBQuery1.
if (ComboBox1.ItemIndex=4) then
MaskEdit1.Text:=dm.IBQuery1.
if (ComboBox1.ItemIndex=7) then
MaskEdit1.Text:=dm.IBQuery1.
edit4.Text:=MaskEdit1.Text;
end else
if ((ComboBox1.ItemIndex=19) or (ComboBox1.ItemIndex=20)) then
begin
Label5.Visible:=false;
label6.Caption:='ФИО';
label7.Caption:='Гражданство';
label8.Caption:='
Label3.Caption:='Дата рождения';
Memo1.Visible:=false;
memo1.Clear;
Label6.Visible:=true;
Label7.Visible:=true;
Label8.Visible:=true;
Edit1.Visible:=true;
Edit2.Visible:=true;
Edit3.Visible:=true;
MaskEdit1.Text:='';
MaskEdit1.Visible:=true;
if (ComboBox1.ItemIndex=19) then
begin
Edit1.Text:=dm.IBQuery1.
Edit2.Text:=dm.IBQuery1.
Edit3.Text:=dm.IBQuery1.
MaskEdit1.Text:=dm.IBQuery1.
end;
if (ComboBox1.ItemIndex=20) then
begin
Edit1.Text:=dm.IBQuery1.
Edit2.Text:=dm.IBQuery1.
Edit3.Text:=dm.IBQuery1.
MaskEdit1.Text:=dm.IBQuery1.
end;
Edit4.Text:=MaskEdit1.Text;
end else
if (ComboBox1.ItemIndex=0) then
begin
Label5.Visible:=true;
label5.Caption:=ComboBox1.
label6.Caption:='Название';
label7.Caption:='Адрес';
Memo1.Visible:=false;
Label6.Visible:=true;
Label7.Visible:=true;
Label8.Visible:=false;
Edit1.Visible:=true;
Edit2.Visible:=true;
Edit1.Text:=dm.IBQuery1.
Edit2.Text:=dm.IBQuery1.
Edit3.Visible:=false;
memo1.Clear;
edit3.Clear;
Label3.Caption:=' ';
MaskEdit1.Visible:=false;
MaskEdit1.Clear;
Edit4.Text:='';
end else
if (ComboBox1.ItemIndex=9) then
begin
Label5.Visible:=true;
label5.Caption:=ComboBox1.
label6.Caption:='Название';
label7.Caption:='Номер';
label8.Caption:='Серия';
Memo1.Visible:=false;
Label6.Visible:=true;
Label7.Visible:=true;
Label8.Visible:=true;
Edit1.Visible:=true;
Edit2.Visible:=true;
Edit3.Visible:=true;
memo1.Clear;
Edit1.Text:=dm.IBQuery1.
Edit2.Text:=dm.IBQuery1.