Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

661

.pdf
Скачиваний:
2
Добавлен:
08.01.2021
Размер:
222.47 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный лесотехнический университет имени Г.Ф. Морозова»

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Методические указания к выполнению курсовой работы для студентов по направлению подготовки

09.03.02 – Информационные системы и технологии

Воронеж 2016

УДК 681.3.06 (076)

Лавлинский, В. В. Объектно-ориентированное программирование [Текст] : м етодические указания к выполнению курсовой работы для студентов по направлению подготовки 09.03.02 – Информационные системы и технологии / В . В . Л а в л и н с к и й , О . В . О к с ю т а , Ю . Г . Т а б а к о в ; М-во образования и науки РФ, ФГБОУ ВО «ВГЛТУ им. Г.Ф. Морозова». – Воронеж, 2016. – 15 с.

Печатается по решению учебно-методического совета ФГБОУ ВО «ВГЛТУ им. Г.Ф. Морозова» (протокол № 1 от 29.08.2016 г.)

1.Общие требования к выполнению курсовой работы.

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

Выполнение курсовой работы является самостоятельной исследовательской работой студента по заданной преподавателем тематике. Курсовая работа выполняется студентом индивидуально в соответствии с выданным преподавателем вариантом.

1.1.Порядок выполнения курсовой работы

Задание на курсовую работу выдается каждому студенту индивидуально

ввиде технического задания и темы курсовой работы.

Входе выполнения работы студент должен:

1.ознакомиться с темой и заданием,

2.определить пользовательский класс,

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

4.объяснить используемые в программах алгоритмы STL,

5.определить и объяснить, используемые предикаты и функции сравнения,

6.провести отладку и тестирование программы,

7.оформить пояснительную записку,

8.защитить курсовую работу.

Задание на курсовую работу выдается за 3 месяца до окончания семестра. За 4 недели до окончания семестра курсовые работы сдаются преподавателю на рецензию. Защита курсовых проектов производится в конце семестра в течение 2-х недель (до начала зачетной недели) в виде краткого доклада (5-8 минут), ответов на вопросы; при наличии технической возможности рекомендуется использовать разработанное программное обеспечение.

Курсовая работа выполняется в среде визуального программирования. Курсовая работа оформляется в бумажном виде (формат А4) в

соответствии с требованиями Стандарта оформления студенческих работ ВГЛТУ. Программное обеспечение представляется на магнитном носителе. Объем проекта должен составлять 20-25 страниц (одинарный интервал, шрифт Times New Roman, размер 14 пт.) и включать следующие позиции:

 

 

Содержимое

 

 

Объем

 

 

 

 

 

 

(страниц)

 

титульный лист (МОиН РФ, вуз, факультет, кафедра,

тема

1

 

курсовой работы, дисциплина, группа, Ф.И.О. студента, Ф.И.О.

 

 

преподавателя, год, город)

 

 

 

 

 

лист задания

 

 

 

1

 

содержание

 

 

 

1

 

введение

 

 

 

1-2

 

теоретическая часть

 

 

 

5-6

 

описание классов

 

 

 

3-5

 

описание структур данных

 

 

 

1-2

 

руководство пользователя

 

 

 

1

 

тестовый пример

 

 

 

1-2

 

заключение

 

 

 

1-2

 

список использованных источников

 

 

1

 

приложение, листинг программы

 

 

 

1-4

 

Название разделов и подразделов должно соответствовать тематике

курсовой работы.

 

 

 

 

 

Содержание основных разделов пояснительной записки:

 

 

 

введение: цель курсового проектирования, краткие сведения по

теме, обзор литературных источников;

 

 

 

 

 

теоретическая часть:

описание

принципов

проектирования,

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

описание классов, объектов, методов классов;

руководство пользователя: описание работы с программой для ее корректной работы и получения правильного результата;

тестовый пример;

заключение: анализ полученной программы, выводы по результатам

работы.

приложение, листинг программы: описание текста программы. Текст программы может содержать комментарии для пояснения логики

работы программы. Интерфейс должен содержать пояснения о вводе требуемых данных и о смысле выводимых результатов.

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

1.2.Методические указания

Порядок выполнения работы.

Написать и отладить три программы. Первая программа демонстрирует использование контейнерных классов для хранения встроенных типов данных.

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

Третья программа демонстрирует использование алгоритмов STL. В программе № 1 выполнить следующее:

1.Создать объект-контейнер в соответствии с вариантом задания и заполнить его данными, тип которых определяется вариантом задания.

2.Просмотреть контейнер.

3.Изменить контейнер, удалив из него одни элементы и заменив другие.

4.Просмотреть контейнер, используя для доступа к его элементам итераторы.

5.Создать второй контейнер этого же класса и заполнить его данными того же типа, что и первый контейнер.

6.Изменить первый контейнер, удалив из него n элементов после заданного и добавив затем в него все элементы из второго контейнера.

7.Просмотреть первый и второй контейнеры.

Впрограмме № 2 выполнить то же самое, но для данных пользовательского типа.

Впрограмме № 3 выполнить следующее:

1.Создать контейнер, содержащий объекты пользовательского типа. Тип контейнера выбирается в соответствии с вариантом задания.

