Проектирование базы данных "Спортивный клуб"

 

1.Описание предметной области и определение цели проектирования информационной системы


Целью данной курсовой работы является проектирование базы данных «Спортивный клуб», предназначенной для хранения информации о спортсменах, состоящих в определенных командах, у каждой команды есть определенный руководитель, определенный стадион, каждая команда участвует в определенных турнирах.

Данная информационная система должна учитывать следующие технологические процессы:

· появление новых спортсменов;

· появление новых команд;

· создание новых стадионов;

· принятие на работу в команду новых тренеров;

· возможность просмотра болельщиками информации о спортсменах, тренерах, командах;

· изменение турниров, в которых принимает участия команда.

Создадим схему, определяющую функционирование предметной области:

Спортивный клуб (Код_руководителя, Ф.И.О._рук, Должность, Дата_рождения_рук, Код_команды, Название, Вид_спорта, Код_тренера, Фамилия_Имя_Тр, Должность_тренера, Дата_Рождения_Тр, Зарплата_тр, Код_спортсмена, Фамилия_Имя_Игр, Дата_рождения_Игр, Гражданство, Игровой_Номер, Позиция, Зарплата_игр, Код_стадиона, Название_стадиона, Вместимость, Код_турнира, Название_турнира, Результат, Год_проведения, Призовые, Код_спонсора, Название_спонсора, Сумма_вложения)

КР - Код_руководителя

ФИОР - Ф.И.О._руководителя

ДОЛ - Должность руководителя

ДРР - Дата_рождения_руководителя

КК - Код_команды

НК - Название команды

ВС - Вид_спорта

КТР - Код_тренера

ФИТ - Фамилия_Имя_Тр

ДТР - Должность_тренера

ДРТ - Дата_Рождения_Тр

ЗТ-Зарплата_тренера

КСПР - Код_спортсмена

ФИИ - Фамилия_Имя_Игр

ДРИ-Дата_рождения_Игр

ГР - Гражданство

ИН- Игровой_Номер

ПОЗ - Позиция

ЗИ-Зарплата_игрока

КСТ - Код_стадиона

НСТ - Название_стадиона

ВМ - Вместимость

КТУ-Код_турнира

НТУ-Название_турнира

РЕЗ-Результат

ГПР-Год_ проведения

ПРИ-Призовые

КСП - Код_спонсора

НСП - Название_спонсора

СВ - Сумма_вложения

Допустим также, что по условиям функционирования ПО справедливы следующие семантические условия и соответствующие им функциональные зависимости между атрибутами:

.Код_руководителя (КР) является уникальной характеристикой руководителя и однозначно определяет Ф.И.О._руководителя (ФИОР), Должность руководителя (Дол), Дата_рождения_руководителя (ДРР)

КР ®ФИОР

КР ® ДОЛ

КР ® ДРР

2.Код_команды (КК) является уникальной характеристикой команды и однозначно определяет Название команды (НК), Вид_спорта (ВС)

КК ® НК

КК ® ВС

3.Код_тренера (КТР) является уникальной характеристикой тренера и однозначно определяет Фамилия_Имя_Тр (ФИТ), Дата_Рождения_Тр (ДРТ), Должность_тренера(ДТР), Зарплата_тр(ЗТ)

КТР ® ФИТ

КТР ® ДРТ

КТР ® ДТР

КТР ® ЗТ

4.Код_спортсмена (КСПР) является уникальной характеристикой игрока и однозначно определяет Фамилия_Имя_Игр (ФИИ), Дата_Рождения_Игр (ДРИ), Гражданство (ГР), Игровой_Номер (ИН), Позиция (ПОЗ), Зарплата_игр(ЗИ)

КСПР ® ФИИ

КСПР ® ДРИ

КСПР ®ГР

КСПР ® ИН

КСПР ® ПОЗ

КСПР ® ЗИ

5.Код_стадиона (КСТ) является уникальной характеристикой стадиона и однозначно определяет Название_стадиона (НСТ), Вместимость (ВМ)

КСТ ® НСТ

КСТ ® ВМ

