Пропускной пункт предприятия

Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 17:33, курсовая работа

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

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

Содержание работы

ВВЕДЕНИЕ 4
1 ОБЩАЯ ЧАСТЬ 6
1.1 Техническое задание на разработку программного продукта 6
1.2 Анализ средств программирования 9
2 СПЕЦИАЛЬНАЯ ЧАСТЬ 15
2.1 Описание алгоритма 15
2.2 Текст программы с описанием 15
2.3 Описание процесса отладки программы 16
3 ОРГАНИАЦИЯ ПРОИЗВОДСТВА 17
ЗАКЛЮЧЕНИЕ 18
СПИСОК ЛИТЕРАТУРЫ 19

Файлы: 1 файл

Мезин.doc

— 891.00 Кб (Скачать файл)

 

Приложение A

Блок  схема алгоритма

 
 
 
 
 
 

 
   

 
Приложение В

Экранные  формы

 

Рис. 1 Главная  форма 

Рис. 2 Форма  «Главного меню» 
 
 
 

Рис. 3 Редактирование записей таблицы «Заказ пропусков»

Рис. 4 Форма  «Пропуска персонала» 

Рис. 5 Форма  «Создание нового пользователя программы»

Рис. 6 Форма  «Редактирование текущих пользователей» 

Рис.7 Форма  «Вывод отчетов» 

 

Рис. 8 Форма  «Вывод на печать»

 

Приложение С

Тестовые  таблицы

     Таблица 1 Стратегия «черного ящика» метод «гипотез и ошибок»

Условие Значение Ожидаемый результат Результат
Значение в поле Edit1 b Edit2 в окне входа в систему 144вав»№ Сообщение об ошибке Вывел сообщение об ошибке
Не ставить галочку Checkbox1 вводить в поля Edit11,2 admin Сообщение об ошибке Вывел сообщение об ошибке
Поставить галочку Checkbox1 вводить в поля Edit11,2 admin Переход к другой форме Переход к другой форме

     Таблица 2 Стратегия «белого ящика» метод «проверки условий»

Условия Значение Ожидаемый результат Результат
If checkBox1.checked=true and checkBox2.checked=true checkBox1.checked=true and

checkBox2.checked=true

Осуществление поиска по обоим полям Осуществил поиск по обоим полям
If checkBox1.checked=true checkBox1.checked=true Осуществление поиска по первому полю Осуществил поиск по первому полю
If checkBox2.checked=true checkBox2.checked=true Осуществление поиска по второму полю Осуществил поиск по второму полю
If checkBox1.checked=false and checkBox2.checked=false If checkBox1.checked=false and checkBox2.checked=false Сообщение «Не заданы условия поиска» Вывел сообщение «Не заданы условия поиска»

 

Приложение D

Листинг программы

 
 

unit Unit1; 

interface 

uses

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

  Dialogs, StdCtrls, ExtCtrls, DB, ADODB, Mask, DBCtrls, Grids, DBGrids; 

