Курсовая работа
Курсовая работа состоит из одного задания. Вид графического объекта, движение которого надо будет реализовать в работе, выбирается согласно своему варианту (см. далее таблицу вариантов).
Задание: есть 2 варианта задания, можете выбрать любой из нихВариант 1.Написать программу, используя объектно-ориентированный подход, которая двигает по экрану изображение заданного графического объекта.
Допускается: замена некоторых элементов графического объекта, изменение его цветовой гаммы.
Реализовать два вида движения: случайное и по нажатию на клавиши со стрелками. Предусмотреть для пользователя возможность выбора одного из двух режимов движения.
Описание классов желательно оформить в виде отдельного модуля. Иерархия классов должна включать минимум четыре класса, один из которых – абстрактный.
Язык и среда программирования – Ваш выбор. Можете выполнять работы на языке Паскаль, С++, С# или Java.
Вариант 2.Написать программу, используя объектно-ориентированный подход. Тему выбираете самостоятельно. Описание классов желательно оформить в виде отдельного модуля. Иерархия классов должна включать минимум четыре класса, один из которых – абстрактный.
Язык и среда программирования – Ваш выбор. Можете выполнять работы на языке Паскаль, С++, С# или Java.
Рекомендации см. для варианта 1.
Предлагаю следующие темы задания:
1. Реализовать игру «морской бой». (графический режим)
2. Редактор формул в графическом режиме (скобки, дроби, возведение в степень, сложение, вычитание, умножение, деление, элементарные функции). (могут выполнять до двух человек в группе)
3. Создать систему объектов, представляющую контингенты студентов учебного заведения. Программа осуществляет выбор заданного контингента из общего списка.
4. Визуальная реализация состояния двусвязного списка и кругового списка.
5. Англо-русский словарь с использованием АВЛ-дерева. Дерево должно быть описано как потомок объекта Двоичное дерево. В качестве методов должны быть описаны функция вычисления высоты, поиск заданного элемента, вставка и удаление узла.
6. П. 5. с использованием ДБ-дерева.
7. Смоделировать движение планет вокруг Солнца. Планеты имеют различные размеры, цвет, скорость, траектории (эллипсы).
8. Круговое движение с вращением составного графического объекта.
9. Круговое движение с вращением произвольного составного графического объекта.
10. Движение составного графического объекта, управляемого с клавиатуры с помощью стрелок.
11. Реализовать игру «крестики-нолики» в графическом режиме.
12. Реализовать игру рэндзю, реверси, или го в графическом режиме.
13. Реализовать игру «Тетрис» в текстовом или в графическом режиме.
14. Отобразить базу данных на экран в виде таблицы 20 строк на 5столбцов. Осуществляется навигация кнопками стрелки, PgUp, PgDn, Home, End, 1,2,3,4,5 (выбрать столбец для сортировки), поиск записи по заданному ключу.
15. Написать программу ввода записи в базу данных. В качестве объектов должны быть поля базы данных с методами ввода и отображения информации.
16. Разработать объект «змейка». «Змейка» состоит из последовательности символов. Управление головой «змейки» должно осуществляться нажатием клавиш со стрелками. Движение прекращается, если голова упирается в хвост.
17. Игра «змейка» для двух человек. Проигрывает тот, у кого «змейка» остановится первая. Желательно сделать несколько раундов в игре. (см. п. 13)
18. Разработать иерархию диалоговых полей ввода строки, целого числа, вещественного числа и т.д. Сделать выбор строки (значения) из заданного множества.
19. С помощью ООП разработать возможную реализацию некоторого компьютерного мира. Обитатели такого мира могут иметь различную форму, быть подвижными и неподвижными, быстрыми и медленными, могут размножаться, скрещиваться, нападать и защищаться и т.д. (выполнять могут до трех человек в группе)
20. Нарисовать АВЛ-дерево.
21. Нарисовать ДБ-дерево.
22. Нарисовать двоичное дерево.
23. Разработать объект «Меню», управляемый с помощью кнопок.
24. Нарисовать круговую диаграмму по вводимым данным.
25. Смоделировать битву двух противников.
26. Смоделировать движение шариков в замкнутом сосуде (форма сосуда может быть различной). Шарики двигаются прямолинейно с отражением от стенок сосуда и от других шариков.
27. Описать объект строка, инкапсулирующий методы для работы со строками.
28. Создать простейший векторный графический редактор для рисования линий, различных геометрический фигур, заливки и т.д.
=============================================Лабораторная работа №1
Тема: Принцип инкапсуляции. Описание класса.Задание:Часть 1. Описать класс tPoint, инкапсулирующий основные свойства и методы точки на плоскости. При написании программы на С++ или С# инициализировать поля с помощью конструктора (объявить два конструктора: по умолчанию и с параметрами). Создать массив из 100 точек. Нарисовать точки случайным образом случайным цветом на экране.
Часть 2. Сделать защиту полей класса (т.е. работать с полями в основной программе не напрямую, а используя соответствующие методы записи в поле и чтения из поля). Добавить методы движения точек: случайное движение, движение по нажатию клавиш со стрелками.
Лабораторная работа №2
Тема: Принцип наследования. Статические методы.Задание:Создать иерархию графических классов в соответствии с рисунком (или использовать свой вариант). Описания классов желательно оформить в отдельном модуле.
ТОЧКА ОКРУЖНОСТЬ ЭЛЛИПС
ОТРЕЗОК ТРЕУГОЛЬНИК
ПРЯМОУГОЛЬНИК
Добавить методы движения фигур (в каждый класс). Использовать статические методы.
Написать программу, позволяющую выбирать фигуру для движения и вид движения: случайный или с помощью стрелок. Подключить к этой программе созданный модуль с описанием графических классов (если классы были выделены в отдельный модуль).
Лабораторная работа №3
Тема: Принцип полиморфизма. Использование виртуальных методов.Задание:Внести следующие изменения в программу, разработанную в лабораторной работе №2:
Использовать общий метод движения фигур, описанный в родительском классе самого верхнего уровня иерархии (т.е. описание самого метода движения Move убрать из всех классов, кроме самого верхнего родительского).
Использовать виртуальные методы для корректной работы программы после внесенных изменений.