Требования к оформлению отчета по контрольной работе

Требования к отчету по контрольной работе (приложение 1). Оформляется один отчет на два задание.

Задание №1.

Выполнить задание согласно варианту. Продемонстрировать работу программы с помощью консольного приложения. Каждый разрабатываемый класс должен содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров, методы, свойства, индексаторы, перегруженные операции. Функциональные элементы класса должны обеспечивать непротиворечивый, полный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения. В программе (в методе Main()) должна выполняться проверка всех разработанных элементов класса.

Вариант 1

Создать класс «Сторона» для хранения длины стороны фигуры. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Треугольник», обеспечивающий следующие возможности:

• установку и получение длин сторон треугольника;

• проверку на существование треугольника с заданными длинами сторон;

• расчет периметра и площади треугольника;

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

Вариант 2

Создать класс «Число», содержащий закрытое поле для хранения целого числа в диапазоне от –15 до 45. Обеспечить проверку на правильность ввода чисел, предусмотреть свойства для получения состояния объекта.

Создать класс «Одномерный массив» для работы с массивом целых чисел (вектором).

Обеспечить следующие возможности:

• обращение к отдельному элементу массива с контролем выхода за пределы массива;

• выполнение операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов;

• выполнение операций умножения и деления всех элементов массива на скаляр;

• вывод на экран элемента массива по заданному индексу и всего массива.

Вариант 3

Создать класс «Товар», содержащий следующие закрытые поля: название товара, количество, стоимость товара в рублях. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Склад», содержащий закрытый массив товаров. Обеспечить:

• вывод информации о товаре по номеру с помощью индекса;

• вывод информации о товаре, название которого введено с клавиатуры, если таких товаров нет, выдать соответствующее сообщение;

• сортировку товаров по наименованию, по количеству и по цене.

Вариант 4

Создать класс «Строка», содержащий закрытое поле для хранения русскоязычной строки. Обеспечить проверку на правильность ввода русских символьных данных, предусмотреть свойства для получения состояния объекта.

Создать класс «Текст» для работы с массивом русскоязычных строк.

Обеспечить следующие возможности:

• обращение к отдельной строке массива по индексу с контролем выхода за пределы массива;

• выполнение операций поэлементного сцепления двух массивов с образованием нового массива;

• выполнение операций слияния двух массивов с исключением повторяющихся элементов;

• вывод на экран элемента массива по заданному индексу и всего массива.

Вариант 5

Создать класс «Книга», содержащий следующие закрытые поля: автор, название, год издания, категория. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Домашняя библиотека». Предусмотреть возможность работы с произвольным числом книг, поиска книги по какому-либо признаку (по автору, по году издания или категории), добавления книг в библиотеку, удаления книг из нее, доступа к книге по номеру.

Вариант 6

Создать класс, реализующий тип данных «Вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами:

• сложение, вычитание (как с другой матрицей, так и с числом);

• комбинированные операции присваивания (+=, -=);

• операции сравнения на равенство/неравенство;

• операции вычисления обратной и транспонированной матрицы;

• доступ к элементу по индексам.

Вариант 7

Создать класс «Элемент», содержащий закрытое поле для хранения символа. Предусмотреть свойства для получения состояния объекта.

Создать класс «Множество», позволяющий выполнять основные операции надо множеством символов: добавление и удаление элемента, пересечение, объединение и разность множеств.

Вариант 8

Создать класс «Автомобиль», содержащий закрытые поля: госномер, цвет, фамилия владельца. Для каждого автомобиля указывается номер места и признак присутствия на стоянке. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Автостоянка» для хранения сведений об автомобилях. Обеспечить возможность поиска автомобиля по разным критериям, вывода списка присутствующих и отсутствующих на стоянке автомобилей, доступа к имеющимся сведениям по номеру места.

Вариант 9

Создать класс «Студент», содержащий следующие закрытые поля: фамилия, имя, дата рождения, группа. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Студенческая группа». Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо признаку (напримep, по фамилии, имени, дате рождения), добавления и удаления записей, сортиювки по разным полям, доступа к записи по номеру.

Вариант 10

Создать класс «Колода карт», включающий закрытый массив элементов класса «Карта». Предусмотреть свойства для получения состояния объекта. В карте хранятся масть и номер. Обеспечить возможность вывода карты по номеру, вывода всех карт, перемешивания колоды и выдачи всех карт из колоды поодиночке и по 6 штук в случайном порядке.

Написать программу, демонстрирующую все разработанные элементы классов с обеспечением проверки на правильность ввода данных.

Вариант 11

Создать класс «самолет», содержащий следующие закрытые поля: название пункта назначения, шестизначный номер рейса, время отправления. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Аэропорт», содержащий закрытый массив самолетов. Обеспечить следующие возможности:

• вывод информации о самолете по номеру рейса с помощью индекса;