type

  TGlavnay1 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Edit2: TEdit;

    Edit1: TEdit;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Timer1: TTimer;

    CheckBox1: TCheckBox;

    Button1: TButton;

    ADOTable1: TADOTable;

    DataSource1: TDataSource;

    procedure FormPaint(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Edit2KeyPress(Sender: TObject; var Key: Char);

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure FormActivate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Glavnay1: TGlavnay1;

   Time:TdateTime;

   Date:TdateTime;

   Key: Char;

   keyFields:string;

   keyValues:Variant;

   Options:TlocateOptions; 

implementation 

uses  Unit3, Unit5; 

{$R *.dfm} 

procedure TGlavnay1.FormPaint(Sender: TObject);

begin

Timer1.Interval:=1000;

Timer1.Enabled:=True;      //Процедура включения таймера с интервалом в 1000

end; 

procedure TGlavnay1.Timer1Timer(Sender: TObject);

begin

Time:=Now();

Label3.Caption:=FormatDateTime('hh:mm:ss',Time);       // Вывод текушей даты

Date:=Now();

Label4.Caption:=DateToStr(Date);            //Вывод текушего времени

end; 

procedure TGlavnay1.Button1Click(Sender: TObject);

begin

if checkbox1.Checked=true then begin

   if Edit1.Text='admin' then begin

      if Edit2.Text='admin' then begin

      edit1.Text:='';   // очистка поля Text edit1

      edit2.Text:='';    //  очистка поля Text edit2

      glavnay1.Visible:=false;  // форма glavnay1 не видима

      checkbox1.Checked:=false; //установить все значения как изначально

      Admin1.ShowModal;           //Если checkbox1 нажат и введен пароль и логин admin то переход к форме admin1

      exit;

      end;

      end;

      end;

    if (Edit1.Canfocus=true and Edit2.Canfocus=true) then begin

     keyFields:='ЛичныйНомер;Пароль';

     keyValues:=vararrayof([edit1.Text,Edit2.text]);  //Проверка введенного логина и пароля с соержимым таблицы

     end;

    options:=[loCaseInsensitive];

    if not ADOtable1.Locate(keyFields,keyValues,options) then begin

      beep;

      messagedlg('Данный логин или пароль  не верны!!!',mtInformation,[mbok],0);   //вывод сообщения об несушествуюшей записи

      exit;

      end

      else  begin

       edit1.Text:='';    // очистка поля Text edit1

      edit2.Text:='';     //  очистка поля Text edit2

      glavnay1.Visible:=false;  // форма glavnay1 не видима

      checkbox1.Checked:=false;    //  checkbox1 галдочка снята

      menu1.ShowModal;              //установить все значения как изначально

      end;

end; 
 
 

procedure TGlavnay1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then

Button1.Click;               //нажатие на клавишу enter равно нажатию клавиши Button1 

end; 

procedure TGlavnay1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit2.SetFocus;      //нажатие на клавишу enter курсор перескочет на Edit2

end; 

procedure TGlavnay1.FormActivate(Sender: TObject);

begin

Edit1.SetFocus;        //поставить курсор в поле Edit1

end; 

end. 

unit Unit2; 

interface 

uses

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

  Dialogs, Grids, DBGrids, StdCtrls, Buttons, DB, ADODB, ExtCtrls, DBCtrls; 

type

  TPeople = class(TForm)

    GroupBox2: TGroupBox;

    Edit1: TEdit;

    CheckBox1: TCheckBox;

    CheckBox2: TCheckBox;

    Edit2: TEdit;

    Button2: TButton;

    DBGrid1: TDBGrid;

    DBNavigator1: TDBNavigator;

    DataSource1: TDataSource;

    ADOTable1: TADOTable;

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    procedure Button2Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  People: TPeople;

   keyValues:Variant;

  keyFields:string;

   Options:TlocateOptions; 
 

implementation 

{$R *.dfm} 

procedure TPeople.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

CanClose:=MessageDlg('Закончить просмотр?',mtConfirmation,[mbYes,mbNo],0)=Idyes;    //Вывод сообшения о подтверждении перед закрытием формы

end; 

procedure TPeople.Button2Click(Sender: TObject);

begin

if not (checkbox1.Checked or checkbox2.Checked) then begin

     messagedlg ('Не заданы условия поиска!!!',mtconfirmation,[mbok],0); //Если не поставлены галочки напротив checkbox то выдаст сообщение

     exit;

   end;

   if (checkbox1.Checked=true and checkbox2.Checked=true) then begin

     keyFields:='фамилия;ЛичныйНомерРаботника';

     keyValues:=vararrayof([edit1.Text,edit2.Text]);         //Сравнение данных по обоим  полям "фамилия", "ЛичныйНомерРаботника" введенных в Edit1,2 с содержимым БД

   end

   else begin

    if checkbox1.Checked then begin

     keyFields:='Фамилия';

     keyValues:=edit1.Text;                             //Сравнение данных по полям "фамилия" введенных в Edit с содержимым БД

    end;

    if checkbox2.Checked then begin

     keyFields:='ЛичныйНомерРаботника';

     keyValues:=edit2.Text;                              //Сравнение данных по полям "ЛичныйНомерРаботника" введенных в Edit с содержимым БД

    end;

   end;

    options:=[loCaseInsensitive,loPartialKey];

    if not ADOtable1.Locate(keyFields,keyValues,options) then begin

      beep;

      messagedlg('Запись не найдена!!!',mtInformation,[mbok],0);            //Если не найдены записи то выдаст сообщение

      exit;

       end;

end; 

procedure TPeople.BitBtn1Click(Sender: TObject);

begin

DBNavigator1.BtnClick(nbpost);   //Нажатие кнопки Button1 равносильно нажатию на навигатор кнопки "принять"

end; 

end. 

unit Unit3; 

Информация о работе Пропускной пункт предприятия