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

 

Введение


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

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

Это проявляется во введении Единого Государственного Экзамена (ЕГЭ), замене экзаменов и даже зачётов в ВУЗах в устной форме на тест.

Целью данного курсового проекта является разработка приложения для контроля знаний студентов, программ-тестов, созданных с помощью пакета прикладных программ Microsoft Office.

Задачами курсового проекта является разработка программ-тестов, которые будут содержать тесты по разделам:

·система прерываний;

·управление памятью;

·ввод-вывод информации в ЭВМ.

Программирование приложения программы-теста будет осуществляться с помощью языка программирования Visual Basic for Applications, встроенного в пакет Microsoft Office.


1.Анализ задания и обзор литературы

приложение программа прикладной

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

Общеизвестно, что дидактические приемы, основанные на сравнении результатов усвоения знаний, а также выполненных заданий, например, с образцом дают наглядное представление о том, на сколько каждый испытуемый владеет необходимыми знаниями и навыками. Более того, они позволяют объективно и индивидуально оценивать студентов по уровню их знаний отдельных дисциплин и даже отдельных тем дисциплин, что, несомненно, способствует не только совершенствованию учебного процесса, но и эффективности обучения. Поэтому в вузах широко внедряются как традиционные, так и компьютерные системы контроля знаний (тестирования) различных форм и видов обучения.

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

Полученные в результате тестирования данные позволяют преподавателям ранжировать обучаемых по уровню знаний и умений (сравнивать результаты одних обучаемых с аналогичными результатами других обучаемых), эффективно совершенствовать задания и методы обучения, поскольку получаемые данные способствуют раскрытию наиболее сильных и слабых сторон обучаемых, а также предлагаемых им заданий.

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

) Компьютерная версия тестирования экономит много времени. Задача тестируемого - просто нажимать клавишу, соответствующую выбранному ответу. Полученные данные автоматически подсчитываются, обрабатываются, оцениваются и интерпретируются.

) Экономятся силы тестирующего - ему не приходится заниматься весьма утомительной рутинной работой (инструктаж тестируемого, выдача заданий, ведение протокола, подсчет и обработка результатов).

) Появляется возможность накопления и сохранения электронной базы данных. Унифицированная база данных удобна для анализа и заменяет собой огромные кипы экспериментальных бланков, отчетов и заключений.

) При использовании стандартизованной компьютерной программы условия проведения тестирования не зависят от индивидуальных особенностей и психологического состояния экспериментатора, что, несомненно, повышает «чистоту» диагностической процедуры.

) При компьютерном тестировании обследуемый, оставаясь один на один с компьютером, может позволить себе быть более откровенным и естественным.

) Наконец, отпадает, самая рутинная часть работы - заготовка бланков, обеспечение методическим материалом и т.п., так как вся методика представлена в виде компьютерной программы.

Достоинств у компьютерного тестирования немало. Благодаря им повышается качество и снижается стоимость психологической диагностики. Но наряду с преимуществами у компьютерных методов есть и свои недостатки.

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

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

Но достоинств у компьютерного тестирования все-таки больше. Кроме того, практически все перечисленные недостатки поддаются контролю.

Можно с уверенностью предположить, что у компьютерного тестирования большое будущее. С каждым годом будут появляться все новые и новые компьютерные тесты. Значит ли это, что когда-нибудь необходимость участия психолога в процессе тестирования вообще отпадет? Подобное вряд ли возможно, ведь использование компьютера совсем не уменьшает роль человеческого фактора. Компьютерная программа выдает только обобщенные, унифицированные данные, которые необходимо правильно «прочитать» и проанализировать.

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

)создаваемая программа-тест, должна иметь приятный интерфейс;

)вопросы должны быть корректно сформулированы;

)результаты выдаются сразу по окончании тестирования, с комментариями;

)проводиться регистрация участников тестирования и сохранения данных, для дальнейшей обработки.

Компьютер снижает трудоемкость тестирования, экономит время, позволяя преподавателю более эффективно и творчески решать профессиональные задачи.

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


2.Конструкторско-технологический раздел


.1 Разработка требований к проекту


Задачей курсового проекта является разработка приложения для контроля знаний по разделам «Система прерываний, управление памятью, ввод-вывод информации в ЭВМ».