• вывод информации о самолетах, отправляющихся в течение часа после введенного с клавиатуры времени;

• вывод информации о самолетах, отправляющихся в заданный пункт назначения;

Информация должна быть отсортирована по времени отправления.

Вариант 12

Создать класс, реализующий тип данных «Вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами:

• методы, реализующие проверку типа матрицы (квадратная, диагональная, нулевая, единичная, симметричная, верхняя треугольная, нижняя треугольная);

• операции сравнения на равенство/неравенство;

• доступ к элементу по индексам.

Вариант 13

Создать класс «поезд», содержащий следующие закрытые поля: название пункта, назначения, номер поезда (может содержать буквы и цифры), время отправления. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Вокзал», содержащий закрытый массив поездов. Обеспечить следующие возможности:

• вывод информации о поезде по номеру с помощью индекса;

• вывод информации о поездах, отправляющихся после введенного с клавиатуры времени;

• перегруженную операцию сравнения, выполняющую сравнение времени отправления двух поездов;

• вывод информации о поездах, отправляющихся в заданный пункт назначения.

Информация должна быть отсортирована по времени отправления.

Вариант 14

Создать класс «Точка», содержащий закрытые поля для хранения координат точки. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Массив точек», который обеспечивает следующие возможности:

• вывод координаты точки на экран;

• расчет расстояния от начала координат до точки;

• перемещение точки на плоскости на вектор (a, b).

• упорядочивание точек относительно оси ординат.

Вариант 15

Создать класс «Жилец», содержащий закрытые поля для хранения следующей информации: ФИО, город, улица, номер дома, номер квартиры, телефон. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Дом» для хранения информации по всем жильцам. Реализовать следующие возможности:

• вывод информации о конкретном жильце дома по заданным критериям (фамилия, номер квартиры);

• сортировка жильцов по фамилиям, по адресу проживания;

• поиск всех жильцов, проживающих по заданному адресу.

Вариант 16

Создать класс «Деньги», содержащий закрытые поля для хранения номинала купюры и их количества. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Банк», в котором реализовать закрытый массив денег, обеспечивающий следующими возможностями:

• вывод номинала и количества купюр, хранящихся в банке;

• вывод полной суммы денег, хранящейся в банке;

• определение, хватит ли денежных средств на покупку товара на сумму N рублей.

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

Вариант 17

Создать класс для работы с восьмеричным числом, хранящимся в виде строки символов. Реализовать конструкторы, свойства, методы и следующие операции:

• операции присваивания, реализующие значимую семантику;

• операции сравнения;

• преобразование в десятичное число;

• форматный вывод;

• доступ к заданной цифре числа по индексу.

Вариант 18

Создать класс для работы с датой. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Класс должен реализовывать следующие возможности:

• вычисление даты предыдущего дня;

• вычисление даты следующего дня;

• определение количества дней до конца месяца;

• определение года високосным;

• определение даты в зависимости от количества дней, пройденных с начала года.

Вариант 19

Создать класс «Предметный указатель». Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову, от одного до десяти. Предусмотреть возможность формирования указателя с клавиатуры и из файла, вывода указателя, вывода номеров страниц для заданного слова, удаления элемента из указателя.

Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Вариант 20

Создать класс для работы с регулярными выражениями. Класс должен содержать закрытые поля для хранения шаблона поиска (тип Regex) и текста (тип String). Предусмотреть свойства для получения состояния объекта.

Класс должен реализовывать следующие возможности:

• получение и вывод текста на экран;

• определение, содержит ли текст фрагменты, соответствующие шаблону поиска;

• вывод на экран всех фрагментов текста, соответствующих шаблону поиска;

• удаление из текста всех фрагментов, соответствующих шаблону поля.

Вариант 21

Создать класс «Преподаватель», содержащий следующие закрытые поля: ФИО, предмет, группа, даты занятий. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Расписание», позволяющий хранить сведения о всех преподавателях учебного заведения и их графике работы. Реализовать следующие возможности:

• вывод информации о преподавателе на экран;

• изменение расписания;

• вывод информации о занятиях на заданную дату (преподаватель, группа, предмет);

• упорядочивание списка преподавателей по различным данным (фамилия, предмет, количество групп).

Вариант 22

Создать класс «Число», содержащий закрытое поле для хранения вещественного числа в диапазоне от –35.5 до 35.5. Обеспечить проверку на правильность ввода чисел, предусмотреть свойства для получения состояния объекта.

Создать класс для работы с двухмерным массивом вещественных чисел произвольного размера.

Обеспечить следующие возможности:

• изменение числа строк и столбцов;

• вывод на экран подматрицы любого размера и всей матрицы;

• выполнение операций поэлементного сцепления двух матриц с образованием новой матрицы;

• доступ по индексам к элементу матрицы.

Вариант 23

