Базы данных по анкетам детей, оставшихся без попечения родителей для ОГОУ “Центра психолого-медико-социального сопровождения”

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

Диплом итог.doc

— 1.87 Мб (Скачать документ)

  for i:=1 to dm.IBQuery1.RecordCount do

  begin

  if dm.IBQuery1.FieldByName('login').AsString<>'admin' then

  ComboBox1.Items.Text:=ComboBox1.Items.Text+dm.IBQuery1.FieldByName('login').AsString+chr(13);

  dm.IBQuery1.Next;

  end;

  //снятые с учета

  ComboBox2.Text:='';

  ComboBox2.Items.Clear;

  dm.IBQuery1.Close;

  dm.IBQuery1.SQL.Clear;

  dm.IBQuery1.SQL.Add('select anketa.fio from anketa where uc=2'); 

  dm.IBQuery1.Open;

  dm.IBQuery1.First;

  dm.IBQuery1.Last;

  dm.IBQuery1.First;

  for i:=1 to dm.IBQuery1.RecordCount do

  begin

  ComboBox2.Items.Text:=ComboBox2.Items.Text+dm.IBQuery1.FieldByName('fio').AsString+chr(13);

  dm.IBQuery1.Next;

  end; 

  //стоящие  на учете

  ComboBox3.Text:='';

  ComboBox3.Items.Clear;

  dm.IBQuery1.Close;

  dm.IBQuery1.SQL.Clear;

  dm.IBQuery1.SQL.Add('select anketa.fio from anketa where uc=1'); 

  dm.IBQuery1.Open;

  dm.IBQuery1.First;

  dm.IBQuery1.Last;

  dm.IBQuery1.First;

  for i:=1 to dm.IBQuery1.RecordCount do

  begin

  ComboBox3.Items.Text:=ComboBox3.Items.Text+dm.IBQuery1.FieldByName('fio').AsString+chr(13);

  dm.IBQuery1.Next;

  end; 

//все анкеты

ComboBox4.Text:='';

  ComboBox4.Items.Clear;

  dm.IBQuery1.Close;

  dm.IBQuery1.SQL.Clear;

  dm.IBQuery1.SQL.Add('select anketa.fio from anketa'); 

  dm.IBQuery1.Open;

  dm.IBQuery1.First;

  dm.IBQuery1.Last;

  dm.IBQuery1.First;

  for i:=1 to dm.IBQuery1.RecordCount do

  begin

  ComboBox4.Items.Text:=ComboBox4.Items.Text+dm.IBQuery1.FieldByName('fio').AsString+chr(13);

  dm.IBQuery1.Next;

  end; 

ComboBox1.ItemIndex:=0;

ComboBox2.ItemIndex:=0;

ComboBox3.ItemIndex:=0;

ComboBox4.ItemIndex:=0;

end; 

procedure TForm9.Button3Click(Sender: TObject);

var

st:string;

begin

//удалить пользователя

dm.IBQuery1.Close;

  dm.IBQuery1.SQL.Clear;

  st:='delete from use_acc where login='+chr(39)+ComboBox1.Text+chr(39)+';';

  dm.IBQuery1.SQL.Add(st);

  dm.IBQuery1.ExecSQL;

  Label11.Caption:='пользователь удален';

  form9.FormShow(sender);

end; 

procedure TForm9.Button5Click(Sender: TObject);

begin

//обновляем  в анкете значение  о снятии на  значение о постановке

dm.IBQuery1.Close;

dm.IBQuery1.SQL.clear;

dm.IBQuery1.SQL.Add('update anketa SET uc=1 WHERE fio='+chr(39)+ComboBox2.Text+chr(39)+';');

dm.IBQuery1.ExecSQL;

//удаляем  данные о снятии

dm.IBQuery1.Close;

dm.IBQuery1.SQL.clear;

dm.IBQuery1.SQL.Add('delete from cess_acc where id_acc='+chr(39)+Label13.Caption+chr(39)+';');

