Создание автоматизированной информационной системы

Автор: Пользователь скрыл имя, 13 Марта 2012 в 00:23, курсовая работа

Описание работы

Borland InterBase является высокопроизводительной кросс-платформенной, встраиваемой реляционной базой данных, сочетающей простую инсталляцию, автоматическое восстановление после сбоев, чрезвычайно низке системные требования и минимальную потребность в сопровождении, что очень важно для надежного функционирования распределенных высокопроизводительных критически важных бизнес-приложений. Среди возможностей базы данных InterBase - запатентованные обработчики оповещений о событиях, хранимые процедуры, триггеры, определяемые пользователем функции (UDF) и фильтры для работы с объектами BLOB.

Содержание

ВВЕДЕНИЕ
стр.
РАЗДЕЛ 1.ОБЩАЯ ЧАСТЬ
стр.
1.1 Спецификация требований
стр.
РАЗДЕЛ 2. СПЕЦИАЛЬНАЯ ЧАСТЬ
стр.
2.1 Моделирование ИС
стр.
2.1.1 Концептуальная модель базы данных
стр.
2.1.2 Логическая модель базы данных
стр.
2.1.3 Физическая модель базы данных
стр.
2.2 Программа базы данных
стр.
2.3 Реализация транзакций
стр.
ЗАКЛЮЧЕНИЕ
стр.
СПИСОК ЛИТЕРАТУРЫ

Работа содержит 1 файл

Курсовая.docx

— 1.74 Мб (Скачать)

end;

 

end.

 

unit oformlenie;

 

interface

 

uses

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

  Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, RpCon, RpConDS, RpDefine,

  RpRave, ExtCtrls, Mask, jpeg;

 

