Выберите задание, последняя цифра номера которого совпадает с последней цифрой номера вашей зачетной книжки. Выполните приведенное задание.
Вариант 1
Создать класс Point, содержащий следующие члены класса:
1. Поля:
· int x, y;
2. Конструкторы, позволяющие создать экземпляр класса:
· с нулевыми координатами;
· с заданными координатами.
3. Методы, позволяющие:
· вывести координаты точки на экран;
· рассчитать расстояние от начала координат до точки;
· переместить точку на плоскости на вектор (a, b).
4. Свойства, позволяющие:
· получить и установить координаты точки (доступное для чтения и записи);
· умножить координаты точки на скаляр (доступное только для записи).
5. Индексатор, позволяющий по индексу 0 обращаться к полю x, по индексу 1 – к полю y; при других значениях индекса должно выдаваться сообщение об ошибке.
6. Перегруженные операции и константы, позволяющие:
· одновременно увеличить (уменьшить) значения полей х и у на 1 (операции ++ и --);
· узнать, совпадают, или нет значения полей x и y (константы true и false);
· одновременно добавить к полям х и у значение скаляра (бинарный +).
Продемонстрировать работу класса.
Вариант 2
Создать класс Triangle, содержащий следующие члены класса:
1. Поля:
· int a, b, c;
2. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
3. Методы, позволяющие:
· вывести длины сторон треугольника на экран;
· расчитать периметр треугольника;
· расчитать площадь треугольника.
4. Свойства, позволяющие:
· получить и установить длины сторон треугольника (доступные для чтения и записи);
· установить, существует ли треугольник с данными длинами сторон (доступное только для чтения).
5. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b, по индексу 2 – к полю c; при других значениях индекса должно выдаваться сообщение об ошибке.
6. Перегруженные операции и константы, позволяющие:
· одновременно увеличить (уменьшить) значения полей a, b и c на 1 (операции ++ и --);
· узнать, существует треугольник с заданными сторонами, или нет (константы true и false);
· одновременно умножить поля a, b и c на скаляр (операция *).
Продемонстрировать работу класса.
Вариант 3
Создать класс Rectangle, содержащий следующие члены класса:
1. Поля:
· int a, b;
2. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.
3. Методы, позволяющие:
· вывести длины сторон прямоугольника на экран;
· расчитать периметр прямоугольника;
· расчитать площадь прямоугольника.
4. Свойства, позволяющие:
· получить и установить длины сторон прямоугольника (доступные для чтения и записи);
· установить, является ли данный прямоугольник квадратом (доступное только для чтения).
5. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b; при других значениях индекса должно выдаваться сообщение об ошибке.
6. Перегруженные операции и константы, позволяющие:
· одновременно увеличить (уменьшить) значение полей a и b на 1 (операции ++ и --);
· узнать, является ли прямоугольник квадратом (константы true и false);
· одновременно умножить поля a и b на скаляр (операция *).
Продемонстрировать работу класса.
Вариант 4
Создать класс Money, содержащий следующие члены класса:
1. Поля:
· int first; //номинал купюры
· int second; //количество купюр
2. Конструктор, позволяющий создать экземпляр класса с заданными значениям полей.
3. Методы, позволяющие:
· вывести номинал и количество купюр;
· определить, хватит ли денежных средств на покупку товара на сумму N рублей.
· определить, сколько штук товара стоимости n рублей можно купить на имеющиеся денежные средства.
4. Свойства, позволяющие:
· получить и установить значение полей (доступные для чтения и записи);
· расчитать сумму денег (доступное только для чтения).
5. Индексатор, позволяющий по индексу 0 обращаться к полю first, по индексу 1 – к полю second; при других значениях индекса должно выдаваться сообщение об ошибке.
6. Перегруженные операции:
· ++ и -- для одновременно увеличения и уменьшения значений полей first и second;
· бинарный + для увеличения значения поля second на скалярную величину.
Продемонстрировать работу класса.
Вариант 5
Создать класс для работы с одномерным массивом целых чисел. Разработать следующие члены класса:
1. Поля:
· int [] IntArray;
2. Конструктор, позволяющий создать массив размерности n.
3. Методы, позволяющие:
· ввести элементы массива с клавиатуры;
· вывести элементы массива на экран;
· отсортировать элементы массива в порядке возрастания.
4. Свойства:
· возвращающее размерность массива (доступное только для чтения);
· позволяющее домножить все элементы массива на скаляр (доступное только для записи).
5. Индексатор, позволяющий по индексу обращаться к соответствующему элементу массива.
6. Перегруженные операции:
· ++ и -- для одновременного увеличения и уменьшения значений всех элементов массива на 1;
· бинарное *, для умножения всех элементы массива на скаляр;
· для преобразования экземпляра класса в одномерный массив (и наоборот).
Продемонстрировать работу класса.
Вариант 6
Создать класс для работы с двумерным массивом целых чисел. Разработать следующие члены класса:
1. Поля:
· int [,] intArray;
2. Конструктор, позволяющий создать массив размерности n×m.
3. Методы, позволяющие:
· ввести элементы массива с клавиатуры;
· вывести элементы массива на экран;
· вычислить сумму элеметов столбца с номером i.
4. Свойства, позволяющие:
· вычислить количество нулевых элементов в массиве (доступное только для чтения);
· установить значение всех элементов главной диагонали массива равное скаляру (доступное только для записи).
5. Двумерный индексатор, позволяющий обращаться к соответствующему элементу массива.
6. Перегруженные операции:
· ++ и -- для одновременного увеличения и уменьшения значения всех элементов массива на 1;
· бинарный + для сложения двух массивов одинакового размера;
· для преобразования экземпляра класса в двумерный массив (и наоборот).
Продемонстрировать работу класса.
Вариант 7
Создать класс для работы со ступенчатым массивом вещественных чисел. Разработать следующие функциональные члены класса:
1. Поля:
· double [][] doubelArray;
2. Конструктор, позволяющий создать ступенчатый массив.
3. Методы, позволяющие:
· ввести элементы массива с клавиатуры;
· вывести элементы массива на экран;
· отсортировать элементы каждой строки массива в порядке убывания.
4. Свойства:
· возвращающее общее количество элементов в массиве (доступное только для чтения);
· позволяющее увеличить значение всех элементов массива на скаляр (доступное только для записи).
5. Двумерный индексатор, позволяющий обращаться к соответствующему элементу массива.
6. Перегруженные операции и константы, позволяющие:
· увеличить, или уменьшить значение всех элементов массива на 1 (++ и --);
· проверить, является ли каждая строка массива упорядоченной по возрастанию (true и false);
· преобразовать экземпляр класса в ступенчатый массив (и наоборот).
Продемонстрировать работу класса.
Вариант 8
Создать класс для работы сo строками. Разработать следующие члены класса:
1. Поле:
· string line;
2. Конструктор, позволяющий создать строку на основе заданного строкового литерала.
3. Методы, позволяющие:
· подсчитать количество цифр в строке;
· вывести на экран все символы строки, встречающиеся в ней ровно один раз;
· вывести на экран самую длинную последовательность повторящихся символов в строке.
4. Свойство, возвращающее общее количество символов в строке (доступное только для чтения);
5. Индексатор, позволяющий по индексу обращаться к соответствующему символу строки (доступный только для чтения).
6. Перегруженные операции и константы, позволяющие:
· проверить, является ли строка палиндромом(константы true и false);
· узнать, являются ли строки равными посимвольно, без учета регистра (операции == и !=);
· преобразовать экземпляр класса в тип string (и наоборот).
Продемонстрировать работу класса.
Вариант 9
Создать класс для работы сo строками. Разработать следующие члены класса:
1. Поле:
· StringBuilder line;
2. Конструктор, позволяющий создать строку на основе заданного строкового литерала, и конструктор, позволяющий создавать пустую строку.
3. Методы, позволяющие:
· подсчитать количество пробелов в строке;
· заменить в строке все прописные символы на строчные;
· удалить из строки все знаки препинания.
4. Свойства:
· возвращающее общее количество элементов в строке (доступное только для чтения);
· позволяющее установить значение поля line, в соответствии с введенным значением строки с клавиатуры, а также получить значение данного поля (доступно для чтения и записи)
5. Индексатор, позволяющий по индексу обращаться к соответствующему символу строки.
6. Перегруженные операции и константы, позволяющие:
· преобразовать строку к верхнему и нижнему регистрам (операции унарного + и –);
· проверить, является ли строка не пустой (константы true и false).
· узнать, являются ли строки равными посимвольно, без учета регистра (операции == и !=);
· преобразовать экземпляр класса в тип StringBuilder (и наоборот).
Продемонстрировать работу класса.
Вариант 10
Самостоятельно изучите тип данных DateTime, на основе которого необходимо создать класс для работы с датой. Данный класс должен содержать следующие члены класса:
1) Поле:
· DateTime data.
2) Конструкторы, позволяющие установить:
· заданную дату
· дату 1.01.2010
3) Методы, позволяющие:
· вычислить дату предыдущего дня;
· вычислить дату следующего дня;
· определить, сколько дней осталось до конца месяца.
4) Свойства, позволяющие:
· установить, или получить значение поле класса (доступно для чтения и записи)
· определить, является ли год высокосным (доступно только для чтения).
5) Индексатор, позволяющий определить дату i-того по счету дня относительно установленной даты (при отрицательных значениях индекса отсчет должен вестись в обратном порядке).
6) Перегруженные операции и константы, позволяющие определить:
· является ли установленная дата началом года (константы true и false);
· равны ли две даты (операции == и !=).
Продемонстрировать работу класса.
Задание 2
Выберите задание, последняя цифра номера которого совпадает с последней цифрой номера вашей зачетной книжки. Выполните приведенное задание.
1. Во всех задачах данного раздела подразумевается, что исходная информация хранится в текстовом файле input.txt, каждая строка которого содержит полную информацию о некотором объекте; результирующая информация должна быть записана в файл output.txt.
2. Для хранения данных внутри программы организовать массив объектов.
Вариант 1
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, год рождения, домашний адрес и номер законченной школы. Вывести в новый файл информацию о студентах, окончивших заданную школу, отсортировав их по году рождения.
Вариант 2
На основе данных входного файла составить список студентов группы, включив следующие данные: ФИО, номер группы и результаты сдачи трех экзаменов. Вывести в новый файл информацию о студентах, успешно сдавших сессию, отсортировав их по номеру группы.
Вариант 3
На основе данных входного файла составить багажную ведомость камеры хранения, включив следующие данные: ФИО пассажира, количество вещей и их общий вес. Вывести в новый файл информацию о тех пассажирах, средний вес багажа которых превышает заданный, отсортировав их по количеству вещей, сданных в камеру хранения.
Вариант 4
На основе данных входного файла составить автомобильную ведомость, включив следующие данные: марка автомобиля, номер автомобиля, фамилия его владельца, год приобретения и пробег. Вывести в новый файл информацию об автомобилях, выпущенных ранее определенного года, отсортировав их по пробегу.
Вариант 5
На основе данных входного файла составить список сотрудников учреждения, включив следующие данные: ФИО, год принятия на работу, должность, зарплата и рабочий стаж. Вывести в новый файл информацию о сотрудниках, имеющих зарплату ниже определенного уровня, отсортировав их по рабочему стажу.
Вариант 6
На основе данных входного файла составить инвентарную ведомость склада, включив следующие данные: вид продукции, стоимость, сорт и количество. Вывести в новый файл информацию о той продукции, количество которой менее заданной величины. Записи должны быть отсортированы по количеству продукции на складе.
Вариант 7
На основе данных входного файла составить инвентарную ведомость игрушек, включив следующие данные: название игрушки, ее стоимость (в руб.), а также возрастные границы детей, для которых предназначена игрушка. Вывести в новый файл информацию о тех игрушках, которые предназначены для детей от N до M лет, отсортировав записи по стоимости.
Вариант 8
На основе данных входного файла составить список вкладчиков банка, включив следующие данные: ФИО, № счета, сумма и год открытия счета. Вывести в новый файл информацию о тех вкладчиках, которые открыли вклад в текущем году, отсортировав записи по сумме вклада.
Вариант 9
На основе данных входного файла составить список студентов, включающий фамилию, факультет, курс, группу и 5 оценок. Вывести в новый файл информацию о тех студентах, которые имеют хотя бы одну двойку, отсортировав записи по курсу.
Вариант 10
На основе данных входного файла составить список студентов, включающий ФИО, курс, группу и результат забега. Вывести в новый файл информацию о студентах, показавших три лучших результата в забеге. Если окажется, что некоторые студенты получили такие же высокие результаты, то добавить их к списку победителей.