2.Отсортировать его по убыванию элементов.

3.Просмотреть контейнер.

4.Используя подходящий алгоритм, найти в контейнере элемент, удовлетворяющий заданному условию.

5.Переместить элементы, удовлетворяющие заданному условию в другой (предварительно пустой) контейнер. Тип второго контейнера определяется вариантом задания.

6.Просмотреть второй контейнер.

7.Отсортировать первый и второй контейнеры по возрастанию элементов.

8.Просмотреть их.

9.Получить третий контейнер путем слияния первых двух.

10.Просмотреть третий контейнер.

11 .Подсчитать, сколько элементов, удовлетворяющих заданному условию, содержит третий контейнер.

12.Определить, есть ли в третьем контейнере элемент, удовлетворяющий заданному условию.

Методические указания.

1.Программы создается как EasyWin-приложение в Borland C++. Проект должен содержать 3 целевых узла (по числу программ).

2.В качестве пользовательского типа данных использовать любой пользовательский класс.

3.При создании контейнеров в программе № 2 объекты загружать из потока, для чего использовать программы записи и чтения потока.

4.Для вставки и удаления элементов контейнера в программе № 2 использовать соответствующие операции, определенные в классе контейнера.

5.Для создания второго контейнера в программе № 3 можно использовать либо алгоритм remove_copy_if, либо определить свой алгоритм copy_if, которого нет в STL.

6.Для поиска элемента в коллекции можно использовать алгоритм find_if, либо for_each, либо binary_search, если контейнер отсортирован.

7.Для сравнения элементов при сортировке по возрастанию используется операция <, которая должна быть перегружена в пользовательском классе. Для сортировки по убыванию следует написать функцию comp и использовать вторую версию алгоритма sort.

8.Условия поиска и замены элементов выбираются самостоятельно и для них пишется функция-предикат.

9.Для ввода-вывода объектов пользовательского класса следует перегрузить операции ―>>‖ и ―<<‖.

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

10.При перемещении элементов ассоциативного контейнера в неассоциативный перемещаются только данные (ключи не перемещаются). И наоборот, при перемещении элементов неассоциативного контейнера в ассоциативный должен быть сформирован ключ.

2.Варианты заданий

Вариант 1 Написать программу для моделирования Т-образного сортировочного

узла на железной дороге с использованием контейнерного класса stack из STL Программа должна разделять на два направления состав, состоящий из

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

Вариант 2 Написать программу, отыскивающую проход по лабиринту, с

использованием контейнерного класса stack из STL.

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

Вариант 3 Написать программу, моделирующую управление каталогом в файловой

системе.

Для каждого файла в каталоге содержатся следующие сведения: имя файла, дата создания, количество обращений к файлу.

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

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

Вариант 4 Написать программу моделирования работы автобусного парка.

Сведения о каждом автобусе содержат: номер автобуса, фамилию и инициалы водителя, номер маршрута.

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

Для представления необходимых списков использовать контейнерный класс list.

Вариант 5 Написать программу учета заявок на авиабилеты.

Каждая заявка содержит; пункт назначения, номер рейса, фамилию и инициалы пассажира, желаемую дату вылета.

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

Для хранения данных использовать контейнерный класс list. Вариант 6 Написать программу учета книг в библиотеке.

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

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

Хранение данных организовать с применением контейнерного класса muitlmap, в качестве ключа использовать «фамилию и инициалы автора».

Вариант 7 Написать программу «Моя записная книжка».

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

Хранение данных организовать с применением контейнерного класса шар или multimap.

Вариант 8 Написать программу учета заявок на обмен квартир и поиска вариантов

обмена. Каждая заявка содержит сведения о двух квартирах: требуемой (искомой) и имеющейся. Сведения о каждой квартире содержат: количество комнат, площадь, этаж, район.

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

Для хранения данных картотеки использовать контейнерный класс list. Вариант 9 Написать программу «Автоматизированная информационная система на

железнодорожном вокзале».

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

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

Хранение данных организовать с применением контейнерного класса vector.

Вариант 10 Написать программу «Англо-русский и русско-английский словарь».

«База данных» словаря должна содержать синонимичные варианты перевода слов.

Программа должна обеспечивать выбор с помощью меню и выполнение одной из следующих функций: Загрузка «базы данных» словаря (из файла). Выбор режима работы: англо-русский; русско-английский. Вывод вариантов перевода заданного английского слова. Вывод вариантов перевода заданного русского слова.

Базу данных словаря реализовать в виде двух контейнеров типа тар. Вариант 11 Написать программу, реализующую игру «Крестики-нолики» между

двумя игроками: пользователем и компьютером (роботом). В программе использовать контейнерные классы STL.

Вариант 12 Написать программу, решающую игру-головоломку «Игра в 15».

Начальное размещение номеров — случайное. Предусмотреть два режима демонстрации решения: непрерывный (с некоторой задержкой визуализации) и пошаговый (по нажатию любой клавиши). В программе использовать контейнерные классы STL.

Вариант 13 Составить программу формирования списка кандидатов, участвующих в

выборах губернатора.

Каждая заявка от кандидата содержит: фамилию и инициалы, дату рождения, место рождения, индекс популярности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]