type

  TForm3 = class(TForm)

    DBLookupComboBox1: TDBLookupComboBox;

    DBLookupComboBox2: TDBLookupComboBox;

    DBLookupComboBox3: TDBLookupComboBox;

    Button1: TButton;

    Button2: TButton;

    report: TRvProject;

    query_otch: TRvDataSetConnection;

    Label1: TLabel;

    Label3: TLabel;

    Label2: TLabel;

    zakaz: TRvDataSetConnection;

    DBRadioGroup1: TDBRadioGroup;

    DBEdit1: TDBEdit;

    DBEdit2: TDBEdit;

    DBEdit3: TDBEdit;

    DBEdit4: TDBEdit;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    DBText1: TDBText;

    Label9: TLabel;

    Image1: TImage;

    procedure Button2Click(Sender: TObject);

    procedure DBLookupComboBox1Click(Sender: TObject);

    procedure DBLookupComboBox2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure DBLookupComboBox3Click(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure DBRadioGroup1Click(Sender: TObject);

    procedure DBEdit1Click(Sender: TObject);

    procedure DBEdit3Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form3: TForm3;

  cl,found:integer;

 

 

implementation

 

uses datamodule, glavnaya, vvod;

 

{$R *.dfm}

 

procedure TForm3.Button2Click(Sender: TObject);

begin

Form3.hide;

Form1.Show;

DBLookupComboBox2.Enabled:=false;

DBLookupComboBox3.Enabled:=false;

Button1.Enabled:=false;

DataModule1.Query1.Filtered:=false;

DataModule1.Query1.Close;

DBRadioGroup1.Enabled:=false;

DataModule1.zakaz.CancelRange;

end;

 

procedure TForm3.DBLookupComboBox1Click(Sender: TObject);

begin

if cl>0 then

DataModule1.zakaz.CancelRange;

cl:=0;

DBRadioGroup1.Items.Clear;

DBRadioGroup1.Values.Clear;

DBLookupComboBox2.Enabled:=true;

DBLookupComboBox3.Enabled:=false;

Datamodule1.Query1.Filtered:=false;

  DataModule1.Query1.Filter:='Kod_mashini='+inttostr(Form3.DBLookupComboBox1.KeyValue);

  Datamodule1.Query1.Filtered:=true;

  Datamodule1.Query1.Open;

while not(DataModule1.Query1.Eof) do

  begin

  DBRadioGroup1.items.Add(DataModule1.Query1marka.value+' '+DataModule1.Query1Nazv.Value+' Объём '+floattostr(DataModule1.Query1Obem.Value)+' год выпуска '+DataModule1.Query1God_izgot.AsString);

  DataModule1.Query1.Next;

  end;

 

end;

 

procedure TForm3.DBLookupComboBox2Click(Sender: TObject);

begin

DBRadioGroup1.Items.Clear;

DBRadioGroup1.Values.Clear;

DataModule1.Query1.Filtered:=false;

DataModule1.Query1.Filter:='(God_izgot='+inttostr(Form3.DBLookupComboBox2.KeyValue)+') and (Kod_mashini='+inttostr(Form3.DBLookupComboBox1.KeyValue)+')';

DataModule1.Query1.Refresh;

Datamodule1.Query1.Filtered:=true;

while not(DataModule1.Query1.Eof) do

  begin

  DBRadioGroup1.items.Add(DataModule1.Query1marka.value+' '+DataModule1.Query1Nazv.Value+' Объём '+floattostr(DataModule1.Query1Obem.Value)+' год выпуска '+DataModule1.Query1God_izgot.AsString);

  DataModule1.Query1.Next;

  end;

DBLookupComboBox3.Enabled:=true;

end;

 

procedure TForm3.Button1Click(Sender: TObject);

begin

found:=0;

if not(DBEdit1.Field.Value=Null) and not(DBEdit2.Field.Value=Null) and not(DBEdit3.Field.Value=Null) and not(DBEdit4.Field.Value=Null) then

begin

DataModule1.zakaz.ApplyRange;

while not(DataModule1.tip_mashini.Eof) do

begin

  if (DataModule1.tip_mashiniKol_na_skl.Value>=DataModule1.zakazKol.Value) and (DataModule1.tip_mashiniN_po_poryadku.Value=DataModule1.Query1N_po_poryadku.Value) then

  begin

  found:=1;

  {DataModule1.tip_mashini.Filter:=DataModule1.Query1.Filter;

  DataModule1.tip_mashini.Filtered:=true;}

  DataModule1.zakaz.Last;

  DataModule1.zakaz.edit;

  DataModule1.zakazCena_zakaza.Value:=0;

  DataModule1.zakazCena_zakaza.Value:=DataModule1.tip_mashiniCena.Value*DataModule1.zakazKol.Value;

  DataModule1.zakaz.ApplyRange;

  DataModule1.zakaz.Last;

  Label9.Caption:=IntToStr(DataModule1.zakazKod_zakaza.value);

  DataModule1.zakaz.Filter:='kod_zakaza='+Label9.Caption;

  DataModule1.zakaz.Filtered:=true;

  DataModule1.tip_mashini.Edit;

  DataModule1.tip_mashiniKol_na_skl.Value:=DataModule1.tip_mashiniKol_na_skl.Value-DataModule1.zakazKol.Value;

  DataModule1.tip_mashini.ApplyRange;

  report.Execute;

  DBLookupComboBox2.Enabled:=false;

  DBLookupComboBox3.Enabled:=false;

  Button1.Enabled:=false;

  DBEdit1.Enabled:=false;

  DBEdit2.Enabled:=false;

  DBEdit3.Enabled:=false;

  DBEdit4.Enabled:=false;

  Button1.Enabled:=false;

  DBRadioGroup1.Enabled:=false;

  DataModule1.Query1.Filtered:=false;

  DataModule1.zakaz.Filtered:=false;

 

  Form3.close;

  Form1.Show;

 

  end;

 

DataModule1.tip_mashini.Next;

DataModule1.zakaz.Next;

end;

if found=0 then

begin

  Application.MessageBox('нету  в наличии','чек',MB_OK);

  DBLookupComboBox2.Enabled:=false;

  DBLookupComboBox3.Enabled:=false;

  Button1.Enabled:=false;

  DBEdit1.Enabled:=false;

  DBEdit2.Enabled:=false;

  DBEdit3.Enabled:=false;

  DBEdit4.Enabled:=false;

  Button1.Enabled:=false;

  DBRadioGroup1.Enabled:=false;

  DataModule1.Query1.Filtered:=false;

  DataModule1.zakaz.Filtered:=false;

  Form3.Close;

  Form1.Show;

end;

end

else

begin

Application.MessageBox('Заполните  поля','ввод',MB_OK);

end;

 

end;

 

procedure TForm3.DBLookupComboBox3Click(Sender: TObject);

begin

DBRadioGroup1.Items.Clear;

DBRadioGroup1.Values.Clear;

DataModule1.Query1.Filtered:=false;

DataModule1.Query1.Filter:='(obem='+floattostr(Form3.DBLookupComboBox3.KeyValue)+') and (God_izgot='+inttostr(Form3.DBLookupComboBox2.KeyValue)+') and (Kod_mashini='+inttostr(Form3.DBLookupComboBox1.KeyValue)+')';

DataModule1.Query1.Refresh;

Datamodule1.Query1.Filtered:=true;

DBLookupComboBox3.Enabled:=true;

while not(DataModule1.Query1.Eof) do

  begin

  DBRadioGroup1.items.Add(DataModule1.Query1marka.value+' '+DataModule1.Query1Nazv.Value+' Объём '+floattostr(DataModule1.Query1Obem.Value)+' год выпуска '+DataModule1.Query1God_izgot.AsString);

  DataModule1.Query1.Next;

  end;

DBRadioGroup1.Enabled:=true;

end;

 

procedure TForm3.FormShow(Sender: TObject);

begin

DataModule1.Query1.open;

DataModule1.Query1.Refresh;

cl:=0;

end;

 

procedure TForm3.DBRadioGroup1Click(Sender: TObject);

begin

DataModule1.mashina.CancelRange;

DBRadioGroup1.Enabled:=false;

DBEdit1.enabled:=true;

DBEdit2.enabled:=true;

DBEdit3.enabled:=true;

DBEdit4.enabled:=true;

Button1.Enabled:=true;

 

end;

 

procedure TForm3.DBEdit1Click(Sender: TObject);

begin

if cl<1 then

begin

DataModule1.zakaz.CancelRange;

DataModule1.zakaz.Insert;

DataModule1.zakazKod_nazv.Value:=DataModule1.Query1N_po_poryadku.Value;

cl:=1;

end;

 

end;

 

procedure TForm3.DBEdit3Click(Sender: TObject);

begin

DBEdit3.Field.Value:=DateToStr(Date);

DataModule1.zakazDate.Value:=Date;

end;

 

procedure TForm3.Button3Click(Sender: TObject);

begin

DataModule1.zakaz.Last;

 

  Label9.Caption:=IntToStr(DataModule1.zakazKod_zakaza.value);

 

  DataModule1.zakaz.Filter:='kod_zakaza='+Label9.Caption;

  DataModule1.zakaz.Filtered:=true;

end;

 

procedure TForm3.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

begin

if DataModule1.mashinaMarka.Value='' then

begin

Application.MessageBox('нету записей','оформление',MB_OK);

Form3.Hide;

Form1.Show;

end;

end;

end.

 

unit prosmotr_dannih;

 

interface

 

uses

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

  Dialogs, StdCtrls, Grids, DBGrids, jpeg, ExtCtrls;

 

type

  Tprosmotr = class(TForm)

    DBGrid1: TDBGrid;

    DBGrid2: TDBGrid;

    DBGrid3: TDBGrid;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Button1: TButton;

    Image1: TImage;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  prosmotr: Tprosmotr;

 

implementation

 

uses datamodule, glavnaya;

 

{$R *.dfm}

 

procedure Tprosmotr.Button1Click(Sender: TObject);

begin

prosmotr.Hide;

Form1.Show;

end;

 

end. 

 

2.3 Реализация транзакций

Транзакция А. Просмотр и вывод  на печать списка  данных по общему количеству мужчин на фирме 

Транзакция  А. Просмотр списка  данных по общему наличию машин в гараже.

parol:='0000';

parol:=inputbox('Введите  пароль','parol',parol);

if parol=inttostr(1111) then

begin

prosmotr.show;

Form1.Hide;

end;

Транзакция  B. Просмотр списка  данных по общему наличию моделей машин в гараже.

parol:='0000';

parol:=inputbox('Введите  пароль','parol',parol);

if parol=inttostr(1111) then

begin

prosmotr.show;

Form1.Hide;

end;

Транзакция C. Просмотр и вывод на печать чека на покупку машины.

found:=0;

if not(DBEdit1.Field.Value=Null) and not(DBEdit2.Field.Value=Null) and not(DBEdit3.Field.Value=Null) and not(DBEdit4.Field.Value=Null) then

begin

DataModule1.zakaz.ApplyRange;

while not(DataModule1.tip_mashini.Eof) do

begin

  if (DataModule1.tip_mashiniKol_na_skl.Value>=DataModule1.zakazKol.Value) and (DataModule1.tip_mashiniN_po_poryadku.Value=DataModule1.Query1N_po_poryadku.Value) then

  begin

  found:=1;

  DataModule1.zakaz.Last;

  DataModule1.zakaz.edit;

  DataModule1.zakazCena_zakaza.Value:=0;

  DataModule1.zakazCena_zakaza.Value:=DataModule1.tip_mashiniCena.Value*DataModule1.zakazKol.Value;

  DataModule1.zakaz.ApplyRange;

  DataModule1.zakaz.Last;

  Label9.Caption:=IntToStr(DataModule1.zakazKod_zakaza.value);

  DataModule1.zakaz.Filter:='kod_zakaza='+Label9.Caption;

  DataModule1.zakaz.Filtered:=true;

  DataModule1.tip_mashini.Edit;

  DataModule1.tip_mashiniKol_na_skl.Value:=DataModule1.tip_mashiniKol_na_skl.Value-DataModule1.zakazKol.Value;

  DataModule1.tip_mashini.ApplyRange;

  report.Execute;

  DBLookupComboBox2.Enabled:=false;

  DBLookupComboBox3.Enabled:=false;

  Button1.Enabled:=false;

  DBEdit1.Enabled:=false;

  DBEdit2.Enabled:=false;

  DBEdit3.Enabled:=false;

  DBEdit4.Enabled:=false;

  Button1.Enabled:=false;

  DBRadioGroup1.Enabled:=false;

  DataModule1.Query1.Filtered:=false;

  DataModule1.zakaz.Filtered:=false;

 

  Form3.close;

  Form1.Show;

Транзакция D. Просмотр информации о покупателях автосалона.

 

prosmotr.show;

Form1.Hide;

 

 

Главное меню базы данных

 

 

Просмотр информации базы данных:

 

 

 

Окно ввода пароля при переходе на редактировании:

 

Окно ввода информации о машинах:

 

 

Оформление покупки.

 

 

Печать необходимой информации.

 

 

Общий вид чека.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК  ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Дейт  К. Введение в системы баз данных. - М.: Наука, 1980.

Ханенко В.Н. Информационные системы. - Л.: Машиностроение, 1988.

Кроув Т., Эйвисон Д. Базы данных в  административных информационных системах. - М.: Финансы и статистика, 1983.

Шлеер С, Меллор С. Объектно-ориентированный  анализ: моделирование мира в состояниях. - К.: Диалектика, 1993.

Боуман Д, Эмерсон С.„ Дарновски  М. Практическое руководство по SQL. - Киев: Диалектика, 1997.

Хаббард Д. Автоматизированное проектирование баз данных. - М.: Мир, 1984. - 294 с.

Цикритизис  Д., Лоховски Ф. Модели данных. - М.: Финансы  и статистика, 1985. - 344 с.

Чен П. Модель "сущность-связь" - шаг к единому представлению  о данных //СУБД. - 1995. -№3. -С.137-158.

Коннолли  Т., Бегг К. Базы дааных. 2000.

Грабер  М. Справочное руководство по SQL. - М.: Лори, S997. - 291 с.

Диго СМ. Проектирование и использование баз данных. - М.: Финансы и статистика, 1995.-208 с.

 


Информация о работе Создание автоматизированной информационной системы