Разработка программных средств для актуализации структур баз данных при расчетах и оптимизации трубопроводных систем
Информационно вычислительный комплекс "Ангара" для компьютерного моделирования. Основные системно-концептуальные соглашения. Описание интерфейса пользователя и его режимы генерации. Порядок переноса данных. Режимы генерации структуры базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 12.03.2013 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2. Для каждого из типов ТПС разрабатывается соответствующее программное обеспечение для проектирования, расчёта, оптимизации режимов и др. Так же постоянно появляются новые технические средства контроля и управления режимами ТПС, что открывает новые возможности. Всё это приводит к необходимости постоянной модификации БД, появлению новых таблиц, атрибутов, связей. Для повышения эффективности применения методов математического моделирования требуется разработка соответствующих программных средств. Одной из задач, возникающих при разработке и использовании программ, является автоматизация процессов актуализации БД.
3. Выполнен анализ существующих подходов для обновления структуры пространственно распределённых БД. Рассмотрены существующие технологии.
4. В разных СУБД реализация функциональных возможностей различна. Существует много технологий для обновления структуры баз данных.
Наиболее подходящей СУБД для решения данной задачи является Microsoft SQL Server. Для манипуляции с данными, используется язык SQL. SQL обеспечивает независимость от конкретных СУБД, что является одной из наиболее важной причиной его выбора, также язык SQL является простым и лёгким для изучения. В подавляющем большинстве современных СУБД метаданные определяются с помощью языка SQL (Structured Query Language). В реализованной программе для доступа к данным применяется ADO. С помощью ADO можно получить доступ к данным, но нельзя считывать структуру БД. Для этого, применяется ADOX с помощью которого, можно решать различные задачи, недоступные с помощью обычных объектов ADO. SQL Script дополняет и создаёт БД.
5. Произведено обоснование выбора инструментальных средств, рассмот рена характеристика реализации. Разработана программа для автоматизации обновления структуры баз данных программного обеспечения ТПС. Назначение программы состоит в том, что бы максимально освободить пользователя от необходимости знания программирования и теории систем БД, а также позволяет решать конкретные задачи в области расчёта и оптимизации ТПС. Обновлять структуру БД, а также данные.
Список литературы
1. Громов Н. К. Городские теплофикационные системы. М. :Энергия, 1974.
2. Сафонов А. П. Автоматизация систем централизованного теплоснабжения. -М., 1974.
3. Соколов Е. Я. Теплофикация и тепловые сети, 4 изд. - М., 1975.
4. Зингер И. М. Гидравлические и тепловые режимы теплофикационных систем. -М.: Энергия, 1976.
5. Чистович С.А., Аверьянов В.К., Темпель Ю.Я. и др. Автоматизированные системы теплоснабжения и отопления. Л.: Стройиздат., 1987.
6. Горская Н. И. Автоматизация выявления повреждений в тепловых сетях. - Новосибирск: Наука, 1987.
7. Сеннова Е. В., Сидлер В. Г. Математическое моделирование и оптимизация развивающихся теплоснабжающих систем. - Новосибирск: Наука, 1987.
8. Сеннова Е.В. Оптимизация развития и реконструкции теплоснабжающих систем. - Новосибирск: Наука, 1987.
9. Меренков А. П., Сеннова Е. В., Сумароков С. В. и др. Математическое моделирование и оптимизация систем тепло-, водо-, нефте- и газоснабжения. - Новосибирск: ВО Наука, 1992.
10. Разработка и развитие методических основ и алгоритмической базы для комплексного решения задач управления функционированием современных трубопроводных систем энергетики. Отчет о комплексной научно-исследовательской работе; руководитель А. П. Меренков, ответственный исполнитель Н. Н. Новицкий. Иркутск: ИСЭМ СО РАН, 1993.
11. Сеннова Е. В., Каганович Б. М., Ощепкова Т. Б. Исследование надежности при оценке различных принципов построения теплофикационных систем// Методические вопросы исследования надежности больших систем энергетики. -1975.
12. Разработать научно-методические материалы по разработке ТЗ на АСУТП систем теплоснабжения. Научный отчет. М.: ВНИПИЭнергопром, 1988.
13. О разработке основных положений по управлению функционированием систем централизованного теплоснабжения крупных городов. Научный отчет. -Новосибирск: Сибтехэнерго, 1986.
14. Сидлер В. Г. Линейная и нелинейная модели для оценивания параметров гидравлических сетей. - Иркутск: ИСЭМ СО РАН, 1977.
15. Сидлер В. Г., Новицкий Н. Н. Идентификация трубопроводных систем как гидравлических цепей с переменными параметрами. - Иркутск: ИСЭМ СО РАН, 1984.
16. Гарсия-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс: Пер. с англ. - М.: Вильяме, 2003. - 1088 с.
17. Дейт К. Введение с системы баз данных. Шестое издание. Киев: Диалектика, 1998. - 784 с.
18. Мартин Дж. Организация баз данных в вычислительных системах. - М.: Мир, 1980. - 662 с.
19. Массель Л.В., Болдырев Е.А., Горнов А.Ю. Интеграция информационных технологий в системных исследованиях энергетики. - Новосибирск: Наука, 2003. - 320 с.
20. Харриштон Д. Проектирование объектно-ориентированных баз данных: Пер. с англ. - М.: ДКМ Пресс, 2001. - 272 с.
21. http://www.intersystems.ru
22. Сборник научных трудов института проблем моделирования в энергетике им. Г.Е. Пухова. Информационные технологии в энергетике. - Киев: Диалектика, 2004. - 105 с.
23. Урман Ск. Огас1е9i. Программирование на языке PL/SQL. Пер. с англ. -М.: Лори, 2004. - 528 с.
24. Луни К., Терьо М. Огас1е9i. Настольная книга администратора: Пер. с англ. - М.: Лори, 2003. - 766 с.
25. Эбби М., Кори М., Абрамсон И. Первое знакомство: Основы баз данных Огас1е9i: Пер. с англ.--М.:Вилъямс, 2003. -518с.
26. Пирогов В. MS SQL Server 2000: управление и программирование. Спб.: БХВ-Петербург, 2005,- 598 с,
27. Гарсиа М., Рединг Дж., Уолен Э., ДеЛюк С, Microsoft SQL Server 2000. Справочник администратора. - Спб.: СП ЭКОМ, 2004. -976 с.
28. Мамаев Е. Microsoft SQL Server 2000. Наиболее полное руководство. -Спб.: БХВ-Петербург, 2004, - 1280 с.
29. Бавдик Н.В. Электромагнитная безопасность человека. -Иркутск: Изд-во ИрГТУ. - 2002. -92 с.
30. СанПиН 2.2.4.548-96. Гигиенические требования к микроклимату производственных помещений.
31. ГОСТ 12.1.005-88 ССБТ. Воздух рабочей зоны. Общие санитарно-гигиенические требования.
32. СанПиН 2.2.1/2.1.1.1278-03. Естественное и искусственное освещение.
33. СН 2.2.4/2.1.8.562-96. Шум на рабочих местах в помещениях жилых общественных зданий и на территории жилой застройки.
34. СанПиН 2.2.2/2.5.1340-03. Гигиенические требования к персональным электронно-вычислительным машинам и организация работ.
35. СанПиН 2.2.2.542-96. Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организация работы.
36. ГОСТ 12.1.038-82 ССБТ. Электробезопасность. Общие требования безопасности.
37. НПБ 105-03. Определение категорий помещений, зданий и наружных установок по взрывопожарной и пожарной опасности.
Приложение
Автоматический режим
Сверка структуру БД
procedure TFDiplomADOX.BCheckStrucClick(Sender: TObject);
var
i,j,IZcount,Vcount,IZlevel:integer;
IZtext,Vtext:string;
begin
LockWindowUpdate(PM.Handle);
Screen.Cursor:= crHourGlass;
TVIZ.Items.BeginUpdate;
TVIZ.FullExpand;
TVV.FullExpand;
IZcount:=TVIZ.Items.Count;
Vcount:=TVV.Items.Count;
i:=IZcount-1;
if (IZcount > 1) and (Vcount > 1) then
begin while i <> 1 do
begin TVIZ.Items.Item[i].Selected:=true;
IZtext:=TVIZ.Items.Item[i].Text;
IZlevel:=TVIZ.Items.Item[i].Level;
j:=Vcount-1;
while j <> 1 do
begin TVV.Items.Item[j].Selected:=true;
Vtext:=TVV.Items.Item[j].Text;
if (IZlevel = 4) and (GetStrItemsName(IZtext) = Vtext) then
begin
TVIZ.Items.Item[i].Delete;
break; end; dec(j); end; dec(i); end; end;
IZcount:=TVIZ.Items.Count;
Vcount:=TVV.Items.Count;
i:=IZcount-1;
if (IZcount > 1) and (Vcount > 1) then
begin while i <> 1 do
begin
TVIZ.Items.Item[i].Selected:=true;
IZtext:=TVIZ.Items.Item[i].Text;
IZlevel:=TVIZ.Items.Item[i].Level;
j:=Vcount-1;
while j <> 1 do
begin
TVV.Items.Item[j].Selected:=true;
Vtext:=TVV.Items.Item[j].Text;
if (IZlevel = 3) and ((IZtext = 'Columns') or (IZtext = 'Keys')) and (not TVIZ.Items.Item[i].HasChildren) then
begin
TVIZ.Items.Item[i].Delete;
break; end; dec(j); end; dec(i); end; end;
IZcount:=TVIZ.Items.Count;
Vcount:=TVV.Items.Count;
i:=IZcount-1;
if (IZcount > 1) and (Vcount > 1) then
begin while i <> 1 do
begin
TVIZ.Items.Item[i].Selected:=true;
IZtext:=TVIZ.Items.Item[i].Text;
IZlevel:=TVIZ.Items.Item[i].Level;
j:=Vcount-1;
while j <> 1 do
begin
TVV.Items.Item[j].Selected:=true;
Vtext:=TVV.Items.Item[j].Text;
if (IZlevel = 2) and GetStrTable(IZtext) and (not TVIZ.Items.Item[i].HasChildren) then
begin
TVIZ.Items.Item[i].Delete;
break; end; dec(j); end; dec(i); end; end;
IZcount:=TVIZ.Items.Count;
TVIZ.Items.Item[1].Selected:=true;
TVIZ.Items.EndUpdate;
LockWindowUpdate(0);
Screen.Cursor:= crDefault;
if IZcount <= 2
then begin Struc:=true;
if not check
then application.MessageBox('Различий в структурах БД не обнаружено','Внимание',MB_OK+MB_ICONINFORMATION)
else
begin
application.MessageBox('Структура БД перенесена успешно, Различий в структурах БД не обнаружено','Внимание',MB_OK+MB_ICONINFORMATION);
check := false; end; end
else begin
Struc:=true; end; end;
Перенос структуры БД
procedure TFDiplomADOX.BGenerateStrucClick(Sender: TObject);
var
count,i,j:integer;
text:string;
begin
FOptions.ShowModal;
if (st >= 0) and (fin >= 0) then
begin
FLAGC:=FAlSE;
LockWindowUpdate(TVIZ.Handle);
Screen.Cursor:= crHourGlass;
count:=TVIZ.Items.Count;
for i := st to fin do
begin
for j := 1 to Count - 1 do
begin
TVIZ.Items.Item[j].Selected:=true;
text:=TVIZ.Items.Item[j].Text;
if GetStrTable(text) then
begin
if (i = 0) and (not FLAGC) then BCreateTClick(Sender);
if (i = 1) and (not FLAGC) then BAlterTPKClick(Sender);
if (i = 2) and (not FLAGC) then BAlterTFKClick(Sender);
end;
end;
end;
TVIZ.FullCollapse;
if TVIZ.Items.Count > 2 then
TVIZ.Items.Item[2].MakeVisible else
TVIZ.Items.Item[1].MakeVisible;
FLAG:=TRUE;
M.Lines.SaveToFile('SQLReport.sql');
M.Lines.Clear;
MenuConnect2Click(Sender);
LockWindowUpdate(0);
Screen.Cursor:= crDefault;
Check:=true;
if TVIZ.Items.Count < 1000 then
BCheckStrucClick(Sender);
end;
end;
Перенос данных БД
procedure TFDiplomADOX.BReportDataClick(Sender: TObject);
begin
if FileExists('MsExport.exe')
then winexec(pchar('MsExport.exe'),1)
else application.MessageBox('Файл "\MsExport.exe" не найден','Ошибка',MB_OK+MB_ICONERROR);
end;
procedure TFDiplomADOX.ExecSQLClick(Sender: TObject);
begin
CatalogD := CoCatalog.Create;
if FileExists(pDS)
then E0.Text:='OK'
else CatalogD.Create(DS);
Con.Close;
Con.ConnectionString:=DS;
Con.Open;
M.Lines.Add(E.Text);
Q.SQL.Text:=E.Text;
Q.ExecSQL();
Q.Close;
LMess.Caption:='';
E.Clear;
end;
Ручной режим
Создание таблицы
procedure TFDiplomADOX.BCreateTClick(Sender: TObject);
var
count,ai,ailc,i:integer;
Field:boolean;
begin
i:=1;
Gen:=1;
count:=TVIZ.Items.Count;
if (count <=2) or (TVIZ.Selected.Level <> 2) then
begin
application.MessageBox('Выберите в дереве (слева) название таблицы которую хотите создать','Ошибка',MB_OK+MB_ICONERROR);
exit;
end;
TVIZClickAll(tviz);
count:=TVIZ.Items.Count;
ai:=TVIZ.Selected.AbsoluteIndex;
ailc:=TVIZ.Items.Item[ai].GetLastChild.AbsoluteIndex;
TVIZ.Items.Item[ailc+i].Selected:=true;
while TVIZ.Selected.Parent.Text = 'Columns' do
begin
TVIZClickAll(tviz);
inc(i);
Field:=true;
if ailc+i <> count
then TVIZ.Items.Item[ailc+i].Selected:=true
else break;
end;
if Field then
begin
ExecSQLClick(Sender);
Field:=false;
end
else e.Text := 'Нет полей!';
if FLAGC then MenuConnect2Click(Sender);
TVIZ.Items.Item[ai].Selected:=true;
TVIZ.SetFocus;
end;
Создание Primary Keys
procedure TFDiplomADOX.BAlterTPKClick(Sender: TObject);
var
count,ai,aifc,i:integer;
text:string;
PK:boolean;
begin
i:=1; Gen:=2;
count:=TVIZ.Items.Count;
if (count <=2) or (TVIZ.Selected.Level <> 2) then
begin
application.MessageBox('Выберите в дереве (слева) название таблицы в которой есть PK','Ошибка',MB_OK+MB_ICONERROR);
LMess.Caption:='Внимание! PK может быть создан только после создания всех таблиц (с полями)';
exit; end;
TVIZClickAll(tviz);
ai:=TVIZ.Selected.AbsoluteIndex;
aifc:=TVIZ.Items.Item[ai].getFirstChild.AbsoluteIndex;
TVIZ.Items.Item[aifc+i].Selected:=true;
while (TVIZ.Selected.Parent.Text = 'Keys') do
begin Text:=TVIZ.Selected.Text;
if (GetStrPK_Keys(Text) = 1) then
begin
TVIZClickAll(tviz);
PK:=TRUE;
end;
inc(i);
if aifc+i <> count
then TVIZ.Items.Item[aifc+i].Selected:=true
else break;
end;
if PK then
begin
ExecSQLClick(Sender);
PK:=false;
end
else e.Text := 'Нет идентификационных ключей!';
if FLAGC then MenuConnect2Click(Sender);
TVIZ.Items.Item[ai].Selected:=true;
TVIZ.SetFocus; end;
Создание Foreign Keys
procedure TFDiplomADOX.BAlterTFKClick(Sender: TObject);
var
count,ai,aifc,i:integer;
text:string;
FK:boolean;
begin
i:=1;
Gen:=2;
count:=TVIZ.Items.Count;
if (count <=2) or (TVIZ.Selected.Level <> 2) then
begin
application.MessageBox('Выберите в дереве (слева) название таблицы в которой FK','Ошибка',MB_OK+MB_ICONERROR);
LMess.Caption:='FK может быть создан только после создания всех таблиц (с полями) и PK';
exit;
end;
TVIZClickAll(tviz);
ai:=TVIZ.Selected.AbsoluteIndex;
aifc:=TVIZ.Items.Item[ai].getFirstChild.AbsoluteIndex;
TVIZ.Items.Item[aifc+i].Selected:=true;
while (TVIZ.Selected.Parent.Text = 'Keys') do
begin
Text:=TVIZ.Selected.Text;
if (GetStrFK_Keys(Text) = 2) then
begin
TVIZClickAll(tviz);
FK:=TRUE;
end; inc(i);
if aifc+i <> count
then TVIZ.Items.Item[aifc+i].Selected:=true
else break; end;
if FK then
begin
ExecSQLClick(Sender);
FK:=false;
End else e.Text := 'Нет внешних ключей!';
if FLAGC then MenuConnect2Click(Sender);
TVIZ.Items.Item[ai].Selected:=true;
TVIZ.SetFocus; end;
Добавление поля
procedure TFDiplomADOX.BAlterColClick(Sender: TObject);
var
count,ai,aifc,i:integer;
Col:boolean;
begin
i:=1;
Gen:=3;
count:=TVIZ.Items.Count;
if not Struc then
begin
LMess.Caption:='Поле может быть создано только после сверки структур БД';
exit;
end;
if (count <=2) or (TVIZ.Selected.Level <> 2) then
begin
application.MessageBox('Выберите в дереве (слева) название таблицы в которой есть поле для создания','Ошибка',MB_OK+MB_ICONERROR);
exit; end;
TVIZClickAll(tviz);
ai:=TVIZ.Selected.AbsoluteIndex;
aifc:=TVIZ.Items.Item[ai].getLastChild.AbsoluteIndex;
TVIZ.Items.Item[aifc+i].Selected:=true;
while (TVIZ.Selected.Parent.Text = 'Columns') do
begin
TVIZClickAll(tviz);
inc(i);
Col:=TRUE;
if aifc+i <> count
then TVIZ.Items.Item[aifc+i].Selected:=true
else break;
end;
if Col then
begin
ExecSQLClick(Sender);
Col:=false;
end
else e.Text := 'Нет дополнительных полей!';
if FLAGC then MenuConnect2Click(Sender);
TVIZ.Items.Item[ai].Selected:=true;
TVIZ.SetFocus; end;
Создание отчёта SQL
procedure TFDiplomADOX.BCreateRClick(Sender: TObject);
begin
if M.Lines.Count > 0 then
M.Lines.SaveToFile('SQLReport.sql');
if FileExists('SQLReport.sql') then
begin
FSQLReport.MRep.Clear;
FSQLReport.Caption:='SQLReport.sql';
FSQLReport.MRep.Lines.LoadFromFile('SQLReport.sql');
FSQLReport.ShowModal;
end;
end;
Размещено на Allbest.ru
...Подобные документы
Информационно-вычислительный комплекс "Ангара" для компьютерного моделирования трубопроводных систем энергетики. Генерации SQL скрипта структуры базы данных и средства программного доступа. Описание интерфейса пользователя и его режимы генерации.
дипломная работа [5,0 M], добавлен 09.05.2014Составление схемы концептуальной модели данных. Разработка структуры реляционной базы данных и интерфейса пользователя. Особенности главных этапов проектирования базы данных. Способы реализации запросов и отчетов. Специфика руководства пользователя.
курсовая работа [186,9 K], добавлен 18.12.2010Выбор состава технических и программных средств разработки системы. Описание входных и выходных данных. Выбор модели базы данных. Разработка подсистемы наполнения базы данных, формирования отчетов. Разработка интерфейса пользователя, тестирование системы.
курсовая работа [3,7 M], добавлен 04.12.2014Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.
курсовая работа [3,0 M], добавлен 22.12.2014Выбор сервера базы данных, инструментальных средств разработки клиентского интерфейса и технологий. Описание таблиц базы данных системы мониторинга. Разработка инструментальных средств создания элементов системы. Интерфейс генерации тестов. Расчет затрат.
дипломная работа [1,9 M], добавлен 12.03.2013Описание первичных и результатных документов, типа связи информационных объектов. Построение информационно-логической модели базы данных и её реализация в СУБД Access (создание таблиц, запросов, форм, отчётов). Разработка интерфейса пользователя.
курсовая работа [2,1 M], добавлен 14.11.2013Выбор программных и аппаратных средств для создания базы данных. Описание структуры программы. Описание разработки приложения. Подключение к базе данных, выполняемое с помощью компонента ADOConnectio. Создание средств защиты информации в программе.
курсовая работа [2,1 M], добавлен 16.02.2015Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.
курсовая работа [1,6 M], добавлен 08.02.2013Автоматизация промежуточного и финального контроля результатов обучения учащихся различных учебных заведений. Тестирование, основанное на диалоге вычислительной системы с пользователем. Реализация приложения генерации тестов из базы данных на языке РНР.
курсовая работа [234,1 K], добавлен 04.08.2009Возможности извлечения информации из баз данных. Программы для создания и обработки базы данных и создания пользовательского интерфейса. Обоснование выбора программных средств для реализации. Создание базы данных, интерфейса и базы данных к интерфейсу.
курсовая работа [2,9 M], добавлен 24.03.2023- Создание базы данных автомобилестроительного предприятия в виде настольного приложения на языке Java
Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.
курсовая работа [2,3 M], добавлен 16.12.2013 Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.
курсовая работа [1,1 M], добавлен 04.09.2014Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012Разработка web-интерфейса, позволяющего работать с базой данных: внесение в неё отчета, данных о находках, отображение археологических памятников на карте, автоматической генерации отчета по заданному шаблону. Характеристика программных сред и средств.
дипломная работа [4,4 M], добавлен 23.09.2014Проектирование реляционной базы данных с помощью прикладного программного средства MS ACCESS. Описания особенностей использования запросов для извлечения, изменения и удаления информации из базы данных. Характеристика структуры интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.11.2012Разработка структуры базы данных. Этапы разработки информационной системы. Моделирование сигналов в MatLab. Обмен данными в SQL-сервером. Генерация схемы базы данных для целевой СУБД. Редактирование параметров таблицы. Установка параметров генерации.
курсовая работа [5,3 M], добавлен 01.02.2013Разработка информационно-логической схемы базы данных для горнолыжного курорта. Выделение объектов и информационных процессов в данной области. Реляционная модель базы данных. Разработка интерфейса пользователя. Создание форм, отчетов и запросов.
курсовая работа [4,3 M], добавлен 17.03.2014Описание использованных структур данных и разработка программы, обеспечивающей сжатие данных по алгоритму LZ77 с пошаговой визуализацией. Описание процедур, функций, структуры приложения и интерфейса пользователя. Тест и анализ работы алгоритма LZ77.
курсовая работа [537,9 K], добавлен 28.06.2011Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Сущность и особенности программирования баз данных Microsoft SQL Server 2005. Основные формы поддержания целостности базы данных. Описание интерфейса пользователя. Формирование выходной документации и входных форм. Пользователи и понятие права доступа.
курсовая работа [1,6 M], добавлен 30.11.2008