dm.IBQuery1.ExecSQL; 

  Label13.Caption:='снятие отменено';

  form9.Refresh;

  form9.FormShow(sender);

end; 

procedure TForm9.ComboBox2Change(Sender: TObject);

begin

//получаем id снятого с учета  при выборе его  из списка

dm.IBQuery1.Close;

  dm.IBQuery1.SQL.Clear;

    dm.IBQuery1.SQL.Add('select account.id_acc from account join anketa on account.id_a=anketa.id_a where anketa.fio='+chr(39)+ComboBox2.Text+chr(39)); 

  dm.IBQuery1.Open;

  dm.IBQuery1.First;

  dm.IBQuery1.Last;

  dm.IBQuery1.First;

  Label13.Caption:=dm.IBQuery1.FieldByName('id_acc').AsString;

end; 

procedure TForm9.FormClose(Sender: TObject; var Action: TCloseAction);

begin

form1.CheckBox1Click(sender);

end; 

procedure TForm9.Button6Click(Sender: TObject);

begin

//обновляем  анкету что выпускник  вообще не учитовался

dm.IBQuery1.Close;

dm.IBQuery1.SQL.clear;

dm.IBQuery1.SQL.Add('update anketa SET uc=0 WHERE fio='+chr(39)+ComboBox3.Text+chr(39)+';');

dm.IBQuery1.ExecSQL;

//удаляем  данные об учете

dm.IBQuery1.Close;

dm.IBQuery1.SQL.clear;

dm.IBQuery1.SQL.Add('delete from account where id_a='+chr(39)+Label15.Caption+chr(39)+';');

dm.IBQuery1.ExecSQL; 

  Label15.Caption:='постановка отменена';

  form9.Refresh;

form9.FormShow(sender);

end; 

procedure TForm9.ComboBox3Change(Sender: TObject);

begin

//получаем id поставленного на  учет

dm.IBQuery1.Close;

  dm.IBQuery1.SQL.Clear;

    dm.IBQuery1.SQL.Add('select id_a from anketa where fio='+chr(39)+ComboBox3.Text+chr(39)); 

  dm.IBQuery1.Open;

  dm.IBQuery1.First;

  dm.IBQuery1.Last;

  dm.IBQuery1.First;

  Label15.Caption:=dm.IBQuery1.FieldByName('id_a').AsString;

end; 

procedure TForm9.Button7Click(Sender: TObject);

begin

dm.IBQuery1.SQL.Clear;

dm.IBQuery1.SQL.Add('select uc, id_a from anketa where anketa.fio='+chr(39)+ComboBox4.Text+chr(39));

dm.IBQuery1.Open;

dm.IBQuery1.First;

dm.IBQuery1.Last;

dm.IBQuery1.First;

dm.IBQuery2.SQL.Clear;

dm.IBQuery2.SQL.Add('select id_acc from account join anketa on account.id_a=anketa.id_a where anketa.fio='+chr(39)+ComboBox4.Text+chr(39));

dm.IBQuery2.Open;

dm.IBQuery2.First;

dm.IBQuery2.Last;

dm.IBQuery2.First;

if dm.IBQuery1.FieldByName('uc').Asinteger=2 then

begin

  dm.IBQuery3.SQL.Clear;

  dm.IBQuery3.SQL.Add('delete from cess_acc where id_acc='+dm.IBQuery2.FieldByName('id_acc').AsString+';');

  dm.IBQuery3.ExecSQL;

  dm.IBQuery3.SQL.Clear;

  dm.IBQuery3.SQL.Add('delete from account where id_acc='+dm.IBQuery2.FieldByName('id_acc').AsString+';');

  dm.IBQuery3.ExecSQL;

  dm.IBQuery3.SQL.Clear;

  dm.IBQuery3.SQL.Add('delete from anketa where id_a='+dm.IBQuery1.FieldByName('id_a').AsString+';');

  dm.IBQuery3.ExecSQL;