6.Код_турнира (КТУ) является уникальной характеристикой турнира и однозначно определяет Название_турнира (НТУ), Результат (РЕЗ), Год_ проведения (ГПР)

КТУ ®НТУ

КТУ ®РЕЗ

КТУ ® ГПР

КТУ ® ПРИ

7.Код_спонсора (КСП) является уникальной характеристикой спонсора и однозначно определяет Название_спонсора (НСП)

КСП ® НСП

8.Код_спонсора (КСП), Код_команды (КК) являются уникальными характеристиками вложений и однозначно определяют Сумма_вложения (СВ)


Рис. 1. Схема функциональных зависимостей ПО «Спортивный клуб»


Целью разработки учебной базы данных «Спортивный клуб» является автоматизация профессиональной деятельности работы Спортивного клуба.


2. Анализ предметной области и инфологическое проектирование


.1 Функциональная модель предметной области


Результаты функционального моделирования предметной области учебной базы данных «Спортивный клуб» в терминах модели сущность-связь, выполненной в среде Bpwin приведены на рис. 2.


®

Рис. 2. Пример контекстной диаграммы предметной области «Спортивный клуб»


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


Рис. 4. Пример иерархической диаграммы функций предметной области.


Описание диаграмм декомпозиции сопровождается сводными таблицами (табл. 1 и табл. 2) описанием работ (функций) и стрелок (данных).


Таблица 1. Описание работ

Номер работИмя работОписание работ0Спортивный КлубСпортивный клуб.1Медицинское обслуживаниеОбследование игроков, лечение травм и восстановление после них.11Осмотр игроковОсмотр поступивших в лазарет игроков12Хирургическое вмешательствоЛечение травмы связанное с хирургическим вмешательством13Восстановительный процессПроцесс восстановления после операций или не серьезных травм2Молодежная командаИз молодежной команды можно попасть в основную или продолжить карьеру в другом клубе3Тренировочный процессПодготовка команды к соревнованиям31ВосстановлениеПроцесс восстановления после травмы32Тактическая подготовкаРазбор предыдущих игр и и подготовка к следующим33Физическая подготовкаНалаживание тактических наработок и улучшение физической формы4ТурнирыСоревнования, в которых участвуют команды

Таблица 2. Описание стрелок

Имя стрелкиОписание стрелкиБюджетФинансирование командыВосстановившиеся игрокиИгроки, восстановившиеся после турнираЗдоровые игрокиИгроки, прошедшие мед. обследование, восстановившиеся после травмИгроки покинувшие командуИгроки, которые завершили карьеру или с которыми не продлен контрактИгроки после турнираЗдоровые игроки для подготовки к следующему турнируИгроки пришедшие в командуИгроки, которые пополнили состав команды из молодежного состава или перешли из другой командыЛегкая травмаТравма, не требующая дополнительного леченияМолодые игрокиМолодые игроки, заключившие профессиональный контрактПерсоналПерсонал команды: тренера, мед. персонал.Подготовленные игрокиИгроки готовые принять участие в соревнованияхПосле операцииИгроки, перенесшие операциюРезультатыРезультаты, показанные командойРуководство командыЦели, поставленные команде со стороны руководстваСерьезная травмаТяжёлая травма, требующая дополнительного вмешательстваТеоретически готовые игрокиИгроки, получившие тактическую подготовку.Травмированные игроки после тренировкиИгроки, получившие травму во время тренировки.Травмированные игроки после турнираИгроки, получившие травму во время турнира.

.2 Информационная модель предметной области


Результаты разработки информационной модели предметной области «Спортивный клуб» в терминах модели сущность-связь, выполненной в среде Erwin приведены на рис. 5.


Рис. 5. Пример информационной модели предметной области «Спортивный клуб».


.3. Спецификации сущностей


Таблица 3

Спецификация сущностейИмяОписаниеКомандаИнформация о командеРуководствоИнформация о руководствеСпонсорИнформация о спонсорахСпортсменыИнформация о спортсменахСтадионИнформация о стадионах, на которых играют команды.Тренерский_составТурнирыИнформация о турнирах, в которых участвуют командыФинансированиеПолученные денежные средства о спонсоров.

2.4 Спецификации атрибутов


