1Практические задания по курсу «Язык программирования Java» Названия задач вида base-* означает, что они относятся к тем, кто посетил по соответствующей теме лекцию-семинар базового уровня, а названия вида intensive-* – лекцию-семинар углубленного уровня.
1.1Короткая задача base-1 1. Вывести в цикле for буквы русского алфавита (в любом регистре) и их число (1 балл)
2. Вывести для каждой буквы код юникода в десятичном (приведение к int) и шестнадцатеричном представлении (16-ичное число можно вывести в обратном порядке) (1 балл)
3. Написать 2 функции преобразования букв к верхнему и нижнему регистру (toUpperCase, toLowerCase); написать функцию, использующую две предыдущие, которая на входе принимает букву и возвращает ее в противоположном регистре (т.е. строчную букву делает прописной и наоборот). Весь код пишется для русского алфавита и не использует готовые библиотеки. Функции оформляются с модификаторами public static, которые необходимо протестировать в main() (1 балл)
Итого за задачу: 3 балла
1.2Короткая задача intensive-1 Не меняя ничего в функции main(), модифицировать класс Hello таким образом, чтобы на консоль выводилась другая строка (не “Hello, World!” или не только “Hello, World!”) (3 балла)
class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
РЕШЕНИЕ ЗАДАЧИ: либо полное переопределение класса System (вместе с out и т.д.), либо делается static блок инициализации, где на консоли печатается другое и выполняется System.exit().
1.3Короткая задача base-2 1. Создать 3-мерный неравномерный массив (т.е. не параллелепипед с пустующими ячейками) следующего вида: основание - прямоугольный равнобедренный треугольник с катетом = 10 ячеек, одна из вершин при остром угле - ячейка [0][0], высота в ячейках - произведение (x+1)*(y+1), где x,y - индексы точки на треугольнике.
2. Заполнить элементы массива объектами ссылочного типа(класса) StringBuffer, содержащими индексы массива в виде "x,y,z", и вывести их на экран.
Итого за задачу: 2 балла
1.4Короткая задача intensive-2 Доработать пример example1, рассматриваемый на семинарах 1-2 (работать в пакете фамилия.example1):
1. В наследнике класса ConsoleShower сделать private-поле типа java.io.PrintStream c getter/setter-методами (их рекомендуется сгенерировать средствами IDE) и использовать его для вывода строк. В getter-методе "при необходимости" (т.е. если поле не инициализировано ранее) присваивать полю ссылку на поток вывода ошибок System.err. (1 балл)
2. Создать реализацию класса StringShower, показывающую строки в окне сообщения с помощью javax.swing.JOptionPane.showMessageDialog() (можно наследовать эту реализацию от GUIShower, чтобы одновременно показывать строки и в TextArea). Проверить работоспособность (2 балла)
3. Переопределить метод GUIShower.updateComponentSize, используя для обработки текста регулярные выражения (java.util.regex.*) вместо java.util.StringTokenizer (3 балла)
4. В Rational Rose импортировать (reverse engineer) и показать на диаграмме классы пакетов ru.ipccenter.examples.example1 и фамилия.example1 (1 балл)
Итого за задачу: 7 баллов
1.5Короткая задача base-3 Разработать несколько (3-4) классов для хранения структуры данных, которые описывали бы некую реальную систему или процесс («предметную область»). Например, такой предметной областью может быть институт, магазин, расписание и т.п.; конкретная область выдается куратором или может быть предложена самим студентом. Классы должны быть связаны отношениями наследования, агрегации и др. 1 балл дается за выполнение каждого из следующих требований:
1. Разработать классы как угодно (лишь бы они могли хранить данные)
2. Написать классы в соответствии с правилами ООП, с getter/setter-методам доступа к полям, с разумными модификаторами.
3. Написать любую логику в getterах или setterах, а также переопределить какой-либо метод с вызовом соответствующего метода суперкласса.
4. Классы импортировать (reverse engineer) в Rational Rose и показать на диаграмме
5. Указать на диаграмме те отношения между классами, которые не импортировались автоматически, показать множественность (multiplicity) ассоциаций
Итого за задачу: 5 баллов
|