Скачать 338.52 Kb.
|
1.6Короткая задача intensive-3Доработать часть примера example2, связанную с объектами хранения данных и рассматриваемую на семинаре 3 (работать в пакете фамилия.example2, скопировав туда 4 класса хранения данных). Пусть нужно добавить в гипотетическую информационную систему института возможность логина пользователей, причем она должна быть у преподавателей и начальников (причем пусть начальник не наследует Person), а у студентов этой возможности не планируется. Следовательно, для хранения информации о логине и пароле (а также для проверки пароля в специальном методе) классу Teacher наряду с Person требуется другой суперкласс User (другой, т.к. Student наследует Person). Задача – реализовать множественное наследование через одиночное наследование и агрегацию: 1. Реализовать любым образом (2 балла) 2. Выделить интерфейс Human, который реализуют 2 из 3-х видов людей – аналогично тому, как класс Person расширяют другие 2 вида людей (1 балл) 3. При необходимости (т.е. если не установлен ранее) инициализировать агрегированный в Teacher объект («делегат») в отдельном методе – см. аналог в примере 1 GUIShower.*TextArea() (1 балл) 4. Указать достоинства и недостатки сделанного выбора суперкласса для Teacher (2 балла) 5. В Rational Rose импортировать (reverse engineer) и показать на диаграмме классы пакета фамилия.example2 (1 балл) Итого за задачу: 7 баллов 1.7Практическая задача base-4: «Архиватор»Написать консольную утилиту для работы с zip файлами, которая использовала бы стандартные java классы для работы с файлами zip формата (пакет java.util.zip): 1. Написать консольную программу, которая бы могла упаковывать, распаковывать и добавлять файлы в zip архивы. Как аргументы командной строки, программа должна принимать имена входных файлов и имя выходного архива, в который нужно упаковать их. Для распаковывания должна принимать имя архива и, опционально, путь к (существующей или не существующей) директории для распаковки. (5 баллов) 2. Если вместо входного файла указана директория – упаковывать ее содержимое рекурсивно (2 балла). 3. Поддерживать комментарии к архивам (чтение комментариев у существующего архива, добавление комментария в существующий архив, создания архива с комментарием) (3 балла: по одному за каждое «подтребование») Итого за задачу: 10 баллов. 1.8Короткая задача intensive-4Реализовать классы для создания, записи и загрузки объектов ("людей" из примера 2) на основе диаграммы классов, рассмотренной на семинаре 7 (или на основе другой подобной диаграммы, удовлетворяющей принципам ОО проектирования). Рекомендуется использовать для этого генерацию кода из Rational Rose (см. приложенный к семинару 7 файл). На выходе должно быть 2 программы, аналогичные по возможностям программам PersonArrayWriteTest и PersonArrayReadTest: 1. Написать классы (с main) для создания и записи людей аналогично PersonArrayWriteTest, но с хранением людей в java.util.List (3 балла), а также в java.util.Map (+1 балл) 2. Написать классы (с main) для загрузки и сортировки людей аналогично PersonArrayReadTest (2 балла; если с проектированием иерархии интерфейса PersonSorter - 4 балла) 3. Написать класс ReadPersonCreator, использующий PersonReader для создания людей; а также соответствующий main (2 балла) Итого за задачу: 7-10 баллов 1.9Практическая задача base-5, intensive-5: «Робот»Написать робота для игровой платформы Robocode. Робот – это Java-класс, наследующийся от robocode.Robot и определяющий (в методе run()) некоторое поведение робота на игровом поле (передвижение, слежение за противниками, стрельба). Одна из целей задачи заключается в получении навыка использования документации по незнакомой тематике. 1. Написать и протестировать работоспособного (двигающегося и стреляющего) робота, логика которого не совпадает с логикой примера из пакета sample (который является частью платформы). (2 балла). 2. Находить робота-противника на поле боя размером в 5000 на 5000. При таком размере поля радар не охватывает всю поверхность, и поэтому противника нужно будет искать. (3 балла) 3. Применить при реализации робота шаблон State/Strategy (т.е. реализовать переключение между типами поведения класса не через многочисленные условные выражения, «разбросанные» по всему коду, а через делегирование некоторых функций экземпляру интерфейса/абстрактного класса State – так, чтобы при переключении в какое-либо состояние устанавливать в качестве делегата одну из реализаций State). Разные состояния шаблона State следует использовать для описания действий робота при поиске противника и, собственно, при ведении боя, можно также переключаться в разные состояния при битве с одним и со многими противниками (метод getOthers() возвращает число противников). (5 баллов) 4. Побеждать написанным роботом большинство роботов пакета sample (4-10 баллов): * при битве типа 1 на 1, то есть в основном режиме (7 баллов, если всех); * при коллективной битве «каждый сам за себя» (+3 балла; робот должен занять первое место по очкам и остаться в живых, как минимум, в половине раундов; как правило, победа всех в режиме «1 на 1» автоматически приведете к такой победе; ни один из роботов пакета sample не имеет специальной стратегии для этого режима). 5. Победить робота автора задачи – 5 баллов. 6. Занять место в турнире между студентами учебного центра (5–15 баллов): Баллы за все нумерованные требования суммируются друг с другом. Итого за задачу: 10 баллов за реализацию + 7-30 баллов за победы. |
Года), с одной стороны, и "Вкладчик" (либо "Вноситель" в случае внесения вклада на имя третьего лица), с другой стороны, вместе либо... | Изучение дисциплины базируется на знании материала дисциплин: «Физика», «Химия», «Математика», «Гидравлика», «Инженерная графика»,... | ||
Разработка с использованием abap-инструментальных средств (упражнения) 28 | В его основе лежит решение какой-либо задачи, проблемы (от греческого problema- «задача, задание») | ||
Характеристики компьютерных программ бронирования (на примере Fidelio Hotel Management System) 52 | «Global Positioning System», которое дословно можно перевести, как «глобальная система позиционирования» | ||
Перед началом работы с системой описания бизнес-объектов необходимо проверить у себя на машине | Эссе — (фр essai – попытка, проба), небольшое прозаическое сочинение свободной композиции, выражающее впечатления автора от чего... | ||
Оон st/SG/AC. 10/30 «Globally Harmonized System of Classification and Labelling of Chemicals (Согласованная на глобальном уровне... | Работы по техническому обслуживанию программного комплекса интегрированной диспетчерской службы на базе модуля pi-system |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |