Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 19:57   #1
gblpokoJl
Новичок
Джуниор
 
Регистрация: 29.11.2011
Сообщений: 2
По умолчанию РЕАЛИЗАЦИЯ ДИСКРЕЦИОННОЙ МОДЕЛИ ПОЛИТИКИ БЕЗОПАСНОСТИ

народ, подскажите пожалуйста простейшую модель матрицы прав доступа, в которой будут пользователи объект и действия над объектами, просто даже не знаю с чего начать, заранее Спасибо
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm;
implementation

procedure TForm1.Button1Click(Sender: TObject);
type ORights=set of (RRead,RWrite,RPer);
const AllRights: ORights=[RRead,RWrite,RPer];
var
Rights: array [1..6,1..9] of ORights;
user: array [1..9] of string[20];
i,j,vibor: byte;
Komanda,s: string[20];
Right: ORights;
begin
user[1]:='Ivan';
user[2]:='Sergey';
user[3]:='Boris';
user[4]:='Vasya';
user[5]:='BatMan';
user[6]:='Flash';
user[7]:='Babaika';
user[8]:='Bober';
user[9]:='YObana';
randomize;
if edit1.Text='выйти' then form1.close;
for i := 1 to 9 do
if edit1.Text=user[i] then
s:='Объект'+inttostr(i)+':';
vibor:=i;
for i := 1 to 6 do
begin
Rights[i,1]:=AllRights;
for j := 2 to 9 do
begin
rights[i,j]:=[];
if random(2)=1 then Rights[i,j]:=Rights[i,j]+[RRead];
if random(2)=1 then Rights[i,j]:=Rights[i,j]+[RWrite];
if random(2)=1 then Rights[i,j]:=Rights[i,j]+[RPer];
end;
end;
if rights[i,vibor]=[] then edit2.Text:=s+'Запрет любого доступа'
else
if rights[i,vibor]=allrights then edit2.Text:=s+'Полные права'
else
if rread in rights[i,vibor] then edit2.Text:=s+'Чтение онли';
if rwrite in rights[i,vibor] then edit2.Text:=s+'чтение и запись';
if rper in rights[i,vibor] then edit2.Text:=s+'Ты всемогущь ёмана';



end;




procedure TForm1.Edit1Change(Sender: TObject);
begin

end;


{$R *.dfm}
end.
вот код, запускается нормально, но при вводе данных выдаёт такую вот ошибку"Access violation at address 00454 in module Project1.exe. Read of address 07060669

Ошибку нашёл и исправил. Программа работает. Осталось немного откорректировать

Последний раз редактировалось gblpokoJl; 29.11.2011 в 23:55. Причина: Разобрался сам
gblpokoJl вне форума Ответить с цитированием
Старый 30.11.2011, 11:09   #2
Lopatka
Новичок
Джуниор
 
Регистрация: 30.11.2011
Сообщений: 1
Восклицание

оххх!! как раз то, что мне нужно!! Скиньте пожалуйста исходники, преподаватель задал мне эту программу на зачёт! если я её сдам, я получу зачёт, если не покажу её, он не допустит меня к экзаменам!!
Lopatka вне форума Ответить с цитированием
Старый 18.12.2013, 21:02   #3
Иван12354
 
Регистрация: 25.10.2013
Сообщений: 5
По умолчанию

люди а у кого есть исходники этой программы. скиньте пожалуйста на почту vadyt@yandex.ru
Иван12354 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По безопасности smar2011 PHP 3 16.07.2011 21:47
Реализация модели страничного распределения памяти felis_pardus Помощь студентам 6 16.11.2008 13:46
Реализация модели эволюции клетки. Параллельное программирование на языке с. Заноза Помощь студентам 4 03.04.2008 22:13