Таблица 4. Спецификации атрибутов сущностей

Имя сущностиИмя атрибутаОписание атрибутаПервичный ключВнешний ключДоменКомандаКод_командыИндивидуальный идентификатор командыДаНетNUMBERНазваниеНазвание командыНетНетTEXT(50)Вид_спортаВид спорта командыНетНетTEXT(15)Код_стадионаИндивидуальный идентификатор стадионаНетДаNUMBERРуководствоКод_руководителяИндивидуальный идентификатор руководителя командыДаНетNUMBERФ.И.О._рукФамилия Имя Отчество руководителяНетНетTEXT(50)ДолжностьДолжность в клубеНетНетTEXT(15)Дата_рождения_рукДата рождения руководителяНетНетDATEКод_командыИндивидуальный идентификатор командыНетДаINTEGERСпонсорКод_спонсораИндивидуальный идентификатор спонсораДаНетNUMBERНазвание_спонсораНазвание спонсораНетНетTEXT(50)СпортсменыКод_спортсменаИндивидуальный идентификатор спортсменаДаНетNUMBERФамилия_Имя_ИгрФамилия и имя спортсменаНетНетTEXT(50)Дата_рождения_ИгрДата рождения спортсменаНетНетDATEГражданствоГражданство спортсменаНетНетTEXT(30)Игровой_номерИгровой номер спортсменаНетНетNUMBERПозицияПозиция игрокаНетНетTEXT(15)Зарплата_игрЗарплата игрокаНетНетMONEYКод_командыИндивидуальный идентификатор командыНетДаINTEGERСтадионКод_стадионаИндивидуальный идентификатор стадионаДаНетNUMBERНазвание_стадионаНазвание стадионаНетНетTEXT(20)ВместимостьВместимость стадионаНетНетNUMBERТренерский_составКод_тренераИндивидуальный идентификатор тренераДаНетNUMBERФамилия_Имя_ТрФамилия Имя тренераНетНетTEXT(30)Дата_рождения_трДата рождения тренераНетНетDATEДолжность_тренераОбязанности тренераНетНетTEXT()Зарплата_трЗарплата, которую получает тренерНетНетMONEYКод_командыИндивидуальный идентификатор командыНетДаNUMBERТурнирыКод_турнираИндивидуальный идентификатор турнираДаНетNUMBERНазвание_турнираНазвание турнираНетНетTEXT(15)РезультатРезультаты команды в турниреНетНетTEXT(20)Год_проведенияСрок провиденияНетНетDATEПризовыеПризовые деньги, полученные за турнирНетНетMONEYКод_командыИндивидуальный идентификатор командыНетДаNUMBERФинансированиеСумма_вложенияСумма вложения в командуНетНетNUMBERКод_командыИндивидуальный идентификатор командыДаДаNUMBERКод_спонсораИндивидуальный идентификатор спонсораДаДаNUMBER

.5 Спецификация связей


Таблица 5. Спецификации связей в иерархии агрегации

Имя связиИмя связиИмя отцовской сущностиИмя сыновьей сущностиОписание связиТип связиNull внешнего ключаКардинальность связиУчаствуетКомандаТурнирыВ каких турнирах участвуетНе идентифицирующаяNo NullsZero-or-One-to-Zero-One-or-MoreРуководитРуководствоКакой командой руководитНе идентифицирующаяNo NullsOne-to-One-or-More (P)РаботаетТренерский_составВ какой команде работаетИдентифицирующаяNo NullsOne-to-Zero-or-One (Z)Выступает заСпортсменыЗа какую команду выступаетИдентифицирующаяNo NullsOne-to-Zero-or-One (Z)Получает денежные средстваФинансированиеОт каких спонсоров получает деньгиИдентифицирующаяNo NullsOne-to-One-or-More (P)СпонсируетСпонсорКого спонсирует спонсорИдентифицирующаяNo NullsOne-to-Zero-One-or-MoreИграет наСтадионКомандаНа каком стадионе играетНе идентифицирующаяNo NullsOne-to-One-or-More (P)

2.6 Ограничение ссылочной целостности


