Специальность: программное обеспечение автоматизированных систем
Факультет: Современных компьютерных информационных технологий
Кафедра: Программного обеспечения интеллектуальных систем
Специальность: Программное обеспечение автоматизированных систем
ЗАДАНИЕ НА ТЕХНОЛОГИЧЕСКУЮ ПРАКТИКУ
| Студенту | Козаченко Александру Викторовичу | группы | ПО-08а | |||||||||||||||||||||||||||||||
| (Фамилия, Имя, Отчество) | ||||||||||||||||||||||||||||||||||
| Темапрактики | Разработкамодуля для базы данных расписаний экзаменаци- | |||||||||||||||||||||||||||||||||
| онных сессийГУииИИ. | ||||||||||||||||||||||||||||||||||
| Исходные данные к работе | Шаблонграфиков экзаменационных сессий, пре- | |||||||||||||||||||||||||||||||||
| доставленных в файле формата xls. | ||||||||||||||||||||||||||||||||||
| Переченьискомых результатов | Автоматизация процесса выявления фено- | |||||||||||||||||||||||||||||||||
| мена проведения нескольких сессий в одной аудитории, в одно время, проведе- | ||||||||||||||||||||||||||||||||||
| ния нескольких сессий для одной группы, в одно время, а так же, выявлениепе- | ||||||||||||||||||||||||||||||||||
| регрузки преподавателя экзаменами, и проведение нескольких сессий одним | ||||||||||||||||||||||||||||||||||
| преподавателем, в одно время. | ||||||||||||||||||||||||||||||||||
| Рекомендуемаялитература | Уокенбах Д.Профессиональное программирова- | |||||||||||||||||||||||||||||||||
| ние на VBA в Excel 2003.: 2005. – 800с.: ил. – Парал. ISBN5-8459-0771-3(рус); | ||||||||||||||||||||||||||||||||||
| Вирт Н.Алгоритмы + структуры данных = программы:Пер. с англ. – М.: Мир, | ||||||||||||||||||||||||||||||||||
| 1985 – 406с., ил. | ||||||||||||||||||||||||||||||||||
| Дата выдачи задания | 08.06.2011 | |||||||||||||||||||||||||||||||||
| Дата защиты проекта | 28.06.2011 | |||||||||||||||||||||||||||||||||
| Руководитель | КовтуновР.В. | |||||||||||||||||||||||||||||||||
| (подпись) | (должность,Ф. И. О) | |||||||||||||||||||||||||||||||||
| ГлебоваИ.А. | ||||||||||||||||||||||||||||||||||
| (подпись) | (должность,Ф. И. О) | |||||||||||||||||||||||||||||||||
| Разработчик | Козаченко А.В. | |||||||||||||||||||||||||||||||||
| (подпись) | (Ф.И. О.) | |||||||||||||||||||||||||||||||||
| РЕФЕРАТ Технологическая практика: 33 с., 6 рис., 1табл., 3 приложения. Основным объектом даннойтехнологической практики является программные модули для xls-файла. Целью прохождения технологическойпрактики является получение практических навыков программирования, с цельюавтоматизации операций внутри документов MSOffice, получение навыков разработкинадежных программных продуктов, которые будут эксплуатироваться заказчиком втечение длительного времени, а так же, следование многим парадигмам технологииконструирования программных продуктов, включая облегчение дальнейшегосопровождения. Результатами технологической практикиявляется приобретенный опыт работы с заказчиком, разработанный иреализованный надежный программный продукт, согласно требованиям заказчика истандартам разработки программного обеспечения. Полученный программный модульавтоматизирует работу диспетчерского отдела ГУИиИИ, что значительно повыситэффективность организации проведения экзаменационных сессий. БАЗА ДАННЫХ, EXCEL, VBA,ПРОГРАММНЫЙ МОДУЛЬ, АВТОМАТИЗАЦИЯ | ||||||||||||||||||||||||||||||||||
| Д080403.1.01.08/008.ОП | ||||||||||||||||||||||||||||||||||
| Фамилия | Подпись | Дата | Разработка модуля для базы данныхрасписаний экзаменационных сессий ГУИиИИ | Литера | Лист | Листов | ||||||||||||||||||||||||||||
| Разработал | КозаченкоА.В. | у | ||||||||||||||||||||||||||||||||
| Рук. проекта | КовтуновР.В. | ГУИИИ, каф. ПОИС, группа ПО-08а | ||||||||||||||||||||||||||||||||
| ГлебоваИ.А. | ||||||||||||||||||||||||||||||||||
| Зав. каф. | ВолченкоЕ.В. | |||||||||||||||||||||||||||||||||
| СОДЕРЖАНИЕ Введение….………………………………………………………………………..7 1 Постановказадачи………………………………………………………………9 1.1 Цель создания…………………………………………………………………9 1.2 Область применения………………………………………………………..11 1.3 Анализ существующихспособов решения поставленной задачи…………11 2 Объектная модельEXCEL…………………………………………………….12 2.1 Иерархия объектов…………………………………………………………..12 2.2 Свойства и методыобъектов………………………………………………..13 2.3 Коллекции…………………………………………………………………….13 2.4 Работа с объектамиRange…………………………………………………. 13 2.4.1 Свойство Range……………………………………………………………14 2.4.2 Свойство Cells…………………………………………………………….14 2.4.3 Свойство Offset……………………………………………………………14 3 Элементы языка VBA…….……………………………………………………16 3.1 ИсторияVBA…….………………………………………………………….16 3.2 Комментарии…….…………………………………..………………………16 3.3 Типы данных…………………………………………………………………….17 3.4 Переменные………………………………………………………………….18 3.4.1 Правилаименования переменных…….………………………………… 18 3.4.2 Объявление переменных…………………………………………..………19 3.4.3 Область действияпеременных……………………………………..…… 19 3.5 Константы……………………………………………………………………19 3.5.1 Объявление констант…………….…………..…………………………..20 3.6 Массивы……..………………………………………………………………..20 3.6.1 Объявление массивов….………………………………………………….20 3.6.2 Объявлениемногомерных массивов….………………………………… 20 3.6.3 Динамический массив……………………………………………………21 3.6.4 Переменные объектов……………………………………………………21 3.6.6 Управлениеобъектами и коллекциями………………………………… 22 3.6.6.1 КонструкцияWith-End With…………………………………………… 22 3.6.6.2 КонструкцияFor Each-Next……………………………………………. 22 3.6.7 Контроль надвыполнением кода……………………………………….. 22 3.6.7.1 Операторы GoTo………………………………………………………….23 3.6.7.2 КонструкцияIf-Then……………………………………………………. 23 | ||||||||||||||||||||||||||||||||||
| Разработал | Фамилия | Подпись | Дата | Д080403.1.01.08/008.ОП | Лист | |||||||||||||||||||||||||||||
| ст.гр. ПО-08а | Козаченко А.В. | |||||||||||||||||||||||||||||||||
| СОДЕРЖАНИЕ 3.6.7.3 КонструкцияSelect Case……………………………………………….. 23 3.6.8 Циклическаяобработка инструкций……………………………………. 24 3.6.8.1 Циклыfor-next………………………………………………………….. 24 3.6.8.2 Циклыdo while иdo until………………………………………………. 24 3.6.9 Процедуры и функции……………………………………………………25 3.6.9.1 Объявлениепроцедуры………………………………………………… 25 4 Разработкапрограммного модуля..…………………………………………. 26 4.1 Анализ системы итребований…………………………………………….. 26 4.2 Проектированиепрограммного продукта………………………………… 27 4.2.1 Разработкаалгоритмов, определение используемых типов данных, переменных и констант, дляпроцедур………………………………………….. 27 4.2.2 Выделение компонентов программного продукта……………………..28 4.2.3 Разработка пользовательского интерфейса………………………………….28 4.3 Кодирование………………………………………………………………….31 4.4 Сопровождение………………………………………………………………………31 4.4.1 Оценка эффективности программного продуктаи рассмотрение перспектив модификаций…………………………………………………………. 31 Выводы……………………………………………………………………………33 Приложение А. Руководство пользователя…………………………………….34 Приложение Б. Листинг модулей…………………………………………………..40 Приложение В. Алгоритмы……………………………………………………. 49 | ||||||||||||||||||||||||||||||||||
| Разработал | Фамилия | Подпись | Дата | Д080403.1.01.08/008.ОП | Лист | |||||||||||||||||||||||||||||
| ст.гр. ПО-08а | КозаченкоА.В. | |||||||||||||||||||||||||||||||||
| ПЕРЕЧЕНЬОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ ПО — Программное обеспечение ПП — Программный продукт ОС — Операционная система ЭВМ — Электронная вычислительная машина БД — База данных ГУИиИИ — Государственныйуниверситет информатики и искусственного интеллекта BASIC — аббревиатураот Beginner’sAll-purpose Symbolic Instruction Code – универсальныйсимволический язык инструкций для начинающих VB — VisualBasic VBA — Visual Basic for Application (VB для приложений) VBE — VisualBasic Editor (Редактор VB) | ||||||||||||||||||||||||||||||||||
| Разработал | Фамилия | Подпись | Дата | Д080403.1.01.08/008.ОП | Лист | |||||||||||||||||||||||||||||
| ст.гр. ПО-08а | КозаченкоА.В. | |||||||||||||||||||||||||||||||||
<br>
ВВЕДЕНИЕ
За всю историю развития человечества, человек в своем ремесле всегда искал помощников: зачастую это были животные, например охотничьи псы автоматизировали процесс добычи дичи, или же, животных заменяли инструменты. Человечество наиболее обязано предшествующему веку именно изобретением ЭВМ, т.к. это является универсальным инструментом для любого вида деятельности, который автоматизирует многие аспекты человеческой деятельности, повышая тем самым эффективность производства и адаптацию под динамичные условия работы.
На сегодняшний день автоматизация происходит всюду:
— контроль работы предприятия, компании, и даже корпорации, ведение бухгалтерских отчетов;
— мониторинг сложных систем;
— производство деталей для оборудований, особенно, где требуется высокая точность — конструирование микрочипов, например.
Приведенный выше список далеко не полон, но все задачи, на которых применяется автоматизация, имеют общую черту: монотонная, рутинная работа, не требующая принятия сложных решений, на каждый случай. То же самое можно сказать о мониторинге: наблюдение за системой и реакция на события, тоже является монотонной работой, а реакция следящей системы бывает самой разной. Для сравнения можно привести работу автомата в электрической сети, задача которого обесточить сеть, в случае перенапряжения, и операционную систему реального времени, которая следит за работой атомного реактора, и принимает решения, в случае одной из тысяч ситуаций дестабилизации реактора.
Из вышеприведенного следует два вывода:
— автоматизация повышает эффективность работы человека, путем лишения его рутинной работы, позволяя ему выполнять более интеллектуальную деятельность;
— автоматизация выполняет работу, которую человек, согласно своим физическим и интеллектуальным возможностям – не в состоянии выполнить быстро, или же не в состоянии справиться с задачей вообще.
Можно приводить массу примеров, где ЭВМ решает жизненно важные задачи, упомянуть автоматизированные системы управления, системы безопасности, интеллектуальные системы принятий решений и многое другое, но, следует перейти непосредственно к рассматриваемой проблеме.
В данной работе, в отличие от вышеприведенных сложных систем автоматизации, необходимо написать небольшой программный модуль, который внесет в большую программу дополнительную, полезную функциональность.
Программа называется MS Excel корпорации Microsoft, в которой есть много полезных, но общих, возможностей. Однако, на данный момент, требуется написать узкоспециализированную программу, ориентированную на конкретную структуру таблиц, которая будет встроена в конкретный файл, который распознает программа MS Excel.
На самом деле, существует множество полезных, настраиваемых, но сложных программных продуктов, от которых можно было бы добиться желаемой функциональности. Такие продукты, как 1C, MS DAX (Axapta) и прочие, являются новой ветвью эволюции программного обеспечения, которая берет свое начало на узкоспециализированных программных модулях. Однако, освоение подобных программных продуктов требует много затрат, зачастую не достойных, для решения одной или двух простых задач.
По этой причине, в течение текущей технологической практики, требуется расширить возможности программного продукта MS Excel для решения специализированной задачи, и существенной автоматизации и, следовательно, повышения эффективности работы диспетчерского отдела ГУИиИИ.
1 ПОСТАНОВКА ЗАДАЧИ
1.1Цель создания
Целью создания данного проекта является острая необходимость в автоматизации работы диспетчерского отдела ГУИиИИ, а в именно: необходимо написать программный модуль, который с помощью главной таблицы (рисунок 1.1) будет определять накладки (коллизии, конфликты) в расписании экзаменационных сессий (рисунок 1.2, рисунок 1.3).
Накладкой является следующие явления:
— проведения более одной сессии преподавателем в одно время;
— проведение более одной сессии для одной учебной группы (или потока), в одно время;
— проведение более одной сессии для нескольких учебных групп (или потока), в одной аудитории.
Помимо вышеперечисленного, также необходимо отслеживать ситуацию перегрузки преподавателя. В текущей конфигурации, максимальное количество сессий в день, для одного преподавателя равняется четырем (рисунок 1.1).
Рисунок 1.1 – Фрагмент таблицы «Всего по кафедрам»
На рисунках 1.2 и 1.3 представлены все существующие, на данный момент, варианты структур таблиц, для которых необходимо выполнять обработку конфликтов.