Программирование приложения программы-теста будет осуществляться с помощью языка программирования Visual Basic for Applications, встроенного в пакет Microsoft Office.

Задачи для реализации:

)Подготовить вопросы по заданным разделам;

)Разработать интерфейс приложения;

)Создать формы для тестирования;

)Программа должна осуществлять контроль участников;

)Сделать привилегированный доступ к данным регистрации (только преподавателям).

Основной задачей программы-теста является контроля знаний студентов по разделам: система прерываний, управление памятью, ввод-вывод информации в ЭВМ».


2.2 Выбор инструментальных средств


Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word for Windows, Power Point и ряд других. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость.

Visual Basic for Applications (VBA)

Программирование в Excel, в основном, сводится к управлению объектами. Эта задача выполняется с помощью инструкций, введённых на языке, понятном Excel.

Visual Basic For Application (далее VBA) - немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS), а так же во многие другие программные пакеты, такие как AutoCAD, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic.является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic, но может выполняться лишь в рамках приложения, в которое он встроен. Кроме того, он может использоваться для управления одним приложением из другого, с помощью OLE Automation (например, таким образом можно создать документ Word на основе данных из Excel). В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) - инструментарий расширения функциональности приложений, основанный на Microsoft.NET. [6]

VBA в настоящее время входит в состав всех приложений Microsoft Office и даже приложений других компаний. Следовательно, овладев VBA для Excel, можно сразу перейти к созданию макросов для других программных продуктов Microsoft (равно, как и приложений других компаний). Более того, можно создавать полноценные программные продукты, одновременно использующие функции самых разных приложений.

2.3 Разработка пользовательского интерфейса программного продукта


Пользовательский интерфейс - это система средств для взаимодействия пользователя с компьютером, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, значков, меню, кнопок, списков и т.п.). При этом, в отличие от интерфейса командной строки, пользователь имеет произвольный доступ (с помощью клавиатуры или указательного устройства ввода) ко всем видимым экранным объектам, а на экране реализуется модель мира в соответствии с некоторой метафорой и осуществляется прямое манипулирование.

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

Интерфейс программы-теста состоит из главного окна, созданного в Microsoft Office Excel, форм для тестов и формы результата. Так же приложение содержит лист регистрации, для получения доступа к которому требуется ввести секретный код.


Рис. 1. Главное окно программы

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

Поля регистрации состоят из нескольких элементов:

·TextBox;

·CommandButton;

·Элемент управления «Группа».

После успешной регистрации нового пользователя выдается сообщение:


Рис. 2. Пример сообщения пользователю


И пользователь может начать тестирование, после регистрации тесты становятся доступными:


Рис. 3. Главное окно приложения

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

Private Sub CommandButton1_Click()

'условие проверки ввода данных(TextBox1. Text <> «») And (TextBox2. Text <> «») And (TextBox3. Text <> «») Then

Второй этап - проверка данных участника тестирования. Проверяются данный полей регистрации с таблицей регистрации, если такая запись уже существует, то тестирующемуся выдаются только те тесты которые он еще не походил. Если подобной записи нет, то добавляется новая запись, и выдается сообщение о успешной регистрации.

'проверка данных регистрирующихсяWhile (Sheets («Regist»).Cells (i, 2).Value) <> «»(Sheets («Regist»).Cells (i, 2).Value = TextBox1. Text) And (Sheets («Regist»).Cells (i, 3).Value = TextBox2. Text) And (Sheets («Regist»).Cells (i, 4).Value = TextBox3. Text) Then= True= iIf= i + 1

'добавление данных нового регистрирующегося

If s = False Then

n = Sheets («Regist»).Cells (2, 14).Value= n + 1= TextBox1. Text= TextBox2. Text= TextBox3. Text(«Regist»).Cells (n, 1).Value = n - 1(«Regist»).Cells (n, 2).Value = regfam(«Regist»).Cells (n, 3).Value = regname(«Regist»).Cells (n, 4).Value = reggr

Sheets («Regist»).Cells (2, 14).Value = n(«Вы зарегистрированны, можете приступать к выполнению тестов»)

CommandButton2. Enabled = True. Enabled = True. Enabled = True. Enabled = True