Таблица 6. Ограничения ссылочной целостности для бинарных связей

Имя связиИмя связиТип связиNull внешнего ключаВставка в отцовскойОбновление в отцовскойУдаление в отцовскойВставка в сыновьейОбновление в сыновьейУдаление в сыновьейУчаствуетНе идентифицирующаяNulls AllowedNone Не влияетCascade КаскадноCascade КаскадноNone Не влияетRestrict ЗапретитьNone Не влияетИграет наНе идентифицирующаяNo NullsNone Не влияетCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьRestrict ЗапретитьNone Не влияетСпонсируетИдентифицирующаяNo NullsNone Не влияетCascade КаскадноCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьRestrict ЗапретитьРаботаетИдентифицирующаяNo NullsCascade КаскадноCascade КаскадноCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьNone Не влияетПолучает денежные средстваИдентифицирующаяNo NullsCascade КаскадноNone Не влияетCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьRestrict ЗапретитьВыступает заИдентифицирующаяNo NullsCascade КаскадноCascade КаскадноCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьNone Не влияетРуководитНе идентифицирующаяNo NullsCascade КаскадноCascade КаскадноCascade КаскадноNone Не влияетRestrict ЗапретитьNone Не влияет


.7 Запросы пользователей


Содержательные запросы на русском языке, которые могут представлять интерес для потенциальных пользователей учебной базы данных «Спортивный клуб»:

1)Вывести информацию обо всех игроках по командам.

SELECT Команда. Название, Спортсмены. Фамилия_Имя_Игр, Спортсмены. Дата_рождения_Игр, Спортсмены. Гражданство, Спортсмены. Игровой_номер, Спортсмены. Позиция, Спортсмены. Зарплата_игр FROM Команда, Спортсмены WHERE (Спортсмены. Код_команды ='+edit1. Text+') and (Команда. Код_команды ='+edit1. Text+')

2)Показать спонсоров команды победительницы турнира.

SELECT название_турнира, год_проведения, Название, вид_спорта FROM Команда, турниры where результат LIKE «Победитель» and Команда.код_команды=турниры. код_команды

3)Поиск тренера по имени.

SELECT * FROM '+ComboBox3.text+' WHERE '+ComboBox4. Text+' LIKE «%'+Edit2. Text+' % ''

4)Показать игрока с максимальной зарплатой.

SELECT Фамилия_имя_игр, Дата_рождения_игр, Гражданство, Игровой_номер, Зарплата_игр, название FROM Спортсмены, Команда where Спортсмены. Код_команды=Команда.код_команды and Зарплата_игр=(select Max (Зарплата_игр) from Спортсмены, Команда where Спортсмены. Код_команды=Команда.код_команды

5)Показать команды которые играют на стадионе.

SELECT Название_стадиона, Вместимость, Название, Вид_спорта FROM Стадион INNER JOIN Команда ON Стадион. Код_стадиона = Команда. Код_стадиона WHERE Стадион. Код_стадиона='+edit8. Text+'


3. Даталогическое проектирование


.1 Даталогическая модель базы данных


Результаты разработки концептуальной даталогической модели базы данных, выполненной в среде ERWin.

СУБД (Access) - ориентированной модели предметной области «Спортивный клуб» приведена на рис. 6.


Рис. 6. СУБД (Access) - ориентированной модели предметной области «Спортивный клуб»


.2 Спецификации таблиц


Таблица 7. Структура реляционных таблиц

