Назад
Уперед
Зміст
Варіанти завдань
У кожному варіанті створити абстрактний і його дочірні класи.
Абстрактні методи перевизначити в дочірніх класах.
У методі Main:
- Описати змінну абстрактного класу.
- У циклі із трьох витків випадковим образом одержувати значення.
- Залежно від умови завдання привласнити описаної змінної об'єкт одного з дочірніх класів.
- Застосувати до створеного об'єкта перевизначені методи.
Варіант 1
Створити абстрактний клас Press (преса) утримуючий:
Поля: назва, ціна за одиницю.
У класі повинні бути абстрактні методи:
- метод Setprice ( без параметрів) – установка ціни.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Magazine - журнал,
- Book- книга.
Клас Magazine містить:
Крім полів батьківського класу, містить поля: тип журналу (глянсовий чи ні ), а також кількість номерів у рік.
Конструктор з параметрами: назва, тип журналу, кількість номерів у рік
Перевизначити методи:
- Setprice привласнює значення полю ціна. Якщо журнал глянсовий, то 200. Якщо журнал звичайний, то 100.
- Info формує рядок зі значеннями полів.
Клас Book містить:
Крім полів батьківського класу містить поля: автор, кількість сторінок, тип обкладинки (м'яка, тверда)
Конструктор із трьома параметрами: автор, назва, кількість сторінок, тип обкладинки.
Перевизначити методи:
- Setprice привласнює значення полю ціна.
Ценa книги = кількість сторінок * 0,2 + 5 (якщо обкладинка м'яка) або + 15
(якщо обкладинка тверда).
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 2
Створити абстрактний клас Transport (транспорт) утримуючий:
Поля:
- швидкість;
- собівартість перевезення вантажу;
- вартість перевезення вантажу.
У класі повинні бути абстрактні методи:
- метод Cost ( без параметрів) – обчислення вартості перевезення вантажу.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Marine - морський транспорт,
- Ground - наземний транспорт.
Клас Marine містить:
Усі поля успадковуються з батьківського класу.
Конструктор із двома параметрами: швидкість і собівартість перевезення вантажу.
Перевизначити методи:
- Cost - обчислює вартість перевезення вантажу по формулі: собівартість/швидкість. Заповнює поле вартість перевезення вантажу.
- Info формує рядок зі значеннями полів.
Клас Ground містить:
Крім полів батьківського класу, містить поле дорожній збір.
Конструктор із трьома параметрами: швидкість, собівартість перевезення вантажу й дорожній збір.
Перевизначити методи:
- Cost - обчислює вартість перевезення вантажу по формулі: собівартість/швидкість+ дорожній збір. Заповнює поле вартість перевезення вантажу.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 3
Створити абстрактний клас Solution (рівняння) без полів
У класі повинні бути абстрактні методи:
- Existence логічний метод. Визначає, чи їсти коріння.
- Root, рядок утримуюча значення корінь.
На його основі реалізувати дочірні класи:
- Linear - лінійне рівняння ( по двом коефіцієнтам)
- Square - квадратичне рівняння ( по трьом коефіцієнтам)
Клас Linear містить:
Два поля – коефіцієнти лінійного рівняння ax+b=0.
Конструктор із двома параметрами.
Перевизначити методи Existence і Root.
Клас Square містить:
Три поля – коефіцієнти квадратичного рівняння ax2+bx+c=0.
Конструктор із трьома параметрами.
Перевизначити методи Existence і Root.
Відпрацьовування:
Варіант 4
Створити абстрактний клас Lines (лінія) утримуючий:
Поля: числа a,b, які характеризують лінію.
У класі повинні бути абстрактні методи:
- метод F(x,y)визначальний, чи лежить точка з координатами (х,y) на лінії чи ні.
- Метод Info - ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Straightline - пряма. Рівняння прямої: y = ax + b
- Ellipse -еліпс. Рівняння еліпса:
x2/a2 + y2/b2 = 1
- Hyperbola - гіпербола. Рівняння гіперболи:
x2/a2 - y2/b2 = 1
У всіх дочірніх класах:
Усі поля успадковуються з батьківського класу.
Конструктор із двома параметрами, що заповнюють поля a, b.
Перевизначити методи: F(x,y) і Info.
Відпрацьовування 1:
Відпрацьовування 2:
Варіант 5
Створити абстрактний клас Oval без полів
У класі повинні бути абстрактні методи:
- Square - обчислення площі,
- Length - обчислення довжини лінії,
- Str повертає рядок зі значеннями полів.
На його основі реалізувати дочірні класи:
- Ellips - еліпс ( по двом півосям)
- Krug - коло ( по радіусу)
Клас Ellips містить:
Поля: числа a і b - півосі еліпса
Конструктор із двома параметрами.
Перевизначити методи:
- Square - обчислення площі = a*b*pi
- Length -m обчислення довжини лінії =(a+b)*pi
- Str - повертає рядок зі значеннями полів.
Клас Krug містить:
Поле число r - радіус кола.
Конструктор з одним параметром.
Перевизначити методи:
- Square - обчислення площі = pi*r2
- Length - обчислення довжини лінії =2*pi*r
- Str - повертає рядок зі значеннями полів.
Відпрацьовування:
Варіант 6
Створити абстрактний клас Progression (прогресія) утримуючий:
Поля:
- перший член,
- різниця (або знаменник),
- n (номер члена або кількість членів).
У класі повинні бути абстрактні методи:
- обчислення n-го елемента,
- обчислення суми n елементів прогресії,
- метод, що повертає рядок зі значеннями полів.
На його основі реалізувати дочірні класи:
- Linear - арифметична прогресія
- Exponential - геометрична прогресія
Клас Linear містить:
Усі поля успадковуються з батьківського класу.
Конструктор із трьома параметрами: перший член, різниця, n (номер члена або кількість членів).
Перевизначити всі абстрактні методи
Формули:
Клас Exponential містить:
Усі поля успадковуються з батьківського класу.
Конструктор із трьома параметрами: перший член, знаменник, n (номер члена або кількість членів).
Перевизначити всі абстрактні методи
Формули:
Відпрацьовування:
Варіант 7
Створити абстрактний клас Triangle без полів
У класі повинні бути абстрактні методи:
- Square - обчислення площі,
- Perimeter - обчислення периметра
- Str - повертає рядок зі значеннями полів.
На його основі реалізувати дочірні класи:
- Isosceles рівнобедрений трикутник ( по двом сторонам)
- Rectangular прямокутний трикутник ( по двом катетам)
- Equilateral рівносторонній трикутник (по одній стороні)
Перевизначити всі абстрактні методи - Square, Perimeter, Str
Відпрацьовування 1:
Відпрацьовування 2:
Відпрацьовування 3:
Варіант 8
Створити абстрактний клас Student (студент) утримуючий:
Поля: прізвище, кількість відвіданих занять, логічне поле здав: або не здав залік
У класі повинні бути абстрактні методи:
- метод Test ( без параметрів) – логічний метод здав або не здав залік.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Ordinary - звичайний студент,
- Clever - розумний студент,
- Genius - геніальний студент.
Кожний дочірній клас містить:
Усі поля успадковуються з батьківського класу.
Конструктор із двома параметрами: прізвище, кількість відвіданих занять.
Перевизначити абстрактні методи:
- Test. Заповнює логічне поле.
- Звичайний студент здає залік, якщо відвідав 20 занять.
- Розумний студент здає залік, якщо відвідав більше 10 занять
- Геніальний студент здає залік, якщо відвідав хоча б одне заняття.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 9
Створити абстрактний клас Carriage (залізничний вагон) утримуючий:
Поля: ціна за місце, кількість місць і загальна сума виторгу від вагона
У класі повинні бути абстрактні методи:
- метод Cost ( без параметрів) – обчислює дохід від вагона
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- General - загальний вагон,
- Reserved - плацкартний вагон,
- Sleeping - купейний вагон.
Кожний дочірній клас містить:
Усі поля успадковуються з батьківського класу.
У класах Reserved і Sleeping є власне поле вартість додаткових послуг на одне місце.
Перевизначити абстрактні методи:
- Cost. Заповнює поле загальна сума виторгу від вагона.
- У загальному вагоні сума виторгу=ціна*кількість місць.
- У плацкартному вагоні сума виторгу=ціна*кількість місць+вартість додаткових послуг*кількість місць*0.5
- У купейному вагоні сума виторгу=кількість місць*(ціна+вартість додаткових послуг)
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 10
Створити абстрактний клас Body без полів
У класі повинні бути абстрактні методи:
- обчислення площі поверхні,
- обчислення обсягу,
- метод, що повертає рядок зі значеннями полів.
На його основі реалізувати дочірні класи:
- Parallelepiped - прямокутний паралелепіпед ( по трьом ребрам),
- Cone - конус ( по радіусу підстави і висоті)
- Ball - cфера ( по радіусу).
Перевизначити методи обчислення площі поверхні і обсягу, а також формування рядка зі значеннями полів.
Сфера. Формули:
- Площа поверхні=4*pi*r2
- Обсяг=4/3*pi*r3
Конус. Формули:
- Площа поверхні=pi*r(r+ Sqrt(r*r + h * h));
- Обсяг=pi*r2*h/3
Паралелепіпед. Формули:
- Площа поверхні=2(a*b+b*c+a*c)
- Обсяг=a*b*c
Відпрацьовування:
Варіант 11
Створити абстрактний клас Quadrangle (чотирикутник) без полів
У класі повинні бути абстрактні методи:
- Square - обчислення площі,
- Diag - обчислення діагоналей,
- Str -метод, що повертає рядок зі значеннями полів.
На його основі реалізувати дочірні класи:
- Par паралелограм ( по двом сторонам і куту),
- Pryam прямокутник ( по двом сторонам),
- Rhombus ромб ( по стороні і куту).
Перевизначити методи Square, Diag, Str
Pомб. Формули:
Паралелограм. Формули:
Відпрацьовування:
Варіант 12
Створити абстрактний клас Tax ( платник податків) утримуючий:
Поля:
- Поле ідентифікаційний код (чотири цифри);
- Поле рік народження;
- Поле дохід;
- Поле податок.
У класі повинні бути абстрактні методи:
- метод Calculatetax, обчислення податку. Метод заповнює поле податок. У параметрі методу поточний рік.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Ordinary- звичайний платник податків
- Privilege, що має пільги по податках
Клас Ordinary містить:
Усі поля успадковуються з батьківського класу.
Конструктор, із трьома параметрами, що привласнює значення першим трьом полям.
Перевизначити методи:
- Calculatetax: Податок обчислюється так:
- Якщо вік менше 17 років, то податок=0;
- Якщо дохід менше 1000, то податок=0;
- Якщо дохід роботи від 1000 до 10000 (включно), то податок=20% від доходу;
- Якщо дохід більше 10000, то податок=25% від доходу.
- Info формує рядок зі значеннями полів.
Клас Privilege містить:
Крім полів, які успадковуються з батьківського класу, містить логічне поле, яке вказує, що це пільговик.
У конструкторі класу використовувати чотири параметри – три поля батьківського класу і логічне поле дочірнього.
Перевизначити методи:
- Calculatetax: Податок обчислюється так:
- Якщо вік менше 17 років, то податок=0;
- Якщо дохід менше 10000, то податок=0;
- Якщо дохід роботи від 10000 до 50000 (включно), то податок=10% від доходу;
- Якщо дохід більше 50000, то податок=20% від доходу.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 13
Створити абстрактний клас Airplane (літак) утримуючий:
Поля:
- модель
- максимальна швидкість
- максимальна висота
- вартість.
У класі повинні бути абстрактні методи:
- метод Cost ( без параметрів) – обчислення вартості літака.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Passenger - пасажирський літак,
- Bomber - бомбардувальник,
- Destroyer - винищувач.
Клас Passenger містить:
Усі поля успадковуються з батьківського класу.
Конструктор із трьома параметрами: модель, швидкість і висота.
Перевизначити методи:
- Cost обчислює вартість літака=швидкість*1000+висота*100. Заповнює поле вартість.
- Info формує рядок зі значеннями полів.
Клас Destroyer містить:
Усі поля успадковуються з батьківського класу.
Конструктор із трьома параметрами: модель, швидкість і висота.
Перевизначити методи:
- Cost обчислює вартість літака=швидкість*3000+висота*200. Заповнює поле вартість.
- Info формує рядок зі значеннями полів.
Клас Bomber містить:
Крім полів батьківського класу містить поле кількість бомб.
Конструктор із чотирма параметрами: модель, швидкість, висота і кількість бомб
Перевизначити методи:
- Cost обчислює вартість літака=швидкість*1500+висота*150+ кількість бомб*50. Заповнює поле вартість.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 14
Створити абстрактний клас Officeworker (службовець) утримуючий:
Поля:
У класі повинні бути абстрактні методи:
- метод Calculatepay ( без параметрів) – обчислення зарплати.
- метод Calculatebonus - ( без параметрів) обчислення премії.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Employee -службовець, який одержує фіксовану зарплату,
- Hourly- службовець, який одержує погодинну зарплату,
- Commissioned службовець, який одержує певний відсоток від виробітку.
Клас Employee містить:
Усі поля успадковуються з батьківського класу.
Конструктор із двома параметрами: прізвище і зарплата
Перевизначити методи:
- Calculatepay повертає значення поля зарплата,
- Calculatebonus, обчислює премію з формули = (зарплата)*0,25. Заповнює поле премія.
- Info формує рядок зі значеннями полів.
Клас Hourly містить:
Крім полів батьківського класу містить поля: кількість відпрацьованих годин і вартість однієї години.
Конструктор із трьома параметрами: прізвище, кількість відпрацьованих годин і вартість однієї години
Перевизначити методи:
- Calculatepay- обчислює зарплату= кількість відпрацьованих годин*вартість однієї години. Заповнює поле зарплата.
- Calculatebonus- повертає значення поля премія. Премія всім по 200. Заповнює поле премія.
- Info формує рядок зі значеннями полів.
Клас Commissioned містить:
Крім полів батьківського класу містить поле сума продажів.
Конструктор із двома параметрами: прізвище і сума продажів.
Перевизначити методи:
- Calculatepay, обчислює зарплату= 10% від суми продажів. Заповнює поле зарплата.
- Calculatebonus, обчислює премію= 20% від зарплати. Заповнює поле премія.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 15
Створити абстрактний клас Lodger (квартиронаймач) утримуючий:
Поля:
- номер квартири;
- попереднє показання лічильника;
- поточне показання лічильника;
- площа квартири;
- плата по лічильникові;
- плата за площу;
- загальна плата
У класі повинні бути абстрактні методи:
- Метод Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф.
- Метод Onsqr, що обчислює плату за площу. У параметрі методу тариф.
- метод Sum, що обчислює підсумкову суму
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
На його основі реалізувати дочірні класи:
- Ordinary -звичайний квартиронаймач
- Privilege- має пільги по оплаті за квартиру
Клас Ordinary містить:
Усі поля успадковуються з батьківського класу.
Конструктор, із чотирма параметрами, що привласнює значення першим чотирьом полям.
Перевизначити методи:
- Метод Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф. Плата по лічильникові= тариф *( поточне показання лічильника - попереднє показання лічильника). Метод заповнює відповідне поле.
- Метод Onsqr, що обчислює плату за площу. У параметрі методу тариф. Плата за площу= тариф*площа квартири. Метод заповнює відповідне поле.
- метод Sum, що обчислює підсумкову суму = Плата по лічильникові+ Плата за площу;
- Info формує рядок зі значеннями полів.
Клас Privilege містить:
Крім полів, які успадковуються з батьківського класу, є ще два власні поля: логічне поле, яке вказує, що це пільговик і поле – розмір субсидії.
Конструктор, із шістьома параметрами, що привласнює значення першим чотирьом полям базового класу і двом полям власного класу.
Перевизначити методи:
- Метод Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф. Плата по лічильникові= тариф *( поточне показання лічильника - попереднє показання лічильника)*0.75. Метод заповнює відповідне поле.
- Метод Onsqr, що обчислює плату за площу. У параметрі методу тариф. Плата за площу= тариф*площа квартири*0.75. Метод заповнює відповідне поле.
- метод Sum, що обчислює підсумкову суму = Плата по лічильникові+ Плата за площу-субсидія;
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Назад
Уперед
Зміст