Автор работы: Пользователь скрыл имя, 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 Главная
форма
Рис. 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 | Сообщение «Не заданы условия поиска» | Вывел сообщение «Не заданы условия поиска» |
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:=
Date:=Now();
Label4.Caption:=DateToStr(
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.
end;
options:=[loCaseInsensitive];
if not ADOtable1.Locate(keyFields,
beep;
messagedlg('Данный логин или
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(
begin
if key=#13 then
Button1.Click;
//нажатие на клавишу enter равно нажатию
клавиши Button1
end;
procedure TGlavnay1.Edit1KeyPress(
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('
end;
procedure TPeople.Button2Click(Sender: TObject);
begin
if not (checkbox1.Checked or checkbox2.Checked) then begin
messagedlg
('Не заданы условия поиска!!!',mtconfirmation,[
exit;
end;
if (checkbox1.Checked=true and checkbox2.Checked=true) then begin
keyFields:='фамилия;
keyValues:=vararrayof([edit1.
end
else begin
if checkbox1.Checked then begin
keyFields:='Фамилия';
keyValues:=edit1.Text;
end;
if checkbox2.Checked then begin
keyFields:='
keyValues:=edit2.Text;
end;
end;
options:=[loCaseInsensitive,
if not ADOtable1.Locate(keyFields,
beep;
messagedlg('Запись не найдена!!!',mtInformation,[
exit;
end;
end;
procedure TPeople.BitBtn1Click(Sender: TObject);
begin
DBNavigator1.BtnClick(nbpost);
end;
end.
unit Unit3;