end else

if dm.IBQuery1.FieldByName('uc').Asinteger=1 then

begin

  dm.IBQuery3.SQL.Clear;

  dm.IBQuery3.SQL.Add('delete from account where id_acc='+dm.IBQuery2.FieldByName('id_acc').AsString+';');

  dm.IBQuery3.ExecSQL;

  dm.IBQuery3.SQL.Clear;

  dm.IBQuery3.SQL.Add('delete from anketa where id_a='+dm.IBQuery1.FieldByName('id_a').AsString+';');

  dm.IBQuery3.ExecSQL;

end else

if dm.IBQuery1.FieldByName('uc').Asinteger=0 then

begin

  dm.IBQuery3.SQL.Clear;

  dm.IBQuery3.SQL.Add('delete from anketa where id_a='+dm.IBQuery1.FieldByName('id_a').AsString+';');

  dm.IBQuery3.ExecSQL;

end;

Label17.Caption:='Анкета удалена';

form9.FormShow(sender);

end; 

procedure TForm9.Edit2Change(Sender: TObject);

var

st:string;

begin

dm.IBQuery2.SQL.Clear;

st:='select * from use_acc where login='+chr(39)+edit2.Text+chr(39);

dm.IBQuery2.SQL.Add(st);

dm.IBQuery2.Open;

dm.IBQuery2.First;

dm.IBQuery2.last;

dm.IBQuery2.First;

if dm.IBQuery2.RecordCount=0 then

begin

Label18.Caption:='логин свободен';

Label18.Font.Color:=clGreen;

end else

begin

Label18.Caption:='логин занят';

Label18.Font.Color:=clRed;

end;

end; 

end. 

unit Unit10; 

interface 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Grids, DBGrids, Menus; 

type

  TForm10 = class(TForm)

    DBGrid1: TDBGrid;

    Label1: TLabel;

    Edit1: TEdit;

    Button1: TButton;

    PopupMenu1: TPopupMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    procedure FormShow(Sender: TObject);

    procedure Edit1Change(Sender: TObject);

    procedure Button1Click(Sender: TObject);

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

    procedure N1Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form10: TForm10; 

implementation 

uses Unit2, Unit1; 

{$R *.dfm} 

procedure TForm10.FormShow(Sender: TObject);

begin

//заполняем  таблицу архива

//в  него вносятся  те кто снят  с учета

DBGrid1.DataSource:=dm.DSanketa;

dm.anketa.Close;

dm.anketa.SelectSQL.Clear;

dm.anketa.SelectSQL.Append('select anketa.id_a, anketa.fio, anketa.date_b, anketa.date_pr from anketa where uc=2 order by fio');

dm.anketa.Open;

dm.anketa.First;

dm.anketa.Last;

dm.anketa.First;

DBGrid1.Columns[1].Title.Caption:='ФИО';

DBGrid1.Columns[1].Width:=250;

DBGrid1.Columns[2].Width:=150;

DBGrid1.Columns[2].Title.Caption:='Дата рождения';

DBGrid1.Columns[3].Width:=150;

DBGrid1.Columns[3].Title.Caption:='Регистрация';

DBGrid1.Columns[0].Width:=40;

DBGrid1.Columns[0].Title.Caption:='Номер';

end; 

procedure TForm10.Edit1Change(Sender: TObject);

begin

//поиск  по архиву по имени и фамилии

dm.anketa.Close;

dm.anketa.SelectSQL.Clear;

dm.anketa.SelectSQL.Append('select anketa.id_a, anketa.fio, anketa.date_b, anketa.date_pr from anketa where uc=2 and anketa.fio like '+chr(39)+'%'+edit1.text+'%'+chr(39)+' order by fio');

Информация о работе Базы данных по анкетам детей, оставшихся без попечения родителей для ОГОУ “Центра психолого-медико-социального сопровождения”