Назад
Уперед
Зміст
Варіанти завдань
У кожному варіанті створити інтерфейс і реалізувати його в класах,які його успадковують.
Додати у свій проект стандартні інтерфейси Icloneable і Icomparable.Необхідно дати можливість сортувати один з об'єктів, а також дати можливість створювати копії іншого об'єкта ( на вибір).
У методі Main:
- Описати змінну типу інтерфейс.
- Створити об'єкти кожного дочірнього класу.
- Залежно від умови задачі привласнити описаної змінної об'єкт одного з дочірніх класів
- Застосувати до створеного об'єкта реалізовані методи інтерфейсу.
Варіант 1
Створити інтерфейс Itransport (транспорт) утримуючий:
Властивості:
- швидкість;
- собівартість перевезення вантажу;
- вартість перевезення вантажу.
У класі повинні бути методи:
- Cost ( без параметрів) – обчислення вартості перевезення вантажу.
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи:
- Marine (морський транспорт), що реалізує інтерфейс Itransport.
- Ground (наземний транспорт), що є дочірнім класом класу Marine .
Клас Marine містить:
Конструктор із двома параметрами: швидкість і собівартість перевезення вантажу.
Реалізувати методи:
- Cost - обчислює вартість перевезення вантажу по формулі: собівартість/швидкість. Заповнює поле вартість перевезення вантажу.
- Info формує рядок зі значеннями полів.
Клас Ground містить:
Поле дорожній збір.
Конструктор із трьома параметрами: швидкість, собівартість перевезення вантажу і дорожній збір.
Перевизначити методи батьківського класу:
- Cost - обчислює вартість перевезення вантажу по формулі: собівартість/швидкість+ дорожній збір.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 2
Створити інтерфейс Ipress (преса) утримуючий:
Властивості: назва, ціна за одиницю, автор, кількість сторінок, тип обкладинки.
Методи:
- Setprice ( без параметрів) – установка ціни.
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Клас Book повинні реалізувати інтерфейс Ipress:
Створити класи:
- Клас Book, який повинен реалізувати інтерфейс Ipress:
- Клас Magazine - журнал,який буде дочірнім класом класу Book.
Клас Book містить:
Конструктор із трьома параметрами: автор, назва, кількість сторінок, тип обкладинки.
Реалізує методи:
- Setprice привласнює значення полю ціна.
Ценa книги = кількість сторінок * 0,2 + 5 (якщо обкладинка м'яка) або + 15
(якщо обкладинка тверда).
- Info формує рядок зі значеннями полів.
Клас Magazine, містить:
Крім властивостей батьківського класу, містить поле: кількість номерів у рік.
Конструктор з параметрами:автор, назва, кількість сторінок, тип обкладинки, кількість номерів у рік.
Реалізувати методи:
- Setprice привласнює значення полю ціна. Якщо тип обкладинки глянсова, то 200. Якщо ні, то 100.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 3
Створити інтерфейс Ilines (лінія) утримуючий:
Властивості: числа a,b, які характеризують лінію.
У класі повинні бути методи:
- F(x,y)визначальний, чи лежить точка з координатами (х,y) на лінії чи ні.
- Info - ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи, що реалізують інтерфейс Ilines:
- Straightline - пряма. Рівняння прямої: y = ax + b
- Ellipse -еліпс. Рівняння еліпса: x2/a2 + y2/b2 = 1
- Hyperbola - гіпербола. Рівняння гіперболи:x2/a2 - y2/b2 = 1
У всіх класах, що реалізують інтерфейс:
Конструктор із двома параметрами, що заповнюють поля a, b.
Реалізувати методи: F(x,y) і Info.
Відпрацьовування 1:
Відпрацьовування 2:
Варіант 4
Створити інтерфейс Isolution (рівняння)
У класі повинні бути властивості:
- колекція коефіцієнтів List koeff.
У класі повинні бути методи:
- Existence логічний метод. Визначає, чи їсти коріння.
- Root, рядок утримуюча значення корінь.
Створити класи, що реалізують інтерфейс Isolution:
- Linear - лінійне рівняння ( по двом коефіцієнтам).
- Square - квадратне рівняння ( по трьом коефіцієнтам).
Клас Linear містить:
У колекції коефіцієнтів – коефіцієнти лінійного рівняння ax+b=0.
Конструктор із двома параметрами.
Реалізувати методи Existence і Root.
Клас Square містить:
У колекції коефіцієнтів – коефіцієнти квадратного рівняння ax2+bx+c=0.
Конструктор із трьома параметрами.
Реалізувати методи Existence і Root.
Відпрацьовування:
Варіант 5
Створити інтерфейс Iprogression (прогресія) утримуючий:
Властивості:
- перший член,
- різниця (або знаменник),
- n (номер члена або кількість членів).
У класі повинні бути методи:
- обчислення n-го елемента,
- обчислення суми n елементів прогресії,
- , що повертає рядок зі значеннями полів.
Створити класи, що реалізують інтерфейс Iprogression:
- Linear - арифметична прогресія.
- Exponential - геометрична прогресія.
Клас Linear містить:
Конструктор із трьома параметрами: перший член, різниця, n (номер члена або кількість членів).
Реалізувати всі методи інтерфейсу.
Формули:
Клас Exponential містить:
Конструктор із трьома параметрами: перший член, знаменник, n (номер члена або кількість членів).
Реалізувати всі методи інтерфейсу.
Формули:
Відпрацьовування:
Варіант 6
Створити інтерфейс Ioval без властивостей:
У класі повинні бути методи:
- Square - обчислення площі,
- Length - обчислення довжини лінії,
- Str -, що повертає рядок зі значеннями полів.
Створити класи, що реалізують інтерфейс Ioval:
- Ellips - еліпс ( по двом півосям).
- Krug - коло ( по радіусу).
Клас Ellips містить:
Поля: числа a і b - півосі еліпса
Конструктор із двома параметрами.
Реалізувати методи:
- Square - обчислення площі = a*b*pi
- Length -обчислення довжини лінії =(a+b)*pi
- Str -метод, що повертає рядок зі значеннями полів.
Клас Krug містить:
Поле число r - радіус кола.
Конструктор з одним параметром.
Реалізувати методи:
- Square - обчислення площі = pi*r2
- Length - обчислення довжини лінії =2*pi*r
- Str -метод, що повертає рядок зі значеннями полів.
Відпрацьовування:
Варіант 7
Створити інтерфейс Istudent (студент) утримуючий:
Властивості: прізвище, кількість відвіданих занять, логічне поле здав: або не здав залік
Методи:
- Test ( без параметрів) – логічний метод здав або не здав залік.
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи, що реалізують інтерфейс Istudent:
- Ordinary - звичайний студент.
- Clever - розумний студент.
- Genius - геніальний студент.
У всіх класах, що реалізують інтерфейс:
Конструктор із двома параметрами: прізвище, кількість відвіданих занять.
Реалізувати властивості і методи:
- Test. Заповнює логічне поле.
- Звичайний студент здає залік, якщо відвідав 20 занять.
- Розумний студент здає залік, якщо відвідав більше 10 занять
- Геніальний студент здає залік, якщо відвідав хоча б одне заняття.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 8
Створити інтерфейс Itriangle
У класі повинні бути методи:
- Square - обчислення площі,
- Perimeter - обчислення периметра
- Str -метод, що повертає рядок зі значеннями площі і периметра.
Створити класи, що реалізують інтерфейс Itriangle.:
- Isosceles рівнобедрений трикутник ( по двом сторонам).
- Rectangular прямокутний трикутник ( по двом катетам).
- Equilateral рівносторонній трикутник (по одній стороні).
Відпрацьовування 1:
Відпрацьовування 2:
Відпрацьовування 3:
Варіант 9
Створити інтерфейс Ibody
У класі повинні бути методи:
- обчислення площі поверхні,
- обчислення обсягу,
- метод, що повертає рядок зі значеннями поверхні і обсягу.
Створити класи:
- 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
Відпрацьовування:
Варіант 10
Створити інтерфейс Icarriage (залізничний вагон) утримуючий:
Властивості: ціна за місце, кількість місць і загальна сума виторгу від вагона
У класі повинні бути методи:
- Cost ( без параметрів) – обчислює дохід від вагона
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи:
- General - загальний вагон,реалізує інтерфейс Icarriage.
- Reserved - плацкартний вагон,дочірній клас General.
- Sleeping - купейний вагон,дочірній клас General.
Кожний дочірній клас містить:
У класах Reserved і Sleeping є власне поле вартість додаткових послуг на одне місце.
Реалізувати методи:
- Cost. Заповнює поле загальна сума виторгу від вагона.
- У загальному вагоні сума виторгу=ціна*кількість місць.
- У плацкартному вагоні сума виторгу=ціна*кількість місць+вартість додаткових послуг*кількість місць*0.5
- У купейному вагоні сума виторгу=кількість місць*(ціна+вартість додаткових послуг)
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 11
Створити інтерфейс Itax ( платник податків) утримуючий:
Властивості:
- ідентифікаційний код (чотири цифри);
- рік народження;
- дохід;
- податок.
Методи:
- метод Calculatetax, обчислення податку. Метод заповнює поле податок. У параметрі методу поточний рік.
- Метод Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи:
- Ordinary,звичайний платник податків, реалізує інтерфейс Itax
- Privilege, що має пільги по податках,є дочірнім класом Ordinary.
Клас Ordinary містить:
Конструктор, із трьома параметрами, що привласнює значення першим трьом полям.
Реалізувати методи:
- Calculatetax: Податок обчислюється так:
- Якщо вік менше 17 років, то податок=0;
- Якщо дохід менше 1000, то податок=0;
- Якщо дохід роботи від 1000 до 10000 (включно), то податок=20% від доходу;
- Якщо дохід більше 10000, то податок=25% від доходу.
- Info формує рядок зі значеннями полів.
Клас Privilege містить:
Містить логічне поле, яке вказує, що це пільговик.
У конструкторі класу використовувати чотири параметри - три поля батьківського класу і логічне поле дочірнього.
Перевизначити методи:
- Calculatetax: Податок обчислюється так:
- Якщо вік менше 17 років, то податок=0;
- Якщо дохід менше 10000, то податок=0;
- Якщо дохід роботи від 10000 до 50000 (включно), то податок=10% від доходу;
- Якщо дохід більше 50000, то податок=20% від доходу.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 12
Створити інтерфейс Iquadrangle (чотирикутник)
У класі повинні бути методи:
- Square - обчислення площі,
- Diag - обчислення діагоналей,
- Str - повертає рядок зі значеннями полів.
Створити класи, що реалізують цей інтерфейс:
- Par паралелограм ( по двом сторонам і куту),
- Pryam прямокутник ( по двом сторонам),
- Rhombus ромб ( по стороні і куту).
Реалізувати методи Square, Diag, Str
Pомб. Формули:
Паралелограм. Формули:
Відпрацьовування:
Варіант 13
Створити інтерфейс Ilodger (квартиронаймач) утримуючий:
Властивості:
- номер квартири;
- попереднє показання лічильника;
- поточне показання лічильника;
- площа квартири;
- плата по лічильникові;
- плата за площу;
- загальна плата
У класі повинні бути методи:
- Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф.
- Onsqr, що обчислює плату за площу. У параметрі методу тариф.
- Sum, що обчислює підсумкову суму
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи:
- Ordinary, звичайний квартиронаймач, що реалізує інтерфейс Ilodger
- Privilege, що має пільги по оплаті за квартиру, що є дочірнім класом Ordinary
Клас Ordinary містить:
Конструктор, із чотирма параметрами, що привласнює значення першим чотирьом полям.
Реалізувати методи:
- Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф. Плата по лічильникові= тариф *( поточне показання лічильника - попереднє показання лічильника). Метод заповнює відповідне поле.
- Onsqr, що обчислює плату за площу. У параметрі методу тариф. Плата за площу= тариф*площа квартири. Метод заповнює відповідне поле.
- Sum, що обчислює підсумкову суму = Плата по лічильникові+ Плата за площу;
- Info формує рядок зі значеннями полів.
Клас Privilege містить:
Поля: логічне поле, яке вказує, що це пільговик і поле – розмір субсидії.
Конструктор, із шістьома параметрами, що привласнює значення першим чотирьом полям базового класу і двом полям власного класу.
Перевизначити методи:
- Метод Onmeter, що обчислює плату по лічильникові. У параметрі методу тариф. Плата по лічильникові= тариф *( поточне показання лічильника - попереднє показання лічильника)*0.75. Метод заповнює відповідне поле.
- Метод Onsqr, що обчислює плату за площу. У параметрі методу тариф. Плата за площу= тариф*площа квартири*0.75. Метод заповнює відповідне поле.
- метод Sum, що обчислює підсумкову суму = Плата по лічильникові+ Плата за площу-субсидія;
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 14
Створити інтерфейс Iairplane (літак) утримуючий:
Властивості:
- модель
- максимальна швидкість
- максимальна висота
- вартість
У класі повинні бути методи:
- Cost ( без параметрів) – обчислення вартості літака.
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи:
- Passenger - пасажирський літак, що реалізує інтерфейс Iairplane.
- Bomber - бомбардувальник,є спадкоємцем Passenger.
- Destroyer - винищувач, що реалізує інтерфейс Iairplane.
Клас Passenger містить:
Конструктор із трьома параметрами: модель, швидкість і висота.
Реалізувати методи:
- Cost обчислює вартість літака=швидкість*1000+висота*100. Заповнює поле вартість.
- Info формує рядок зі значеннями полів.
Клас Destroyer містить:
Конструктор із трьома параметрами: модель, швидкість і висота.
Реалізувати методи:
- Cost обчислює вартість літака=швидкість*3000+висота*200. Заповнює поле вартість.
- Info формує рядок зі значеннями полів.
Клас Bomber містить:
Поле кількість бомб.
Конструктор із чотирма параметрами: модель, швидкість, висота і кількість бомб
Перевизначити методи:
- Cost обчислює вартість літака=швидкість*1500+висота*150+ кількість бомб*50. Заповнює поле вартість.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Варіант 15
Створити інтерфейс Iofficeworker (службовець) утримуючий:
Властивості:
У класі повинні бути методи:
- Calculatepay ( без параметрів) – обчислення зарплати.
- Calculatebonus - ( без параметрів) обчислення премії.
- Info - інформація ( без параметрів), який повертає рядок, що містить інформацію про об'єкт.
Створити класи:
- Employee, службовець отримує фіксовану зарплату, який реалізує інтерфейс IOfficeWorker.
- Hourly, службовець отримує погодинну зарплату, є дочірнім Employee.
< li > Commissioned, службовець отримує певний відсоток від вироблення, є дочірнім Employee.
Клас Employee містить:
Конструктор із двома параметрами: прізвище й зарплата
Реалізувати методи:
- Calculatepay повертає значення поля зарплата,
- Calculatebonus, обчислює премію з формули = (зарплата)*0,25. Заповнює поле премія.
- Info формує рядок зі значеннями полів.
Клас Hourly містить:
Поля: кількість відпрацьованих годин і вартість однієї години.
Конструктор із трьома параметрами: прізвище, кількість відпрацьованих годин і вартість однієї години.
Перевизначити методи:
- Calculatepay, обчислює зарплату= кількість відпрацьованих годин*вартість однієї години. Заповнює поле зарплата.
- Calculatebonus, повертає значення поля премія. Премія всім по 200. Заповнює поле премія.
- Info формує рядок зі значеннями полів.
Клас Commissioned містить:
Поле сума продажів.
Конструктор із двома параметрами: прізвище і сума продажів.
Перевизначити методи:
- Calculatepay, обчислює зарплату= 10% від суми продажів. Заповнює поле зарплата.
- Calculatebonus, обчислює премію= 20% від зарплати. Заповнює поле премія.
- Info формує рядок зі значеннями полів.
Відпрацьовування:
Назад
Уперед
Зміст