Рисунок 1.2 – Фрагмент таблицы «Расписание»

Рисунок 1.3 – Фрагмент таблицы «Пересдача»
Согласно постановке задачи, из таблиц «Расписание», «Пересдача» и «Пересдача (комиссии)» должны переноситься записи в таблицу «Всего по кафедрам» и в случае вышеприведенных случаев конфликта – оповещать об этом пользователя. У таблицы «Пересдача (комиссии)» структура подобна таблице «Пересдача».
1.2Область применения
Данный проект является узкоспециализированным и применим только к работе диспетчерского отдела, однако, программа может быть спроектирована таким образом, что можно было бы подстроить ее под любую структуру таблиц, следовательно, при правильном проектировании, полученный продукт может быть применен для любой подобной таблицы, или даже расширена, в случае добавления новых требований.
1.3Анализ существующих способов решения поставленной задачи
Для решения поставленной задачи, как было указанно выше, можно было бы выбрать другой программный продукт, например 1С, и, настроив его, автоматизировать процесс выявления накладок. Однако, данный способ связан с переносом базы данных в другую среду, обучением персонала работы в 1С, а также – существование множества лишних возможностей.
Помимо этого, можно написать отдельную программу, на любом языке программирования, который, может быть, сможет выполнять процесс быстрее встроенного языка программирования, но этот вариант неприемлем, ввиду малого количества времени, для реализации поставленной задачи.
Следовательно, самым приемлемым вариантом будет использование встроенного редактора VBE, внутри программы MS Excel, что позволит напрямую выполнять поставленную задачу, не отвлекаясь на множество тонкостей реализации, и исключая затраты времени на продолжительную отладку. Встроенный язык VBA и объектная модель Excel хорошо отлажена профессиональными разработчиками, что гарантирует отказоустойчивую