'вывод тестов для зарегистрированного(Sheets («Regist»).Cells (n, 5).Value = «») Then. Enabled = True. Enabled = False= t + 1If(Sheets («Regist»).Cells (n, 7).Value = «») Then. Enabled = True. Enabled = False= t + 1If(Sheets («Regist»).Cells (n, 9).Value = «») Then. Enabled = True. Enabled = False= t + 1If(Sheets («Regist»).Cells (n, 11).Value = «») Then. Enabled = True. Enabled = False= t + 1If t = 4 Then(«Вы уже прошли все тесты»)

Sheets («test»).CommandButton2. Enabled = False(«test»).CommandButton3. Enabled = False(«test»).CommandButton4. Enabled = False(«test»).CommandButton5. Enabled = FalseIfIf

Каждый тест расположен на отдельной форме, которая открывается при нажатии на кнопку тестирования.


Рис. 4. Форма теста

В форме теста располагаются вопросы и варианты ответов, для ответов используются флажки и переключатели. Каждый вопрос объединен в отдельную группу, итоги подсчитываются при нажатии на кнопку «Результат».

При открытии формы все поля переключателей и флажков пустые, это задается в свойствах объектов параметром значение «Value»:


Рис. 5. Свойства объекта Option Button


Результат выдается на новой форме, в ней используются только текстовые поля «Label», и кнопка «Завершить», которая закрывает форму результатов.


Рис. 6. Форма «Результаты»

Для завершения тестирования так же необходимо закрыть форму самого теста. При открытии формы результатов кнопка «Результат» на форме теста становиться не доступной и видна только кнопка выхода из формы тестирования.


Рис. 7. Фрагмент формы «Тест»


В главном окне приложения расположены еще 2 управляющие кнопки.

Кнопка «Очистить поля» - очищает поля регистрации и блокирует кнопки тестов:

' процедура очистки и блокировки полей

Private Sub CommandButton7_Click()(«test»).TextBox1. Text = «»(«test»).TextBox2. Text = «»(«test»).TextBox3. Text = «»(«test»).CommandButton2. Enabled = False(«test»).CommandButton3. Enabled = False(«test»).CommandButton4. Enabled = False(«test»).CommandButton5. Enabled = FalseSub

В данной процедуре свойства объектов, которые необходимо изменить прописываются в коде программы.

Последний управляющий элемент, это кнопка «Дополнительно», она показывает лист регистрации, но для этого необходимо ввести секретный код в открывшейся форме.

Кнопка «Дополнительно» - в своем коде содержит перечень объектов формы и их свойств.

'процедура кнопки Дополнительно, с заданными свойствами объектов

Private Sub CommandButton6_Click(). TextBox2. Visible = False. TextBox3. Visible = False. Label2. Visible = False. Label3. Visible = False. CommandButton2. Visible = False. TextBox1. Visible = True. Label1. Visible = True. CommandButton1. Visible = True. TextBox1. Text = «». ShowSub


Рис. 8. Форма дополнительно


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

«Очистить поля» - очищает лист регистрации, для проведения нового тестирования, при работе с этим листом доступны все функции MS Excel, например, данные хранящиеся на этом листе можно вывести на печать для предоставления общих результатов.

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

Примечание: на вопросы программы следует отвечать положительно.


Рис. 9. Форма смены пароля


Рис. 10. Сообщение о смене пароля


Рис. 11. Сохранение изменений в существующей книге

«Выход» - необходимо использовать после окончания работы с листом регистрации, она завершает работу с листом и делает его не видимым.


.4 Тестирование и отладка программного продукта


Тестирование и отладка идут рука об руку, так что большинство программистов просто не воспринимают их как отдельные этапы разработки программ. Однако путь к успеху лежит через разделение процесса отладки и тестирования на два разных этапа работы над программой, и вам следует четко представлять себе, что цель тестирования - определить наличие (или отсутствие) ошибок, В то время как цель отладки - определить местоположение ошибок и устранить их.

Лучший путь исключить ошибки в программе - защититься от них еще при написании кода. Надежное приложение - приложение, создаваемое с возможностью легко и просто отлаживать его. Вот 2-а основных совета, которые помогут уменьшить количество ошибок при разработке программ.

