DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Створення проекту із застосуванням наслідування та поліморфізму

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2009
Тип роботи:
Розрахункова робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
КН-32
Коротко про документ

Про що ця робота

У роботі створено проєкт на Delphi для дослідження основних властивостей об'єктно-орієнтованого програмування: наслідування та поліморфізму. Реалізовано базовий клас кола та дочірні класи вписаного й описаного многокутників.

У роботі розглядаються

  • Об'єктно-орієнтоване програмування
  • Наслідування
  • Поліморфізм
  • Мови програмування Delphi
  • Класи та об'єкти
  • Графічне відображення

Зміст і розділи

  1. Індивідуальне завдання
  2. Тексти головного файлу проекту, файлів модулів та форм
  3. Аналіз отриманих результатів та висновки
Для кого:Студенти технічних спеціальностей, викладачі та розробники, що вивчають об'єктно-орієнтоване програмування.
Викладачі:Не вказано

Ключові поняття

наслідуванняполіморфізмкласметодбатьківський класдочірній класDelphiполотно

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська Політехніка” Кафедра АСУ Розрахункова робота №2 з предмету Об'єктно-орієнтоване програмування на тему: Створення проекту із застосуванням наслідування та поліморфізму” Львів - 2009 Зміст Індивідуальне завдання. Тексти головного файлу проекту, файлів модулів та форм. Аналіз отриманих результатів та висновки. Індивідуальне завдання. Створити проект Delphi для дослідження основних властивостей ООП – наслідування та поліморфізму: 1. Розробити компоненту на основі класу із полями у відповідності до варіанту. Передбачити конструктори (з параметрами та без), деструктор, селектори і модифікатори. Врахувати необхідність приховання даних. 2. Описати дочірні класи. Визначити та реалізувати необхідні поля та методи. 3. У дочірніх класах перевантажити або перевизначити операції (у відповідності до варіанту), які вводяться у батьківському класі як абстрактні методи (для кожного класу – з різною реалізацією). 4. Передбачити застосування поліморфного присвоєння та динамічного зв’язування. 5. Самостійно продумати і реалізувати спосіб демонстрації отриманих результатів. Примітка. Опис компонент, класів та реалізацію методів виконати в окремих програмних модулях. Варіант 12. Клас “коло”: координати центра, радіус, колір, ознака візуалізації (чи показувати на екрані). Дочірні класи: “вписаний многокутник” (кількість сторін); “описаний многокутник” (кількість сторін). Перевантажити операції: інкременту – збільшення кількості сторін, зміна знаку – зміна ознаки візуалізації, перетворення типу: вписаний – описаний многокутник. Перевизначити метод “малювання”. Тексти головного файлу проекту, файлів модулів та форм. //--------- project1.dpr ------------- program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. //--------- unit1.pas ------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Circle, StdCtrls; type TForm1 = class(TForm) Circle1: TCircle; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; M:TOmnoh; Z:TVmnoh; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Circle1:=TCircle.Create(Circle1.x,Circle1.y,Circle1.rad,1011,1); Circle1.Draw(Canvas); end; procedure TForm1.Button2Click(Sender: TObject); begin Circle1.SizeInc; end; procedure TForm1.Button3Click(Sender: TObject); begin Circle1.SizeInc(5); end; procedure TForm1.Button4Click(Sender: TObject); begin Circle1.SizeDec; end; procedure TForm1.Button5Click(Sender: TObject); begin Circle1.SizeDec(5); end; procedure TForm1.FormCreate(Sender: TObject); begin //Circle1:=TCircle.Create; Circle1.x:=250; Circle1.Y:=250; Circle1.rad:=90; end; procedure TForm1.Button6Click(Sender: TObject); begin //M.n:=strtoint(Edit1.text); M:=TOmnoh.Create(Circle1.x,Circle1.y,Circle1.rad,Circle1.kol,Circle1.viz); M.Draw(canvas); end; procedure TForm1.Button7Click(Sender: TObject); begin Z:=TVmnoh. Create(Circle1.x,Circle1.y,Circle1.rad,Circle1.kol,Circle1.viz); Z.Draw(canvas); end; end unit Circle; interface uses SysUtils, Classes,Controls,Graphics, Windows; type TCircle = class(TComponent) private { Private declarations } protected { Protected declarations } public x,y,rad,kol,viz:integer; constructor Create; overload; constructor Create(x,y,rad,kol,viz:integer); overload; procedure Draw(canvas:TCanvas); virtual; procedure SizeInc; overload; virtual; procedure SizeInc(d:integer); overload; virtual; procedure SizeDec; overload; virtual; procedure SizeDec(d:integer); overload; virtual; { Public declarations } published { Published declarations } end; type TVmnoh = class(TCircle) private protected public n:integer; procedure Draw(canvas:TCanvas); override; published end; type TOmnoh = class(TCircle) private protected public n:integer; procedure Draw(canvas:TCanvas); override; published end; procedure Register; implementation procedure Register; begin RegisterComponents('Additional', [TCircle]); end; {-----------------------------TCircle-----------------------------} procedure TCircle.Draw(Canvas:TCanvas); begin canvas.Brush.color:=kol; canvas.Ellipse(self.x-self.rad,self.y-self.rad,self.x+self.rad,self.y+self.rad); End; constructor TCircle.Create(x,y,rad,kol,viz:integer); begin self.x:=x; self.y:=y; self.rad:=rad; self.kol:=kol; self.viz:=viz; end; constructor TCircle.Create; begin self.x:=250; self.y:=250; self.rad:=90; self.kol:=1111; viz:=1; end; procedure TCircle.SizeInc; begin self.rad:=self.rad+1; self.rad:=self.rad+1; end; procedure TCircle.SizeInc(d:integer); begin self.rad:=self.rad+d; self.rad:=self.rad+d; end; procedure TCircle.SizeDec; begin self.rad:=self.rad-1; self.rad:=self.rad-1; end; procedure TCircle.SizeDec(d:integer); begin self.rad:=self.rad-d; self.rad:=self.rad-d; end; {-----------------------------TVmnoh-----------------------------} procedure TVmnoh.Draw(canvas:TCanvas); var m:array[1..6] of TPoint; r,i:integer; begin n:=6; r:=round(rad/(cos(3.14/n))); for i:=1 to n do begin // r:=round(rad/(cos(3.14/n)));//R=r*(cos(2*3.14*i)/n) m[i].X:=round(x+r*cos((2*3.14*i)/n)); m[i].Y:=round(y+r*sin((2*3.14*i)/n)); end; canvas.Brush.Color:=clRed; canvas.Polygon(m); end; {-----------------------------TOmnoh-----------------------------} procedure TOmnoh.Draw(canvas:TCanvas); var m:array[1..6] of TPoint; i:integer; begin n:=6; for i:=1 to n do begin m[i].X:=round(x+rad*cos((2*3.14*i)/n)); m[i].Y:=round(y+rad*sin((2*3.14*i)/n)); end; canvas.Brush.Color:=clRed; canvas.Polygon(m); end; end. Аналіз отриманих результатів та висновки.   Висновок: Під час виконання розрахункової я поглибив свої знання з курсу »Обєктно орієнтовне програмуваня».
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!