Создать класс «Англо-русский словарь», обеспечивающий возможность хранения нескольких вариантов перевода для каждого слова. Реализовать доступ по строковому индексу — английскому слову. Обеспечить возможность вывода всех значений слов по заданному префиксу.

Вариант 24

Создать класс «запись», содержащий следующие закрытые поля: ФИО, номер телефона, дата рождения (массив из трех чисел). Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Записная книжка», содержащий закрытый массив записей. Обеспечить:

• вывод на экран информации о человеке, номер телефона которого введен (если такого нет, то выдать соответствующее сообщение);

• поиск людей, день рождения которых сегодня или в заданный день;

• поиск людей, день рождения которых будет в этом месяце;

• поиск людей, номер телефона которых начинается на три заданных цифры.

Вариант 25

Создать класс «Сторона» для хранения длины стороны фигуры. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.

Создать класс «Прямоугольник», обеспечивающий следующие возможности:

• вывод длин сторон прямоугольника на экран;

• расчет периметр и площади прямоугольника;

• определение, является ли данный прямоугольник квадратом;

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

Задание №2.

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

Вариант 1

Создать абстрактный класс File, инкапсулирующий в себе методы Open, Close, Seek, Read, Write, GetPosition и GetLength. Создать производные классы MyDataFile1 и MyDataFile2— файлы, содержащие в себе данные некоторого определенного типа MyData1 и MyData2, а также заголовки, облегчающие доступ к этим файлам.

Создать класс Folder, содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода списка имен и длин файлов. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 2

Создать абстрактный класс Point (точка). На его основе создать классы ColoredPoint и Line. На основе класса Line создать класс ColoredLine и класс PolyLine (многоугольник). Все классы должны иметь виртуальные методы установки и получения значений всех координат, а также изменения цвета и получения текущего цвета.

Создать класс Picture, содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 3

Создать абстрактный класс Vehicle. На его основе реализовать классы Car (автомобиль), Bicycle (велосипед) и Lorry (грузовик). Классы должны иметь возможность задавать и получать параметры средств передвижения (цена, максимальная скорость, год выпуска и т.д.). Наряду с общими полями и методами, каждый класс должен содержать и специфичные для него поля.

Создать класс Garage, содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 4

Создать абстрактный класс Figure. На его основе реализовать классы Rectangle (прямоугольник), Circle (круг) и Trapezium (трапеция) с возможностью вычисления площади, центра тяжести и периметра.

Создать класс Picture, содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 5

Создать абстрактный класс Number c виртуальными методами, реализующими арифметические операции. На его основе реализовать классы Integer и Real.

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 6

Создать абстрактный класс Body. На его основе реализовать классы Parallelepiped (прямоугольный параллелепипед), Cone (конус) и Ball (шар) с возможностью вычисления площади поверхности и объема.

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 7

Создать абстрактный класс Currency для работы с денежными суммами. Определить в нем методы перевода в рубли и вывода на экран. На его основе реализовать классы Dollar, Euro и Pound (фунт стерлингов) с возможностью пересчета в центы и пенсы соответственно.

Создать класс Purse (кошелек), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода общей суммы, переведенной в рубли, и суммы по каждой из валют. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 8

Создать абстрактный класс Triangle (треугольник), задав в нем длину двух сторон, угол между ними, методы вычисления площади и периметра. На его основе создать классы, описывающие равносторонний, равнобедренный и прямоугольный треугольники со своими методами вычисления площади и периметра.

Создать класс Picture, содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка и получения суммарной площади. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 9

Создать абстрактный класс Solution (решение) с виртуальными методами вычисления корней уравнения и вывода на экран. На его основе реализовать классы Linear (линейное уравнение) и Square (квадратное уравнение).

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 10

Создать абстрактный класс Function (функция) с виртуальными методами вычисления значения функции y = f(x) в заданной точке х и вывода результата на экран. На его основе реализовать классы Ellipse, Hiperbola и Parabola.

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 11

Создать абстрактный класс Triad (тройка) с виртуальными методами увеличения на 1. На его основе реализовать классы Date (дата) и Time (время).

Создать класс Memories, содержащий параметризованную коллекцию пар (дата-время) объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка и выборки самого раннего и самого позднего событий. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 12

Описать абстрактный класс Element (элемент логической схемы), задав в нем числовой идентификатор, количество входов, идентификаторы присоединенных к нему элементов (до 10) и двоичные значения на входах и выходе. На его основе реализовать классы AND и OR — двоичные вентили, которые могут иметь различное количество входов и один выход и реализуют логическое умножение и сложение соответственно.

Создать класс Sсheme (схема), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможности вывода характеристик объектов списка и вычисление значений, формируемых на выходах схемы по заданным значениям входов. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 13

