1.
Поле названия основного класса из task1b ч.2 в виде массива char заменить на указатель *char. Добавить конструктор копии для основного класса и перегрузить оператор присваивания. Выполнить 2 варианта с мелким и глубоким копированием конструктора копии и продемонстрировать их различие.
2.
C++
Выполнить задание на основе класса из варианта задания лабораторной 1 ч.2 с двумя классами
1) Определить производный класс к вспомогательному классу по варианту задания.
2) Перегрузить метод базового вспомогательного класса с учетом дополнительного поля по варианту задания.
3) Задать 4 конструктора по 2 на базовый и производный классы со всеми параметрами и без параметров с вызовом конструктора базового класса. В main задать объекты по всем конструкторам.
4) Задать новый основной класс, который вместо 3 полей вспомогательного как в task1b содержит одно поле базового вспомогательного класса и одно поле производного вспомогательного класса.
Например, для примера из лекции можно определить класс:
class Runner
{
.................
private:
Record r;
Sprint s;
..................
};
5) Определить для основного класса конструктор со всеми параметрами, и в main задать объекты основного класса.
Runner::Runner(string s,int m1,int s1,int m2,int s2,int d)
{
.......
r.Init(m1,s1);
s.Init(m2,s2,d);
......
}
6) Опредить метод основного по варианту задания и продемонстрировать его вызов в main.
Например, для Runner определим общее число секунд по 2 результатам:
int Runner::Totalsec()
{
int k1,k2;
k1=r.Numbersec(); // 60*min+sec
k2=s.Numbersec(); // 60*min+sec; if (dec>5) sec++;
return k11+k2;
}
В 1. В производном классе определяется целое поле - количество хлебных единиц, при вычислении ценности продукта в знаменатель добавляется удвоенное число хлебных единиц. В основном классе вычисляется средняя ценность двух продуктов.
В 2. В производном классе добавлено поле - общая стоимость драгоценных примесей в элементе в 100 граммах. При вычислении стоимости элемента учитываются эти примести.
В основном классе вычисляется суммарная стоимость изделия с учетом 2 элементов.
В 3. В производном классе (курортный город) добавлено поле - число жителей, приехавших на отдых. При вычислении плотности в производном классе эти жители учитываются. В основном классе вычисляется средняя плотность населения.
В 4. В производном классе добавляются часы на лабораторные работы, которые добавляются к общему количеству часов. Метод основного класса - вычисление суммарной нагрузки по 2 предметам с лабораторными и без.
В 5. Производный класс имеет целое поле - процент пассажиров, оплачивающих постельное белье, при этом цена билета возрастает на 50 рублей. При вычислении ожидаемого дохода, учитывается эта сумма. Метод основного класса вычисляет суммарный доход от двух рейсов.
В 6. В производном классе содержится поле сорт. Стоимость 1 гр. второго сорта не меняется, третьего уменьшается на 10%, первого - увеличивается на 30%. Метод основного класса вычисляет стоимость блюда по двум добавкам.
В 7. В производном классе имеется целое поле, равное 0 или 1. Если оно равно 1 - это премьера и цена билета увеличивается на 30%.Метод основного класса вычисляет сумму денег от 2 спектаклей.
В 8. В производном классе имеется целое поле, равное 0 или 1. Если оно равно 1 - это орошаемое поле и стоимость от продажи увеличивается на 30%.Метод основного класса вычисляет сумму прибыли.
В 9. В производном классе имеется целое поле, равное 0 или 1. Если оно равно 1 - это горящая путевка и стоимость от продажи уменьшается на 30%.Метод основного класса вычисляет сумму денег от продаж.
В 10. В производном классе имеется целое поле, равное 0,1,2. Если оно равно 1 - это плацкарт и стоимость от продажи не меняется, 0 - общий вагон и стоимость уменьшается на 30%, 2 - купе - стоимость возрастает на 50% .Метод основного класса вычисляет сумму денег от продаж.
В 11. В производном классе - ценная книга, имеется целое поле - признак ценности. Если значение признака равно 0 - ценность считается обычно, если 1 - стоимость удваивается. Метод основного класса вычисляет общую стоимость.
В 12. В производном классе имеется целое поле, равное 0,1,2. Если оно равно 1 - это производственное помещение и стоимость от продажи не меняется, 0 - склад и стоимость уменьшается на 30%, 2 - жилое помещение - стоимость возрастает на 50% .Метод основного класса вычисляет суммарную стоимость 2 помещений минус затраты.
В 13. В производном классе - ценная книга, имеется целое поле - признак ценности. Если значение признака равно 0 - ценность считается обычно, если 1 - стоимость увеличивается на 30% (компонента известной фирмы). Метод основного класса вычисляет среднюю экономичность компоненты.
В 14. В производном классе добавляется общая стоимость СМС. Метод основного класса вычисляет суммарную оплату по двум операторам.
В 15. В производном классе указывается число проживающих взрослых и отдельно детей. При вычислении площади на человека количество детей умножается на 2. Метод основного класса вычисляет среднюю площаддь на человека по 2 комнатам.
В 16. В производном классе имеется целое поле, равное 0,1,2. Если оно равно 1 - это обычный товар и стоимость от продажи не меняется, 0 - товар с оканчивающимся сроком годности и стоимость уменьшается на 30%, 2 скоропортящийся товар - стоимость возрастает на 50% .Метод основного класса вычисляет суммарную стоимость двух товаров.
В 17. Производный класс содержит общее число мест и мест 1 класса, стоимость билета в которые в 2 раза больше. Метод основного класса вычисляет суммарную выручку двух рейсов.
В 18. В производном классе - предмет с ЕГЭ, имеется целое поле - признак ЕГЭ. Если значение признака равно 0 - трудоемкость считается обычно, если 1 - трудоемкость удваивается. Метод основного класса вычисляет средний рейтинг ученика.
В 19. В производном классе имеется целое поле, равное 0,1,2. Если оно равно 1 - это обычное здание и стоимость не меняется, 0 - склад и стоимость уменьшается на 30%, 2 офисное помещение - стоимость возрастает на 50% .Метод основного класса вычисляет суммарную стоимость двух зданий.
В 20. В производном классе имеется целое поле, равное 0,1. Если оно равно 1 - это номер люкс и стоимость удваивается. Метод основного класса вычисляет суммарный доход гостиницы.
В 21. В производном классе имеется целое поле, равное 0,1. Если оно равно 1 - это гимназия и при расчете количества учеников на учителя величина удваивается. Метод основного класса вычисляет среднее число учеников по двум школам.
В 22. В производном классе имеется целое поле, равное 0,1. Если оно равно 1 - это вредная работа и при расчете суммы выплаты величина удваивается. Метод основного класса вычисляет среднее значение выплаты двум работникам.
В 23. В производном классе имеется целое поле, равное 0,1. Если оно равно 1 - это труднодоступные ископаемые и при расчете стоимости величина удваивается. Метод основного класса вычисляет среднее значение доходности рудника двум ископаемым.
В 24. В производном классе имеется целое поле, равное количеству избирателей и отдельно людей, голосующих на дому. Метод основного класса вычисляет общий процент проголосовавших по двум кандидатам.
В 25
В производном классе для кинофильма учитывается доход от продажи дисков с DVD, как дополнительное поле. При вычислении окупаемости учитывается это поле.
3.
Java
Создать новый основной класс, содержащий одно поле суперкласса и одно поле подкласса. Заменить метод из task2b ч.2, в связи с заменой одного поля вспомогательного на подкласс вспомогательного класса.
Кроме этого, должен быть класс с main (lab4 , work и т.д.). Создать 2 проекта. Один проект содержит суперкласс вспомогательного, подкласс вспомогательного, основной и public класс, содержащий main. Во втором проекте 4 класса образуют пакет, все классы public и содержатся в разных файлах с таким же именем.
4.
C#
В задании task3b ч. 2 3 поля вспомогательного класса заменить на одно поле базового вспомогательного класса и одно поле производного вспомогательного класса. Создать конструкторы базового вспомогательного и производного вспомогательного классов, а также конструктор со всеми параметрами. Заменить метод, определенный task3b ч. 2 на метод с двумя полями.
5.
В новом проекте для Java создать интерфейс, в котором объявлен метод реализованный в суперклассе вспомогательного класса и перегруженного в подклассе. В main продемонстрировать работу интерфейса. [см. 12) лек. 6]
6.
В новом проекте основной класс, содержащий одно поле суперкласса вспомогательного и одно поле вспомогательного подкласса сделать Cloneable. Продемонстрировать в main варианты мелкого и глубокого клонирования (2 разных проекта). [см. 12) лек. 6]
7.
В новом проекте для C# создать интерфейс, в котором объявлен метод реализованный в базовом вспомогательном классе и перегруженного в производном. В main продемонстрировать работу интерфейса.
7.
В новом проекте для C# класс, содержащий одно поле вспомогательного базового и одно поле вспомогательного производного класса сделать ICloneable. Продемонстрировать в main вариант глубокого клонирования.