C++
На основе класса из варианта задания лабораторной 1 ч.1 с одним классом создать производный класс и выполнить действия по варианту. Примеры указаны для классов Record и Sprint.
1.
В производном классе добавляется указанное поле private и 3 метода public , типа Get, Put, Display(через printf) для работы с этим полем.
Пример:
class Sprint:public Record
{
....
private:
int dec;
.....
public:
int Getdec();
...
};
int Sprint::Getdec()
{
return dec;
}
...
2.
Исходные поля базового класса остаются private, (например, int x;) к ним добавляются protected методы доступа к ним (например, int Getx(); )
Пример:
class Record
{
private:
int min,sec;
......
protected:
int Getmin();
......
};
....
int Record::Getmin()
{
return min;
}
3.
Указанная функция базового класса перегружается для производного с учетом нового поля, при этом базовая функция не вызывается, а доступ к полям базового класса выполняется доступ protected методами из пункта 2.
Пример:
Округление до минут.
class Record
{
.....
public:
int Okr();
.....
};
int Record::Okr()
{
int k;
if(sec>=30)
k=1;
else
k=0;
return min+k;
}
class Sprint:public Record
{
public:
int Okr();
.....
}
int Sprint::Okr()
{
int m,n;
m=Getsec(); // protected метод для секунд
if(dec>=5)
m++;
n=Getmin(); // protected метод
if(m>=30)
n++;
return n;
}
4.
Выполняется перегрузка функции Init для производного класса с вызовом функции базового класса.
void Sprint::Init(int m,int s, int d)
{
Record::Init(m,s); // вызов метода из другого класса
dec=d;
}
5.
В базовом и производном классах создать конструкторы с параметрами. Продемонстрировать в конструкторе производного класса вызов конструктора базового класса [см. 11) лек.6]
6.
В main создать статические и динамические объекты базового и производного классов, продемонстрировать работу public методов классов, а также вызов объектом производного класса метода базового класса (Record::Init ...). [см. 10) лекции 6]
В 1.
п. 1 Производный класс - отрезок на плоскости параллельной X0Y . Добавлено вещественное поле z – расстояние между плоскостями.
п. 3 Перегружаемая функция - длина отрезка производного класса – это длина отрезка на параллельной плоскости плюс расстояние z между плоскостями.
В 2.
п. 1 В производном классе добавлен знак числа – поле int znak, принимающее значения 1, 0, -1 в зависимости от того, положительное или отрицательное число или равно нулю.
п. 3 При выделении дробной части объекта производного класса, она может быть отрицательной или равной нулю.
В 3.
п. 1 В производный класс включен знак числа, поле int znak, принимающее значения 1, 0, -1 в зависимости от того, положительное или отрицательное число или равно нулю.
п. 3 При округлении до ближайшего целого может получиться в результате отрицательное число или равное нулю.
В 4.
п. 1 Производным является класс цилиндр, содержащий кроме окружности также длину стороны z.
п. 3 Расстояние от цилиндра до начала координат измеряется от точки центра окружности и середины стороны z.
В 5.
п. 1 Производный класс – прямоугольник на плоскости, параллельной X0Y на расстоянии z.
п. 3 Под “площадью” такого прямоугольника понимается объем соответствующего параллелепипеда.
В 6.
п. 1 Производным классом является прямоугольник, к интервалу добавлено значение стороны y по вертикали
п. 3 Под «длиной” такого интервала понимается площадь прямоугольника.
В 7.
п. 1 Производный класс – угол, расположенный на плоскости, параллельной оси X0Y на расстоянии z.
п. 3 При округлении до градусов величина z округляется до ближайшего целого и добавляется к округленному значению по градусам.
В 8.
п. 1 Производным классом является точка в пространстве.
п. 3 Расстояние вычисляется до точки в пространстве (x –y –z).
В 9.
п. 1 Производным является класс треугольников, находящихся на плоскости, параллельной X0Y на расстоянии z.
п. 3 “Периметр” такого треугольника – периметр треугольника на X0Y плюс z.
В 10.
п. 1 В производном классе добавлено поле int, принимающее значения 1, 0, -1 в зависимости от тогго, является ли число положительным или отрицательным.
п. 3 При переводе в обычное целое учитывается знак числа.
В 11.
п. 1 В производном классе добавлено число купюр по 500 рублей.
п. 3 При вычислении общей суммы денег учитываются такие купюры.
В 12.
п. 1 Производный класс - отрезок по лучу, начальная точка с координатами x,y,z , конечная точка находится на расстоянии A от начальной по лучу , проходящему через начало координат и начальную точку.
п. 3 Расстояние от отрезка до начала координат – это расстояние от середины отрезка.
В 13.
п. 1 В производном классе имеется поле год
п. 3 При вычислении числа дней считаются дни от даты 00.00.0000
В 14.
п. 1 Производным классом являются вектора на плоскости, параллельной X0Y на расстоянии z.
п. 3 При вычислении длины такого вектора к длине на плоскости добавляется z.
В 15.
п. 1 Производный класс – пространственные комплексные числа – добавлена вещественная координата z.
п. 3 При вычислении модуля пространственных чисел добавляется модуль координаты z.
В 16.
п. 1 Производный класс – мировая линия в пространстве-времени. Добавлена величина T – промежуток между начальной и конечной точкой.
п. 3 При вычислении длины (интервала) квадрат T добавляется к квадрату пространственного отрезка и от суммы извлекается квадратный корень.
В 17.
п. 1 В производный класс добавлено поле «гроши” – число десятых долей копейки [0-9]. При крупных партиях дорогих лекарств так определяется оптовая цена.
п. 3 При округлении до рублей учитываются гроши.
В 18.
п. 1 В производный класс добавлено целое (или булевское) поле, равное 1 (северной широты) или -1 (южной долготы).
п. 3 При округлении до градусов (целое число) учитывается расположении точки на полушариях.
В 19.
п. 1 Производный класс – цилиндрические пространственные координаты. К полярным координатам добавлена вещественная z.
п. 3 Расстояние от точки в цилиндрических координатам вычисляется с учетом z.
В 20.
п. 1 Производным является класс прямоугольник, в котором добавлено вещественное поле отношение длины стороны по OX к длине по OY (длина по OX задана в базовом как длина квадрата).
п. 3 Для производного класса вычисляется расстояние от ближайшей точки до начала координат.
В 21.
п. 1 Производным классом является параболоид в пространстве, к параболе добавлено число z, расстояние от плоскости XOY до вершины параболы.
п. 3 При вычислении расстояния до начала координат учитывается эта величина.
В 22.
п. 1 В производном классе добавлен специальный канал альфа - целое число [0,255].
п. 3 При вычислении яркости ч/б точки она умножается на значение альфа.
В 23.
п. 1 В производном классе добавлена масса примесей.
п. 3 При вычислении плотности учитывается общая масса.
В 24.
п. 1 В производном классе добавлено количество тысячей.
п. 3 При вычислении значения числа учитываются тысячи.
В 25.
п. 1 В производном классе эллипс на плоскости параллельной XoY добавлено поле z расстояние между плоскостями.
п. 3 Площадь равна Pi a b z.
Java
1.
Создать подкласс от вспомогательного класса (суперкласс) по варианту задания, используя javatask1b ч. 1. Поля суперкласса - private, методы доступа к ним - protected.
2.
Перегрузить метод суперкласса по варианту для метода подкласса с учетом дополнительного поля.
3.
Задать 2 конструктора с параметрами для суперкласса и для подкласса. Создать public класс с main и продемонстрировать работу с объектами суперкласса и подкласса в main.
В 1 Подкласс – товар марки brand. Поле – процент наценки за “фирму” Перегружаемый метод – стоимость товара.
В 2 Подкласс содержит количество поле денег “на карточке”.
Перегружаемый метод – сумма денег.
В 3 Подкласс имеет “коэффициент вредности” продукта >1. При расчетах калорийность 100 гр. умножается на этот коэффициент.
Перегружаемый метод – число калорий, в основном классе вычисляется общая сумма калорий.
В 4 Подкласс содержит вещественное поле, коэффициент роуминга, который умножается на стоимость минуты. Перегрузить метод вычисления стоимости.
В 5 Подкласс является точкой, расположенной на плоскости на расстоянии z от XOY. Перегрузить метод вычисления расстояния на начала координат от точки.
В 6 В подклассе имеется вещественное поле, определяющее долю рабочего дня, которую работает данный сотрудник (неполный день - 0,5 0,7 и т.д.) Перегрузить метод вычисления суммы денег за рабочие дни.
В 7 Подклассом является параллелепипед с дополнительным полем стороной z. Под "площадью" параллелепипеда понимается его объем.
В 8 Подклассом является цилиндр, имеющий дополнительную величину сторону z. Под площадью подкласса понимается площадь поверхности.
В 9 Подклассом являются цилиндрические координаты, имеющие дополнительную координату z. Перегружаемый метод - вычисление расстояния от точки до начала координат.
В 10 Подклассом является квадратное уравнение. a x^2+px+q=0. Перегрузить метод, вычисляющий дискриминант.
В 11 Подклассом является отрезок, параллельный оси OX, находящийся на расстоянии y от оси OX. Под координатой середины такого отрезка понимается полусумма y и середина проекции на ось ОХ.
В 12 Подклассом является парабола у =(x-A)^2+Cx+B. Перегружается метод вычисления значения y при заданном аргументе.
В 13 Подклассом является призма с основанием ромб и заданной высотой z. Под площадью призмы понимается ее объем.
В 14 Подкласс имеет целое поле K (0,1). Если K=1, маршрут укороченный и стоимость равна половине обычной.
В 15 Подкласс содержит поле целая часть числа, но при этом дробь может быть неправильной (3 7/4). Перегрузить метод ipart () — выделение целой части дроби.
В 16 Подклассом является параллелепипед с дополнительной стороной z. Перегружается периметр.
В 17. Подклассом является пространственное комплексное число: ai+bj+ck .
Перегрузить метод вычисления модуля комплексного числа. Для подкласса модуль равен sqrt(a^2+b^2+c^2).
В 18 Подкласс – пирамида с основанием прямоугольного треугольника и высотой z. Под площадью объекта подкласса понимается объем пирамиды.
В 19 Подклассом является парабола у =(x-A)^2+Bx+D. Перегрузить метод dist()— вычисление расстояния от вершины параболы до начала координат.
В 20 В подклассе добавлено поле Z (-1 0 1), определяющее является ли число отрицательным, равным нулю или положительным. Перегрузить метод, округления числа до ближайшего целого.
В 21 Подкласс является точкой, расположенной на плоскости на расстоянии z от XOY. Перегрузить метод для подкласса, вычисляющий угол между лучом, соединяющим точку с началом координат и плоскостью XOY.
В 22 В подклассе добавлено число секунд. Перегрузить метод, вычисляющий число градусов, после округления угла до градусов.
В 23 В подклассе добавлено поле - количество практических работ. Перегрузить метод, вычисляющий трудоемкость предмета, равную отношению числа лекций к числу лабораторных и практических работ.
В 24 Подклассом является гипербола, находящаяся на плоскости, параллельной XOY на расстоянии z. Перегрузить метод, вычисляющий наименьшее расстояние от гиперболы до начала координат.
В 25 Подклассом является прямоугольная призма, в основании которой лежит ромб (добавлена координата z). Под площадью производного объхекта понимается объем.
C#
1.
Создать производный класс от класса задания task3b ч.1 по варианту. поля основного класса private, методы доступа к ним - protected.
2.
Перегрузить метод по варианту для метода производного класса с учетом дополнительного поля. Сделать вариант с вызовом базового метода и вычисления через поля базового.
3.
Задать 2 конструктора с параметрами для базового и поизводного классов. В main продемонстрировать работу с объектами классов.
В 1
Производный класс - иностранная книга. Добавлены поля название страны и цена книги в валюте государства.
Перегружаемый метод - текущая цена книги - Current Price(int Currentyear,int Kurs). Для базового класса текущая цена вычисляется как цена плюс добавка равная
цена*(текущий год минус год издания)*Kurs*0,01
Kurs - означает процент надбавки цены каждый год для книги.
Для иностранной книги Kurs - курс валюты в текущем году и цена равна цена в валюте государства*Kurs.
В 2
Производный класс - телефон с выходом на межгород. Дополнительное поле - сумма по оплате междугородних телефонов. Перегружаемый метод - баланс, равный разности суммы оплаты и долга. Для производного класса учитывается в сумме и междугородние переговоры.
В 3
Производный класс - автомобиль класса люкс. Дополнительное поле - процент надбавки к базовой стоимости суммы за "навороты". Перегружаемый метод - отношение стоимости к объему двигателя, в производном классе считается общая стоиимость.
В 4
Производный класс - игровой компьютер, имеет поля дополнительный объем оперативной памяти и объем дополнительного жесткого диска. Перегружаемый метод - отношение объема постоянной памяти к оперативной, в производном классе учитываются дополнительные объемы.
В 5
Производный класс - игрушки известных фирм. Дополнительное поле - процент надбавки к базовой цене. Перегружаемый метод - отношение производительности к цене. В производном классе цена берется с учетом надбавки.
В 6
Производный класс - победитель олимпиад. Дополнительное поле - коэффициент, на который умножается средний рейтинг студента, за его достижения. Перегружаемый метод имеет целочисленный аргумент z=1,2,0 - первая, вторая аттестация и рейтинг перед началом сессии. Для первой аттестации рейтинг умножается на 0,2 , второй - на 0,3 а перед сессией на 0,5. В производном классе учитываются достижения студента.
В 7
В производном классе добавлено часов практических занятий. Перегружаемый метод - трудоемкость дисциплины, равную отношению количества лекций к количеству лабораторных работ. В производном классе к лабораторным добавляются практические работы.
В 8
В производном классе меется поле - процент по вкладу, в базовом процент по вкладу - константа. Перегружаемый метод имеет аргумент - количество лет и вычисляет остаток через данное число лет.
В 9
Производный класс - льготный пациент, добавлено поле, равное 1, если пациент имеет правительственные награды или участник ВОВ. Перегруженный метод возвращающий true, если пациент имеет право на льготные лекарства. Для базового класса - это инвалиды 2-5 групп, в производном также люди с наградами.
В 10
В производном классе добавлено поле - наличие научной степени. (0 - нет, 1 - кандидат, 2 - доктор). Перегруженный метод - вычисление отношения оклада к стажу. Для производного класса к окладу для кандидатов добавлено 3000, докторов - 7000.
В 11
В производном классе добавлено поле сборы в прокате. Перегруженный метод - отношение продолжительности к бюджету для базового класса и отношение продолжительности к сборам в прокате для производного.
В 12
В производном классе - импортная мебель добавлено поле - процент пошлины за импорт. Перегружаемый метод - стоимость одного элемента мебели (общая стоимость/ количество). В производном классе учитывается наценка.
В 13
В производном классе учитывается стоимость подарочной упаковки. Перегружаемый метод - стоимость грамма изделия, равное цене деленной на вес. В производном классе от стоимости отнимается стоимость упаковки.
В 14
В производном классе добавлена площадь подвала. Перегружаемый метод - площадь, приходящуюся на одну квартиру. В производном классе рассматривается общая площадь дома с учетом подвала.
В 15
В производном классе к весу лекарства в таблетке добавлен вес дополнительных примесей для улучшения действия лекарства. Перегружаемый метод - вес упаковки, в производном классе учитывается вес примесей.
В 16
В производном классе добавлено поле, равное площади кухни и коридора. Перегружаемый метод - площадь на одну комнату, общая площадь, деленная на количество комнат. В производном классе из общей площади вычитается площадь кухни с коридором.
В 17
Производный класс - укороченный маршрут, содержит вещественное поле, равное доле исходного маршрута. (1/2 - маршрут половины длины). Перегружаемый метод содержит аргумент целое n, равное число рейсов и вычисляет общее расчетное время. В перегруженном методе учитывается коэффициент.
В 18
Производный класс - укороченный маршрут, содержит вещественное поле, равное доле исходного маршрута. (1/2 - маршрут половины длины). Перегружаемый метод содержит аргумент целое n, равное число рейсов и вычисляет общее расчетное время автобуса за все рейсы. В перегруженном методе учитывается коэффициент.
В 19
Производный класс - электронная версия журнала. Добавлено поле - стоимость типографских услуг. Перегружаемый метод - стоимость подписки, равная стоимости номера, умноженная на периодичность. В производном классе от стоимости вычитается стоимость типографских услуг.
В 20
Производный класс - коллекционные марки, которые имеют некоторый дефект из всей серии, при этом цена возрастает. Добавлено вещественное поле, коэффициент, на который умножается цена. Перегружаемый метод имеет вещественный апгумент z, процент увеличения цены в течение года. Метод возвращает цену в год выпуска. Для коллекционных марок учитывается их ценность.
В 21
В производном классе имеется поле - процент стоимости примесей к основному красителю. Перегружаемый метод имеет аргумент n - количество краски и вычисляет общую стоимость всей краски. В производном классе берется стоимость только основного красителя.
В 22
В производном классе добавлен год первого исполнения, который может не совпадать с годом создания. Перегружаемый метод имеет аргумент заданный год и вычисляет количество лет от создания произведения, в производном классе от первого исполнения.
В 23
В производном классе выделена отдельным полем цена проживания (без дороги). Перегружаемый метод имеет аргумент n - число путевок и вычисляет их общую стоимость. В производном классе учитывается только стоимость проживания.
В 24
Производный класс - фирменная одежда имеет вещественное поле - коэффициент наценки за бренд. Перегружаемый метод имеет целочисленный аргумент n - число единиц одежды и вычисляет общую стоимость. В производном классе учитывается коэффициент за бренд.
В 25
В производном классе отдельно выделена стоимость материала изделия. Перегружаемый метод - стоимость единицы изделия, равной цене деленной на размер. В производном классе учитывается только стоимость материала.