Описать абстрактный класс Element (элемент логической схемы) задав в нем символьный идентификатор, количество входов, идентификаторы присоединенных к нему элементов (до 10) и двоичные значения на входах и выходе. На его основе реализовать классы AND_NOT и OR_NOT — двоичные вентили, которые могут иметь различное количество входов и один выход и реализуют логическое умножение c отрицанием и сложение c отрицанием соответственно.

Создать класс Sсheme (схема), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможности вывода характеристик объектов списка и вычисление значений, формируемых на выходах схемы по заданным значениям входов. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 14

Описать абстрактный класс Trigger (триггер), задав в нем идентификатор и двоичные значения на входах и выходах. На его основе реализовать классы RS и JK, представляющие собой триггеры соответствующего типа.

Создать класс Register (регистр), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможности вывода характеристик объектов списка, общего сброса и установки значений каждого триггера по заданным значениям входов. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 15

Создать абстрактный класс Progression (прогрессия) с виртуальными методами вычисления заданного элемента и суммы прогрессии. На его основе реализовать классы Linear (арифметическая) и Exponential (геометрическая).

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка и вывода общей суммы всех прогрессий. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 16

Создать абстрактный класс Pair (пара значений) с виртуальными методами, реализующими арифметические операции. На его основе реализовать классы Fractional (дробное) и LongLong (длинное целое).

В классе Fractional вещественное число представляется в виде двух целых, в которых хранятся целая и дробная часть числа соответственно. В классе LongLong длинное целое число хранится в двух целых полях в виде старшей и младшей части.

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка и вывода общей суммы всех значений. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 17

Создать абстрактный класс Integer (целое) с символьным идентификатором, виртуальными методами, реализующими арифметические операции, и методом вывода на экран. На его основе реализовать классы Decimal (десятичное) и Binary (двоичное). Число представить в виде массива цифр.

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода значений и идентификаторов всех объектов списка и вывода общей суммы всех десятичных значений. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 18

Создать абстрактный класс Sorting (сортировка) с идентификатором последовательности, виртуальными методами сортировки, получения суммы и вывода на экран. На его основе реализовать классы Choice (метод выбора) и Quick (быстрая сортировка).

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода идентификаторов и сумм элементов каждого объекта списка, а также вывода общей суммы всех значений. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 19

Создать абстрактный класс Pair (пара значений) с виртуальными методами, реализующими арифметические операции, и методом вывода на экран. На его основе реализовать классы Money (деньги) и Complex (комплексное число).

В классе Money денежная сумма представляется в виде двух целых, в которых хранятся рубли и копейки соответственно. При выводе части числа снабжаются словами «руб.» и «коп.». В классе Complex предусмотреть при выводе символ мнимой части (i).

Создать класс Series (набор), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Вариант 20

Создать абстрактный класс Worker с полями, задающими фамилию работника, фамилии руководителя и подчиненных и виртуальными методами вывода списка обязанностей и списка подчиненных на экран. На его основе реализовать классы Manager (руководитель проекта), Developer (разработчик) и Coder (младший программист).

Создать класс Group (группа), содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода всех объектов списка и выборки по фамилии с выводом всего дерева подчиненных. Написать демонстрационную программу, в которой будут использоваться все методы классов.

Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.

Список литературы.

1. Шилдт, Герберт С# 4.0 Полное руководство. : Пер. с английского. М. – ООО «И.Д. Вильямс», 2011 – 1056 с. : ил.

2. Уотсон, К. Visual С# 2010: полный курс.: Пер. с англ. — М.: ООО И.Д. Вильяме, 2011. — 960 с. : ил.

3. Троелсен, Эндрю. Язык программирования С# 2010 и платформа .NET 4.0, 5-е изд. : Пер. с англ. — М. : ООО И.Д. Вильяме, 2011. — 1392 с. : ил.

Приложение 1

ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА ПО КОНТРОЛЬНОЙ РАБОТЕ

1. Отчет по контрольной работе сдается в бумажном виде после обязательной регистрации. Преподавателю отправляется в электроном виде.

2. Имя файла отчета «Фамилия_Номер_группы_Номер_варианта».

Пример: Иванов_4017412_15.docx

3. Версия редактора Word не менее Word 2010. Общие требования к оформлению текста представлены ниже.

4. Содержание отчета

— титульный лист

— содержание

— задание

— исходный код

— скриншоты работы приложения

— заключение

— список использованной литературы

Требования к разделам: Титульный лист должен обязательно содержать – фамилию, имя, отчество, номер группы, номер варианта. Исходный код, представленный в отчете, должен обязательно содержать комментарии к ключевым строкам программы (подписать классы, методы). Скриншоты работы приложения должны полностью раскрывать все функциональные возможности разработанного приложения.

Как оформить титульный лист по ГОСТу


Похожие статьи.

Понравилась статья? Поделиться с друзьями: