Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая. Отчет. Богданов 4205..docx
Скачиваний:
0
Добавлен:
09.12.2019
Размер:
553.16 Кб
Скачать

Министерство общего и профессионального образования

Российской Федерации

Казанский Национальный Исследовательский Технический Университет

имени. А.Н. Туполева

------------------------------------------------------------------------------------------

Кафедра АСОИУ

Курсовая работа

по дисциплине «Объектно-ориентированное программирование»

(задание № 2)

Исполнитель: студент группы 4205 С.В.Богданов

Руководитель: доц. кафедры АСОИУ В.И. Медведев

Оценка _________________________

Подпись _________________________

«____» _________________ 2012 г.

Казань 2012

Содержание

1. Задание 2

2.Уточнение задания 3

3. Описание разрабатываемой программы с точки 3

зрения пользователя 3

5

Итоговый результат выполнения программы 5

4. Описание разрабатываемой программы с 6

точки зрения программиста 6

4.1. Объектное представление программы 6

4.2. События 7

4.3. Потоки 7

5.Поэтапная разработка программной системы 7

5.3.1. Этап 1. Разработка класса Avto 8

5.3.2. Этап 2. Разработка события ev и уведомления 15

5.3.3. Этап 3. Разработка прикладного и дочернего окон, 19

кнопки добавления шаров. 19

5.3.4. Этап 4. Добавление элемента списка, добавление кнопок 31

остановки и удаления. 31

6. Описание проблем, возникших при разработке 45

программной системы. 45

7. Список используемой литературы 45

8. Приложение 1. Диаграмма классов разработанной 45

программы 45

9. Приложение 2. Текст программы на языке C# 46

10. Приложение 3. Текст программы на языке C++/CLI 51

11. Приложение 4. Текст программы на языке Java 56

1. Задание

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

2.Уточнение задания

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

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

Программу реализовать в среде Visual Studio .NET на языке C#, С++/CLI и на языке Java.

3. Описание разрабатываемой программы с точки зрения пользователя

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

Диаграмма вариантов использования языка UML изображает действия, выполняемые пользователем программы. С точки зрения пользователя приложение предполагает три варианта использования:

- добавление автомобилей (add the car),

- удаление автомобиля (delete the car),

- приостановить движение шаров (suspend the cars moving),

- возобновить движение шаров (resume the cars moving).

Если машины перемещались, то после нажатия первой кнопки они приостановятся. Если шары были неподвижны, то после нажатия кнопки они продолжат своё перемещение.

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

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

Диаграмма вариантов использования представлена на рис. 3.1.

user

Рис. 3.1. Диаграмма вариантов использования Avtos-приложения

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

Итоговый результат выполнения программы

4. Описание разрабатываемой программы с

точки зрения программиста

4.1. Объектное представление программы

Программа включает объекты разных типов. Главными объектами программы являются объект прикладного окна класса Avto и объект дочернего окна класса Form (Autos) или Frame. При создании объекта прикладного окна создаётся дочернее окно, кольцевая дорога. Сразу после добавления автомобили начинают перемещаться по кольцу, с различными скоростями. Каждый обычный объект шара функционирует независимо от других шаров в соответствии с потоковой функцией AvtoFunc или run() его собственного потока. Столкнувшись, автомобили, генерируют события ev или уведомление, на который подписан обработчик Handlerev. Также есть событие evSpecial или уведомлдение, на которое подписан обработчик HandlerEvSpecial() или функция update() специального объекта шара. Обработчик запускает потоковую функцию AvtoFunc или run() этого специального объекта. Дочернее окно содержит объекты трех кнопок Stop, Add, Del и объект ListBox списка.