.Хорошо организованное приложение, Разделите программу на модули, каждый из которых выполняет определенные задачи.

.Следует проверять целостность входных данных, прежде чем работать с ними

Программа, создаваемая с помощью VBA, как и любого другого языка программирования, обычно сопровождается тремя типами ошибок:

·Ошибки компиляции. Синтаксические и другие ошибки, сразу же делающие невозможным выполнение программы.

·Логические ошибки. Изъяны проектирования программы, в результате которых программа делает, что-то не запланированное, или не делает того, что планировалось.

·Ошибки выполнения. Приводят к остановке выполнения программы вследствие либо логических ошибок, либо возникновения ситуации, не предусмотренной в программе.

В набор инструментария отладки VBA входят инструменты:

·панель инструментов Debug (Отладка) с кнопками команд для выполнения отладки приложения;

·окно Immediate (Непосредственное выполнение), предназначенное для непосредственного ввода команд, требующих немедленного выполнения, или просмотра значений переменных;

·окно Watches (Наблюдение), предназначенное для просмотра значений выражений, включенных в список просмотра;

·окно Locals (Локальные), предназначенное для просмотра значений переменных;

Синтаксические ошибки - если допущена синтаксическая ошибка, то редактор Visual Basic, почти сразу же её обнаружит, и строка программного кода в которой допущена ошибка станет красной.

Логические - необходимо найти в коде операторы которые привели к выполнению незапланированных действий. Процесс поиска ошибок называется отладкой и для их устранения наиболее действенной оказывается запуск программы в режиме паузы.

Режим паузы - это временная остановка выполнения программы на некотором операторе в программном коде. Поскольку в этом случае программа еще «живет», есть возможность проверить текущие значения всех ее переменных. Кроме того, начиная с этого момента, можно использовать команды Step, чтобы продолжить выполнение программы в пошаговом режиме, по одному оператору за шаг, и наблюдать за соответствующими изменениями значений переменных, при этом будет видно, получают переменные ожидаемые значения или нет. Режим паузы можно запустить при помощи меню Debug - Step Into.

Программа может перейти в режим паузы при ошибки выполнения. VBA отоброжает диалоговое окно с описанием ошибки.

Рис. 12. Диалоговое окно при обнаружении ошибки

- завершить приложение- показать место возникновения ошибки, чтобы мы смогли от неё избавиться- вызвать справку о возникшей ошибке.

Нажмите Debug. Visual Basic покажет вам причину возникновения ошибки:


Рис. 13. Строка с ошибкой


Жёлтым цветом выделена строка - причина ошибки.

При отладке приложения необходимо знать как работают команды и какие значения принимают переменные. Для этого пригодятся окна Immediate, Watches, Locals.

Окно Immediate (Непосредственное выполнение), можно запустить из меню View - Immediate Windows или CTRL+G. Данное окно предоставляет следующие возможности:

·видеть результаты вычислений и значения переменных, вывод которых можно направить при помощи «Debug. Print» или отследить значение во время паузы используя оператор «Print»;

·выполнять отдельные операторы;

·проводить вычисления.

Отследим промежуточные значения переменной в отдельном модуле при помощи оператора «Debug. Print»:


Рис. 14. Использование окна Immediate


Во время паузы в режиме пошаговой отладки необходимо использовать окно Locals (наблюдение за локальными переменными). Отобразить это окно можно из меню View - Locals Windows. В данном окне отображаются имена, значения и типы данных всех переменных доступных действующей процедуре, информация о переменных обновляется после выполнения любого из операторов.

Запустим приложение в пошаговом режиме и проверим значение переменных. Для просмотра значений переменных можно воспользоваться окном Locals, в нем будут отображаться переменные задействованные в выполняемом модуле.


Рис. 15. Отладка приложения в пошаговом режиме, при открытом окне Locals


Независимо от того, насколько качественно написано приложение, никогда нельзя полностью исключать возможность возникновения ошибки в программе. Но необходимо стремиться что бы их было меньше.


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


Инструкция тестирующегося.

Интерфейс приложения очень прост в использовании и интуитивно понятен, для прохождения тестов необходимо:

