Разработка программных средств для актуализации структур баз данных при расчётах и оптимизации трубопроводных систем

Информационно-вычислительный комплекс "Ангара" для компьютерного моделирования трубопроводных систем энергетики. Генерации SQL скрипта структуры базы данных и средства программного доступа. Описание интерфейса пользователя и его режимы генерации.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 09.05.2014
Размер файла 5,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Тогда, издержки на основную заработную плату обслуживающего персонала составят:

Зоснзп = 12*(2500 + 1500) = 48000 руб.

Сумма дополнительной заработной платы составляет 60% от основной заработной платы:

Здопзп = 0.6*48000 = 28800 руб.

Сумма отчислений на социальные нужды составляет 40.5% от суммы дополнительной и основной заработных плат:

Зотчзп = 40.5*(48000 + 28800) = 48240 руб.

Тогда годовые издержки на заработную плату обслуживающего персонала составят:

Ззп = 48000 + 28800 +48240= 125040 руб.

9. Полные затраты на эксплуатацию ЭВМ

Полные затраты на эксплуатацию ЭВМ в течение года составят:

Зэвм = 125040+2612,5+512+209+1045+1045= 130463,5 руб.

Тогда цена часа арендуемого времени составит

Счас = 130463,5 / 1760 = 74 руб.

А затраты на оплату машинного времени составят:

Змвспп = 74 * 99,2 = 7340,8 руб.

10. Расчёт расходов на приобретение программного обеспечения

Таблица 10 Расчет расходов на ПО.

Наименование ПО

Кол-во

Стоимость за единицу

Общая стоимость

1

Borland Delphi

1 шт.

31000 руб.

31000 руб.

2

MS SQL Server 2005

1 шт.

39000 руб.

39000 руб.

Итого: 60000 руб.

ЗПО = 60000 руб.

11. Расчёт общих расходов

Общие расходы это расходы на освещение, отопление, коммунальные услуги и т.п. Они принимаются равными одной трети основой зарплаты разработчика программы т.е. Зобщ = 7333 руб.

Тогда затраты на создание программного продукта составят:

Зспп = 22000 + 7340,8 + 60000 + 7333= 96673,8 руб.

Выводы по разделу:

В результате расчета затраты на разработку программного продукта 96673,8,8 руб. В данном случае трудно определить прямой экономический эффект, но внедрение системы позволит автоматизировать весьма важный процесс ввода данных, вследствие чего экономическая эффективность будет выражена качественными показателями:

· повышение производительности труда;

· улучшения качества ввода;

· снижение требований к персоналу при устройстве на работу.

Заключение

В ходе выполнения данной дипломной работы достигнуты следующие результаты:

1. Выполнен анализ в области ТПС энергетики. Дана краткая характеристика ТПС как объекта моделирования. Рассмотрены задачи моделирования (синтез, анализ, управление), области применения методов моделирования (проектирование ТПС, эксплуатация, диспетчерское управление, исследовательские и обучающие цели применения), а так же информационно вычислительный комплекс "Ангара" для компьютерного моделирования ТПС (назначение, функции, организация БД).

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. Определение категорий помещений, зданий и наружных установок по взрывопожарной и пожарной опасности.

Приложение

Автоматический режим

1.1 Сверка структуру БД

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;

1.2 Перенос структуры БД

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;

1.3 Перенос данных БД

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;

Ручной режим

1.4 Создание таблицы

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;

1.5 Создание 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;

1.6 Создание 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;

1.7 Добавление поля

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;

1.8 Создание отчёта 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–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.

    курсовая работа [1,6 M], добавлен 08.02.2013

  • Проектирование реляционной базы данных с помощью прикладного программного средства MS ACCESS. Описания особенностей использования запросов для извлечения, изменения и удаления информации из базы данных. Характеристика структуры интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.11.2012

  • Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.

    курсовая работа [3,0 M], добавлен 22.12.2014

  • Выбор сервера базы данных, инструментальных средств разработки клиентского интерфейса и технологий. Описание таблиц базы данных системы мониторинга. Разработка инструментальных средств создания элементов системы. Интерфейс генерации тестов. Расчет затрат.

    дипломная работа [1,9 M], добавлен 12.03.2013

  • Выбор состава технических и программных средств разработки системы. Описание входных и выходных данных. Выбор модели базы данных. Разработка подсистемы наполнения базы данных, формирования отчетов. Разработка интерфейса пользователя, тестирование системы.

    курсовая работа [3,7 M], добавлен 04.12.2014

  • Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.

    курсовая работа [1,1 M], добавлен 04.09.2014

  • Составление схемы концептуальной модели данных. Разработка структуры реляционной базы данных и интерфейса пользователя. Особенности главных этапов проектирования базы данных. Способы реализации запросов и отчетов. Специфика руководства пользователя.

    курсовая работа [186,9 K], добавлен 18.12.2010

  • Разработка программного средства, внесение в него отчета, данных о находках, отображение археологических памятников на карте, автоматической генерации отчета по заданному шаблону. Функциональные требования к онлайн–карте. Описание структуры базы данных.

    курсовая работа [2,5 M], добавлен 29.08.2014

  • Проектирование модели базы данных с помощью Erwin: выделение сущностей предметной области и их атрибутов. Разработка SQL-скрипта, предназначенного для генерации базы данных в формате MS SQL Server 2005. Создание процедур и написание проверочных кодов.

    контрольная работа [1,1 M], добавлен 31.03.2012

  • Описание первичных и результатных документов, типа связи информационных объектов. Построение информационно-логической модели базы данных и её реализация в СУБД Access (создание таблиц, запросов, форм, отчётов). Разработка интерфейса пользователя.

    курсовая работа [2,1 M], добавлен 14.11.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.