Назад
Уперед
Зміст
Варіанти завдань
У кожному варіанті створити батьківський і дочірній класи.
Віртуальні методи в батьківському класі перевизначити в дочірньому класі.
У віртуальному і у переобумовленому методі повинні бути коментарі, які ідентифікує метод.
У методі Main:
- Описати змінну батьківського класу.
- У циклі із трьох витків випадковим образом одержувати значення.
- Залежно від умови завдання привласнити описаної змінної об'єкт або батьківського класу або дочірнього класу.
- Застосувати до створеного об'єкта віртуальні методи.
- Якщо потрібно, застосувати до створеного об'єкта методи батьківського класу, які успадковуються.
- Якщо в дочірньому класі є власні методи, то потрібно створити ще один об'єкт дочірнього класу і застосувати до нього власні методи.
Варіант 1
Створити клас Pryam, що описує прямокутник по двом сторонам і утримуючий:
- Поле довжина першої сторони;
- Поле довжина другої сторони;
- Конструктор, із двома параметрами, що привласнює значення цим полям.
- Віртуальний метод Sqr – знаходження площі прямокутника.
- Віртуальний метод Diag –знаходження діагоналі прямокутника.
Створити дочірній клас Kvadrat, що описує квадрат і утримуючий:
- Конструктор. У конструкторі класу використовувати один параметр – сторону квадрата.
- Перевизначити віртуальний метод Sqr з батьківського класу.
- Перевизначити віртуальний метод Diag з батьківського класу.
- Власний метод Radius, що обчислює радіус уписаної окружності. Радіус дорівнює половині сторони.
Відпрацьовування:
Варіант 2
Створити клас Ellips, що описує еліпс і утримуючий:
- Поле a - довжина більшої півосі;
- Поле b - довжина меншої півосі;
- Конструктор, із двома параметрами, що привласнює значення цим полям.
- Віртуальний метод Sqr - знаходження площі еліпса (добуток двох його півосей на число пі);
- Метод Eks-знаходження ексцентриситету:
Створити дочірній клас Krug, що описує коло і утримуючий:
- Конструктор. У конструкторі класу використовувати один параметр r- радіус кола.
- Перевизначити віртуальний метод Sqr з батьківського класу.
- Власний метод Leng обчислення довжини окружності.
Відпрацьовування:
Варіант 3
Створити клас Parall, що описує паралелепіпеди і утримуючий:
- Поле a - довжина;
- Поле b - ширина;
- Поле c - висота;
- Конструктор, із трьома параметрами, що привласнює значення цим полям.
- Віртуальний метод Sqr - площа поверхні паралелепіпеда =2*(a*b+b*c+a*c);
- Віртуальний метод V- обсяг паралелепіпеда = a*b*c.
Створити дочірній клас Kub, що описує куб утримуючий:
- Конструктор. У конструкторі класу використовувати один параметр – ребро куба.
- Перевизначити віртуальний метод Sqr. Площу обчислювати по формулі площа=6*a*a.
- Перевизначити віртуальний метод V. Площу обчислювати по формулі площа=6*a*a.
- Додати власний метод Radius обчислення радіуса кулі, описаного навколо куба. Радіус кулі рівний:
Відпрацьовування:
Варіант 4
Створити клас Romb, що описує ромб по його діагоналях і утримуючий:
- Поле d1 - перша діагональ
- Поле d2 - друга діагональ
- Конструктор, із двома параметрами, що привласнює значення цим полям.
- Метод Sqr - площа ромба = d1*d2/2;
- Віртуальний метод Side - обчислення сторони ромба
Створити дочірній клас Kvadrat, що описує квадрат і утримуючий:
- Конструктор. У конструкторі класу використовувати один параметр – діагональ квадрата.
- Перевизначити віртуальний метод Side:
- Власний метод Radius, що обчислює радіус описаної окружності. Радіус дорівнює половині діагоналі.
Відпрацьовування:
Варіант 5
Створити клас Par, що описує паралелограм по двом сторонам і куту, що й містить:
- Поле довжина першої сторони;
- Поле довжина другої сторони;
- Поле кут між сторонами (у радіанах)
- Конструктор, із трьома параметрами, що привласнює значення цим полям. У конструкторі перевести кут із градусів у радіани.
- Віртуальний метод Sqr - знаходження площі паралелограма (добуток двох його сторін на синус кута між ними);
- Метод Diag –знаходження діагоналей паралелограма по теоремі косинусів. Метод повинен повертати одну діагональ через return, а другу через параметр із атрибутом out.
Створити дочірній клас Romb, що описує ромб і утримуючий:
- Конструктор. У конструкторі класу використовувати два параметри – сторону ромба і кут між сторонами.
- Перевизначити віртуальний метод Sqr - знаходження площі ромба (квадрат сторони на синус кута між сторонами);
- Описати власний метод Radius, що обчислює радіус уписаної окружності.
Відпрацьовування:
Варіант 6
Створити клас Cylinder, що описує циліндри і утримуючий:
- Поле r – радіус підстави;
- Поле h - висота;
- Конструктор, із двома параметрами, що привласнює значення цим полям.
- Віртуальний метод Sqr - площа всієї поверхні циліндра
- Віртуальний метод V- обсяг циліндра
Створити дочірній клас Equilateral, що описує рівносторонній циліндр (діаметр підстави дорівнює висоті) і утримуючий:
- Конструктор. У конструкторі класу використовувати один параметр – радіус підстави.
- Перевизначити віртуальний метод Sqr. Площу обчислювати по формулі
- Перевизначити віртуальний метод V. Обсяг обчислювати по формулі
- Додати власний метод Volume обчислення обсягу кулі, уписаного в циліндр. Обсяг кулі рівний:
Відпрацьовування:
Варіант 7
Створити клас Employee, що описує співробітника фірми і утримуючий:
- Поле ідентифікаційний код (чотири цифри);
- Поле рік прийняття на роботу;
- Поле оклад;
- Поле премія;
- Конструктор, із трьома параметрами, що привласнює значення першим трьом полям.
- Метод Print – висновок значень полів на екран.
- Віртуальний метод Bonus, обчислення премії. Метод заповнює поле премія. У параметрі методу поточний рік. Премія нараховується так:
- Якщо стаж роботи менше 5 років, то премія=10% від окладу.
- Якщо стаж роботи від 5 до 10 (включно), то премія=15% від окладу
- Якщо стаж роботи більше 10, то премія=20% від окладу
Створити клас Vip, дочірній до Employee, що описує Vip менеджера і утримуючий:
- Логічне поле, що вказує, що це Vip співробітник.
- Конструктор. У конструкторі класу використовувати чотири параметри – три поля батьківського класу і логічне поле дочірнього.
- Перевизначається метод Bonus. Метод заповнює поле премія. Премія нараховується так:
- Якщо стаж роботи менше 5 років, то премія=20% від окладу.
- Якщо стаж роботи від 5 до 10 (включно), то премія=30% від окладу
- Якщо стаж роботи більше 10, то премія=50% від окладу
Відпрацьовування:
Варіант 8
Створити клас Triangle, що описує трикутник по трьом його сторонам і утримуючий:
- Поле довжина першої сторони;
- Поле довжина другої сторони;
- Поле довжина третьої сторони;
- Конструктор, із трьома параметрами, що привласнює значення цим полям.
- Метод Print – вивод значень полів на екран.
- Метод Perimeter –знаходження периметра трикутника.
- Віртуальний метод Sqr –знаходження площі трикутника по формулі Герона.
- Логічний метод Exists – умова існування трикутника.
Створити дочірній клас Equilateral, що описує рівносторонній трикутник і утримуючий:
- Конструктор. У конструкторі класу використовувати один параметр – сторона рівностороннього трикутника.
- Перевизначаємо метод Sqr - обчислення площі рівностороннього трикутника по формулі
- Описати власний метод Radius, що обчислює радіус уписаної окружності:
Відпрацьовування:
Варіант 9
Створити клас Pointspace, що описує точку в просторі і утримуючий:
- Поле координати x;
- Поле координати y;
- Поле координати z;
- Конструктор, із трьома параметрами, що привласнює значення цим полям.
- Метод Print – вивод значень полів на екран.
- Віртуальний метод Leng –знаходження відстані від цієї точки до початку координат.
Створити дочірній клас Pointplane, що описує точки на площині і утримуючий:
- Конструктор. У конструкторі класу використовувати два параметри – координати точки на площині. Третій координаті привласнити 0.
- Перевизначаємо метод Leng –знаходження відстані від цієї точки до початку координат
Відпрацьовування:
Варіант 10
Створити клас Triangle, що описує трикутник по двом сторонам і куту між ними, який містить:
- Поле довжина першої сторони;
- Поле довжина другої сторони;
- Поле кут між сторонами (у радіанах);
- Поле c- довжина третьої сторони;
- Поле p - півпериметр.
- Конструктор, із трьома параметрами (дві сторони і кут), що привласнює значення всім полям.
У конструкторі перевести кут із градусів у радіани, а також обчислити величину третьої сторони і півпериметр.
Сторону визначати по теоремі косинусів:
- Віртуальний метод Sqr - знаходження площі трикутника по формулі Герона.
- Метод Radius-знаходження радіуса вписаної окружності трикутника.
Створити дочірній клас Rectangular, що описує прямокутний трикутник і утримуючий:
- Конструктор. У конструкторі класу використовувати два параметри – катети прямокутного трикутника. Куту привласнити значення pi/2
- Перевизначити віртуальний метод Sqr, що обчислює площу прямокутного трикутника як половину добутку його катетів.
- Описати власний метод Radiusop, що обчислює радіус описаної окружності:
Відпрацьовування:
Варіант 11
Створити клас Tax, що описує платника податків і утримуючий:
- Поле ідентифікаційний код (чотири цифри);
- Поле рік народження;
- Поле дохід;
- Поле податок.
- Конструктор, із трьома параметрами, що привласнює значення першим трьом полям.
- Метод Print – вивод значень усіх полів на екран.
- Віртуальний метод Calculatetax, обчислення податку. Метод заповнює поле податок. У параметрі методу поточний рік. Податок обчислюється так:
- Якщо вік менше 17 років, то податок=0;
- Якщо дохід менше 1000, то податок=0;
- Якщо дохід роботи від 1000 до 10000 (включно), то податок=20% від доходу;
- Якщо дохід більше 10000, то податок=25% від доходу.
Створити клас Privilege, дочірній до Tax, що описує пільговика і утримуючий:
- Логічне поле, що вказує, що це пільговик.
- Конструктор. У конструкторі класу використовувати чотири параметри – три поля батьківського класу і логічне поле дочірнього.
- Перевизначити метод Calculatetax:
- Якщо вік менше 17 років, то податок=0;
- Якщо дохід менше 10000, то податок=0;
- Якщо дохід роботи від 10000 до 50000 (включно), то податок=10% від доходу;
- Якщо дохід більше 50000, то податок=20% від доходу.
Відпрацьовування:
Варіант 12
Створити клас Par, що описує паралелограм і утримуючий:
- Поле довжина першої сторони;
- Поле довжина другої сторони;
- Поле кут між сторонами (у радіанах)
- Конструктор, із трьома параметрами, що привласнює значення цим полям. У конструкторі перевести кут із градусів у радіани.
- Віртуальний метод Sqr - знаходження площі паралелограма (добуток двох його сторін на синус кута між ними);
- Метод Diag –знаходження діагоналей паралелограма по теоремі косинусів. Метод повинен повертати одну діагональ через return, а другу через параметр із атрибутом out.
Створити дочірній клас Pryam, що описує прямокутник, який містить:
- Конструктор. У конструкторі класу використовувати два параметри – сторони прямокутника (третьому полю привласнити значення pi/2).
- Перевизначити віртуальний метод Sqr. Площу прямокутника обчислювати як добуток його сторін.
- Описати власний метод Radius, що обчислює радіус описаної окружності:
Відпрацьовування:
Варіант 13
Створити клас Lodger, що описує рядових платників за квартиру і утримуючий:
- Поле номер квартири;
- Поле попереднє показання лічильника;
- Поле поточне показання лічильника;
- Поле площа квартири;
- Поле плата по лічильникові;
- Поле плата за площу;
- Конструктор, із чотирма параметрами, що привласнює значення першим чотирьом полям.
- Метод Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф.
Плата по лічильникові= тариф *( поточне показання лічильника - попереднє показання лічильника).
Метод заповнює відповідне поле.
- Метод Onsqr, що обчислює плату за площу. У параметрі методу тариф.
Плата за площу= тариф*площа квартири. Метод заповнює відповідне поле.
- Метод Print. Виводить на екран усю інформацію, крім підсумкової суми.
- Віртуальний метод Sum, що обчислює підсумкову суму= Плата по лічильникові+ Плата за площу;
- Віртуальний метод Printsum. Виводить на екран підсумкову суму оплати.
Створити дочірній клас Privilegeman, що описує платників за квартиру, які одержують субсидію і утримуючий:
- Логічне поле, що вказує, що це пільговик.
- Поле – розмір субсидії.
- Конструктор. У конструкторі класу використовувати шість параметрів: чотири з батьківського класу і два власні поля, що заповнюють.
- Перевизначити віртуальний метод Sum. Суму обчислювати так: Плата по лічильникові+ Плата за площу-субсидія;
- Перевизначити віртуальний метод Printsum. Виводити на екран підсумкову суму й субсидію.
Відпрацьовування:
Варіант 14
Створити клас Avto, що описує автомобіль і утримуючий:
- Поле марка;
- Поле швидкість;
- Поле вартість;
- Конструктор із двома параметрами: марка і швидкість.
- Віртуальний метод метод Cost ( без параметрів) – повертає вартість автомобіля, що розраховується по формулі швидкість * 100 і привласнює це значення полю вартість.
- Віртуальний метод Update - відновлення ( без параметрів і без значення, що вертається), що збільшує швидкість на 10.
- Віртуальний метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт: Марка, Швидкість і Вартість.
Створити клас Vip, дочірній до Avto, що описує vip автомобіль і утримуючий:
Поле вартість тюнинга;
Конструктор із трьома параметрами: марка, швидкість і вартість тюнинга.
Перевизначити метод Cost, який повертає число, рівне швидкісті * 200+вартість тюнинга.
Перевизначити метод Update, який збільшує швидкість на 20 км/год і тюнинг на 1000.
Перевизначити метод Info, який повертає рядок, що містить інформацію про об'єкт: Марка, Швидкість, Вартість автомобіля і Вартість тюнинга.
Створити клас Truck, дочірній до Avto, що описує вантажівка і утримуючий:
Поле вантажопідйомність;
Конструктор із трьома параметрами: марка, швидкість і вантажопідйомність.
Перевизначити метод Cost, який повертає число, рівне
швидкість * 150 + вантажопідйомність * 20.
Перевизначити метод Update, який збільшує швидкість на 15 км/год і вантажопідйомність на 1 тонну.
Перевизначити метод Info, який повертає рядок, що містить інформацію про об'єкт: Марка, Швидкість, Вартість і Вантажопідйомність
У головній програмі:
Випадковим образом у циклі створювати автомобілі різних класів з випадковою швидкістю, для вантажівки з вантажопідйомністю, для vip вартістю тюнинга. Застосовувати до них методи Cost, Update і Info.
Відпрацьовування 1:
Відпрацьовування 2:
Варіант 15
Створити клас Employee, що описує службовця і утримуючий:
- Поле прізвище;
- Поле зарплата;
- Поле премія;
- Конструктор із двома параметрами: прізвище і зарплата.
- Віртуальний метод метод Calculatepay ( без параметрів) – повертає зарплату.
- Віртуальний метод Calculatebonus - ( без параметрів) повертає значення поля премія. Обчислює премію з формули=(зарплата)*0,25 і привласнює це значення відповідному до поля.
- Віртуальний метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт: прізвище, зарплата і премія.
Створити клас Hourly, дочірній до Employee, що описує службовця з погодинною оплатою і утримуючий:
Поле кількість відпрацьованих годин;
Поле вартість однієї години.
Конструктор із трьома параметрами: прізвище, вартість однієї години і кількість відпрацьованих годин.
Перевизначити метод Calculatepay, який обчислює і повертає зарплату= (вартість однієї години) * (кількість відпрацьованих годин)
Перевизначити метод Calculatebonus, який обчислює і повертає премію=200.
Створити клас Commissioned, дочірній до Employee, що описує службовця з комісійною оплатою і утримуючий:
Поле кількість проданих товарів;
Поле плата за продаж одиниці товару.
Конструктор із трьома параметрами: прізвище, ставка, плата за продаж одиниці товару і кількість проданих товарів.
Перевизначити метод Calculatepay, який обчислює і повертає зарплату= ставка+(плата за продаж одиниці товару) * (кількість проданих товарів)
Перевизначити метод Calculatebonus, який обчислює і повертає премію=100*( кількість проданих товарів).
У головній програмі:
Випадковим образом у циклі створювати співробітників різних класів з випадковими значеннями: ставка (1000, 2000), вартість 1 години (100,300), кількість відпрацьованих годин (6, 12), кількість проданих товарів (10, 30), оплата за одиницю товару (100, 200) . Застосовувати до них методи Calculatepay, Calculatebonus і Info.
Відпрацьовування 1:
Відпрацьовування 2:
Назад
Уперед
Зміст