Имя таблицыИмя столбцаДоменNull - значениеПервичный ключВнешний ключКомандаКод_командыIntegerNOT NULLYesNoНазваниеText(30)NULLNoNoВид_спортаText(30)NULLNoNoКод_стадионаIntegerNOT NULLNoYesРуководствоКод_руководителяIntegerNOT NULLYesNoКод_командыIntegerNOT NULLNoYesФ.И.О._рукText(30)NULLNoNoДолжностьText(30)NULLNoNoДата_рождения_рукDate/TimeNULLNoNoСпонсорКод_спонсораIntegerNOT NULLYesNoНазвание_спонсораText(30)NULLNoNoСпортсменыКод_спортсменаIntegerNOT NULLYesNoКод_командыIntegerNOT NULLNoYesФамилия_Имя_ИгрText(30)NULLNoNoДата_рождения_ИгрDate/TimeNULLNoNoГражданствоText(30)NULLNoNoИгровой_номерIntegerNULLNoNoПозицияText(30)NULLNoNoЗарплата_игрIntegerNULLNoNoСтадионКод_стадионаIntegerNOT NULLYesNoНазвание_стадионаText(30)NULLNoNoВместимостьIntegerNULLNoNoТренерский_составКод_тренераIntegerNOT NULLYesNoКод_командыIntegerNOT NULLNoYesФамилия_Имя_ТрText(30)NULLNoNoДата_рождения_трDate/TimeNULLNoNoДолжность_тренераText(30)NULLNoNoЗарплата_трIntegerNULLNoNoТурнирыКод_турнираIntegerNOT NULLYesNoНазвание_турнираText(30)NULLNoNoРезультатText(30)NULLNoNoДата_проведенияDate/TimeNULLNoNoКод_командыIntegerNOT NULLNoYesПризовыеIntegerNULLNoNoФинансированиеКод_командыIntegerNOT NULLYesYesКод_спонсораIntegerNOT NULLYesYesСумма_вложенияCurrencyNULLNoNo

Таблица 8. Структура связей между таблицами

Имя связиИмя отцовской таблицыПервичный ключ отцовской таблицыИмя сыновьей таблицыПервичный ключ сыновьей таблицыВнешний ключ сыновьей таблицыNull внешнего ключа сыновьей таблицыСостоит изКомандаКод_командыСпортсменыКод_спортсменаКод_командыNOT NULLОтноситсяСтадионКод_стадионаКомандаКод_командыКод_стадионаNOT NULLПолучает денежные средстваКомандаКод_командыФинансированиеКод_команды Код_спонсораКод_командыNOT NULLТренируетКомандаКод_командыТренерский_составКод_тренераКод_командыNOT NULLРуководитКомандаКод_командыРуководствоКод_руководителяКод_командыNOT NULLСпонсируетСпонсорКод_спонсораФинансированиеКод_командыКод_спонсораNOT NULLУчаствуетКомандаКод_командыТурнирыКод_турнираКод_командыNOT NULL

Таблица 9. Ограничения ссылочной целостности

Имя связиИмя отцовской таблицыИмя сыновьей таблицыВставка в отцовскойОбновление в отцовскойУдаление в отцовскойВставка в сыновьейОбновление в сыновьейУдаление в сыновьейУчаствуетКомандаТурнирыNone Не влияетCascade КаскадноSet Null Установить NullNone Не влияетRestrict ЗапретитьNone Не влияетОтноситсяСтадионКомандаNone Не влияетCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьRestrict ЗапретитьNone Не влияетСпонсируетСпонсорФинансированиеNone Не влияетCascade КаскадноCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьRestrict ЗапретитьТренируетКомандаТренерский_составCascade КаскадноCascade КаскадноCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьNone Не влияетПолучает денежные средстваКомандаФинансированиеCascade КаскадноNone Не влияетCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьRestrict ЗапретитьСостоит изКомандаСпортсменыCascade КаскадноCascade КаскадноCascade КаскадноRestrict ЗапретитьRestrict ЗапретитьNone Не влияетРуководитКомандаРуководствоCascade КаскадноCascade КаскадноCascade КаскадноNone Не влияетRestrict ЗапретитьNone Не влияет

.3 SQL - запросы


1)Вывести информацию обо всех игроках по командам.

SELECT Команда. Название, Спортсмены. Фамилия_Имя_Игр, Спортсмены. Дата_рождения_Игр, Спортсмены. Гражданство, Спортсмены. Игровой_номер, Спортсмены. Позиция, Спортсмены. Зарплата_игр FROM Команда, Спортсмены WHERE (Спортсмены. Код_команды ='+edit1. Text+') and (Команда. Код_команды ='+edit1. Text+')

2)Показать спонсоров команды победительницы турнира.

SELECT название_турнира, год_проведения, Название, вид_спорта FROM Команда, турниры where результат LIKE «Победитель» and Команда.код_команды=турниры. код_команды