.Зарегистрироваться, в полях регистрации ввести свою фамилию, имя, группу, нажать «Регистрация»

.После того как вы успешно пошли регистрацию, будут доступны тесты, для прохождения любого из них необходимо выбрать соответствующую кнопку с названием теста.

.Тест располагается на отдельной форме, которая открывается по клику соответствующей кнопки.

.На открывшейся форме выбрать ответы на вопросы. Если в представленных ответах используются флажки, то вариантов ответа может быть несколько. Используются переключатель, то только один вариант ответа.

.По завершении теста следует нажать кнопку «Результат».

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

.Необходимо так же закрыть форму теста «Выход». Вы вернетесь в главное окно программы.

.По завершении своего сеанса в программе - тест, следует очистить поля, для этого необходимо нажать «Очистить поля». Или закрыть книгу, дав положительный ответ на сообщение программы.

Инструкция тестирующего.

1.Для просмотра листа регистрации необходимо нажать «Дополнительно», нижняя кнопка рабочего поля.

.Необходимо ввести пароль в соответствующие поле и нажать «Ввод».

.На листе регистрации отображаются все зарегистрированные участники тестирования и их результаты.

.Очистить лист регистрации можно нажав на кнопку «Очистить лист».

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

.По завершении работы с регистрационным листом НЕОБХОДИМО его убрать, нажав соответствующую кнопку «Выход».

.Для изменений в тестах следует открыть код программы, и сделать соответствующие изменения в формах тестов. Для этого:)Запустить редактор Visual Basic (Alt+F11);)В открывшимся окне на панели проекта (Project - VBAProject), выбрать необходимую форму: UserForm1 - 1 тест, UserForm2 - 2 тест, UserForm3 - 3 тест, UserForm4 - 4 тест.)Сделать активным необходимый элемент и ввести текст, найдя соответствующий параметр в свойствах элемента: Properties _ Имя Объекта - Alphabetic (вкладка) - выбрать поле Caption и ввести изменения.)По завершении редактирования содержаний тестов, следует сохранить изменения.

.По завершении работы с приложением, будет выдано сообщение о замене файла, следует нажать «Да».


Заключение


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

В курсовом проекте было рассмотрено и разработано приложения для контроля знаний студентов, программа-тест выдает результаты и комментарии сразу после прохождения теста, результаты сохраняются для дальнейшей обработки.

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

Компьютер снижает трудоемкость тестирования, экономит время, позволяя преподавателю более эффективно и творчески решать профессиональные задачи.

Однако отношение самих психологов к компьютерному тестированию пока далеко не однозначно. Кто-то охотно использует все преимущества технического прогресса, с легкостью и интересом осваивает новые психодиагностические процедуры. А у кого-то появление компьютерного тестирования вызывает негативные эмоции, поскольку это требует переучивания, перестройки и изменения привычного способа деятельности. Тем не менее реальность такова, что рано или поздно всем специалистам, занимающимся психодиагностикой, придется осваивать процедуры компьютерного тестирования.


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


1.Бодров В.А., Психология профессиональной пригодности. М., 2001.

.Каммингс Стив, VBA для Чайников, 3-е издание, - М.: Диалектика, 2002, - 448 с.

3.Михеев, Р.Н. VBA и программирование в Microsoft Office для пользователей, - СПб.: БХВ, 2006, - 384 с.

4.Собчик Л.Н., Введение в психологию индивидуальности. Теория и практика психодиагностики. М., 2000.

.Фризен, И.Г., Офисное программирование, - М.: Дашков и Ко, 2008, - 244 с.


Приложение


(листинг процедур книги)

'глобальные переменные

Public n As Integerregfam As Stringregname As Stringreggr As String

Sub Workbook_BeforeClose (Cancel As Boolean)

Application. SaveWorkspace («Тестирование»)Sub


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

Private Sub Workbook_Open()(«test»).TextBox1. Text = «»(«test»).TextBox2. Text = «»(«test»).TextBox3. Text = «»(«test»).CommandButton2. Enabled = False(«test»).CommandButton3. Enabled = False(«test»).CommandButton4. Enabled = False(«test»).CommandButton5. Enabled = False(«Regist»).Visible = 0(«par»).Visible = 0Sub


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

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

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

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

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

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