Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Progi / Lesson 6 / task6b

.doc
Скачиваний:
29
Добавлен:
28.03.2015
Размер:
52.74 Кб
Скачать

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 вариант глубокого клонирования.

Соседние файлы в папке Lesson 6