3)Поиск тренера по имени.

SELECT * FROM '+ComboBox3.text+' WHERE '+ComboBox4. Text+' LIKE «%'+Edit2. Text+' % ''

4)Показать игрока с максимальной зарплатой.

SELECT Фамилия_имя_игр, Дата_рождения_игр, Гражданство, Игровой_номер, Зарплата_игр, название FROM Спортсмены, Команда where Спортсмены. Код_команды=Команда.код_команды and Зарплата_игр=(select Max (Зарплата_игр) from Спортсмены, Команда where Спортсмены. Код_команды=Команда.код_команды

5)Показать команды которые играют на стадионе.

SELECT Название_стадиона, Вместимость, Название, Вид_спорта FROM Стадион INNER JOIN Команда ON Стадион. Код_стадиона = Команда. Код_стадиона WHERE Стадион. Код_стадиона='+edit8. Text+'


4. Рабочее проектирование


.1 Схема данных


Рабочее проектирование выполнялось в среде Microsoft Access.


Рис. 7. Схема Данных


4.2 Интерфейс конечного пользователя


Рис. 8. Начальный экран выбора таблицы

Рис. 9. Окно работы с БД


.3 Инструкция для пользователя


Для начала работы вы можете выбрать таблицу из предложенных таблиц, или создать Sql-запрос самостоятельно. После открытия окна работы с базой данных можно просмотреть информацию по существующим запросам (Для некоторых потребуется указать дополнительные данные) или написать Sql-запрос самостоятельно. Также можно осуществлять поиск по таблицам. Сортировка осуществляется кликом на название колонки в прямом и обратном порядке. Для завершения работы нажать кнопку «Выход»


Заключение


В ходе работы курсовой работы были пройдены все основные этапы проектирования базы данных, проведен анализ предметной области «Спортивный клуб», составлена инфологическая модель (информационная модель ERWin), составлена даталогическая модель (даталогическая модель ERWin), выполнено рабочее проектирование схемы базы данных и интерфейса конечного пользователя с помощью программы Delphi 7. В ходе инфологического и даталогического анализа были учтены особенности предметной области и составлены спецификации сущностей, атрибутов, связей (для инфологической модели), таблиц, связей (для даталогической модели). Так же был учтен контроль целостности базы данных. В ходе работы проектирования интерфейса с помощью программы Delphi 7 были составлены основные формы и запросы.

В результате выполнения курсовой работы были получены основные навыки анализа заданной предметной области, разработки баз данных, работы с CASE - средствами ERWin, работы с СУБД Microsoft Access и средством проектирования интерфейса пользователя Delphi 7.

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


Список использованной литературы

информационный пользователь база даталогический

1.Марков А.С. Базы данных. Введение в теорию и методологию. М.: Финансы и статистика, 2002 г.

.Мейер Д. Теория реляционных баз данных. М., 1987. 608 с., ил.

.Тихонов А.Ф., Тихонова Л.Н. Visual FoxPro 5.0. М., 1997. 466 с.

.Архангельский А.Я. Программирование в C++ Builder 6 - М: ЗАО «Издательство БИНОМ» 2002 г.

.Архангельский А.Я. Интегрированная среда разработки C++ Builder 5 - М: ЗАО «Издательство БИНОМ», 2000 г.

.Архангельский А.Я. Работа с локальными базами данных в C++ Builder 5 - М: ЗАО «Издательство БИНОМ», 2000 г.

. Архангельский А.Я. Язык SQL в C++ Builder 5 - М: ЗАО «Издательство БИНОМ», 2000 г.

. Казанцев В.В. Применение ADO для работы с БД (C++ Builder). [Электронный ресурс]. Режим доступа: #"justify">10. Наталия Елманова Компьютер-Пресс, 1997, №6, 7. Работа с базами данных в Borland C++ Builder. [Электронный ресурс]. Режим доступа: http:// http://www.xaker.name/forvb/showthread.php? t=9012


1.Описание предметной области и определение цели проектирования информационной системы Целью данной курсовой работы является проектирование базы данных &

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