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

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

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

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

Звіт до розрахункової роботи №2 на тему: «Створення проекту із застосуванням наслідування та поліморфізму»

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

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

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

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

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

Звіт до розрахункової роботи присвячено створенню програмного проєкту з використанням принципів наслідування та поліморфізму об'єктно-орієнтованого програмування. У роботі реалізовано батьківський клас вікна та дочірні класи для вікна будинку і програми в середовищі Delphi.

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

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

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

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

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

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

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра АСУ  З в і т до розрахункової роботи №2 на тему: «Створення проекту із застосуванням наслідування та поліморфізму» з дисципліни «Об'єктно-орієнтоване програмування» Перевірив Бунь А. Р. Львів – 2009 р. Індивідуальне завдання Варіант 3. Створити: Клас “вікно”: координати, розміри, одиниці виміру для координат, одиниці виміру для розмірів. Дочірні класи: “вікно у будинку” (матеріал, товщина, спосіб відкривання, стан – відкрите, закрите); “ вікно у програмі” (стиль, наявність дочірніх вікон, стан – видиме, невидиме). Перевантажити операції: порівняння – за координатами, розмірами та матеріалом або стилем, інкременту – як зміну матеріалу або стилю, зміни знаку – як зміну стану. Перевизначити метод “малювання”. Тексти головного файлу проекту, файлів модулів та форм 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, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Memo1: TMemo; RadioGroup1: TRadioGroup; GroupBox1: TGroupBox; Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel; ComboBox2: TComboBox; Button1: TButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; ComboBox3: TComboBox; ComboBox4: TComboBox; Button2: TButton; Label6: TLabel; Label7: TLabel; ComboBox5: TComboBox; Label8: TLabel; ComboBox6: TComboBox; Button3: TButton; Label9: TLabel; GroupBox2: TGroupBox; Label10: TLabel; Button4: TButton; Label11: TLabel; RadioGroup2: TRadioGroup; Label12: TLabel; GroupBox3: TGroupBox; Label13: TLabel; RadioGroup3: TRadioGroup; Button5: TButton; Label14: TLabel; GroupBox4: TGroupBox; Button6: TButton; Label15: TLabel; procedure RadioGroup1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type TWindow=class x:integer;//координати (x) y:integer;//координати (y) height:integer;//розмір (висота) width_window:integer;//розмір (ширина) px:String;//одиниці виміру для координат sm:String;//одиниці виміру для розмірів constructor Create;overload; function Compare(height1,width1,height2,width2:Integer):String;overload; function Compare(height1,width1:real;height2,width2:Integer):String;overload; function Compare(height1,width1:integer;height2,width2:real):String;overload; function Compare(height1,width1,height2,width2:Real):String;overload; function Size(size1,size2,size3,size4:integer):String;overload; function Size(size1,size2,size3,size4:real):String;overload; function Size(size1,size2:real;size3,size4:integer):String;overload; function Size(size1,size2:integer;size3,size4:real):String;overload; function Style(style1,style2:integer):String;overload; function Style(style1,style2:real):String;overload; function Style(style1:real;style4:integer):String;overload; function Style(style1:integer;style4:real):String;overload; function Increment:integer;overload; function Increment(increment:integer):integer;overload; function Increment(increment:real):integer;overload; function Stan:integer;overload; function Stan(znak:integer):integer;overload; constructor Create(x1,y1,height1,width_window1:integer; sm1,px1:string);overload; destructor Destroy;override; function Draw:String;virtual;abstract; end; type TWindowHome=class(TWindow) material:String;//матеріал width_home:integer;//товщина method_open:String;//спосіб відкривання status_home:String;//стан - відкрите, закрите constructor Create; function Draw:String;override; end; type TWindowProgram=class(TWindow) style:String;//стиль home_window:String;//наявність дочірніх вікон status_program:String;//стан - видиме, невидиме constructor Create; end; var Form1: TForm1; Win:TWindow; WinHome:TWindowHome; WinProg:TWindowProgram; implementation constructor TWindow.Create; begin x:=0; y:=0; height:=0; width_window:=0; px:='px'; sm:='sm'; end; constructor TWindow.Create(x1,y1,height1,width_window1:integer; sm1,px1:string); begin x:=x1; y:=y1; height:=height1; width_window:=width_window1; px:=px1; sm:=sm1; end; destructor TWindow.Destroy; begin MessageBoxA(0,'Виклик деструктора','Деструктор',MB_OK); inherited; end; constructor TWindowHome.Create; begin material:='дерево';//матеріал width_home:=100;//товщина method_open:='автоматичний';//спосіб відкривання status_home:='відкрите';//стан - відкрите, закрите end; constructor TWindowProgram.Create; begin style:='Класичний'; home_window:='Немає';//наявність дочірніх вікон status_program:='Невидиме';//стан - видиме, невидиме end; function TWindowHome.Draw:String; begin Result:='Перевизначення методу TWindowHome.Draw'; end; function TWindow.Compare(height1,width1,height2,width2:Integer):String; begin Result:='Метод перевантажено. Координати: '+ IntToStr(height1)+', '+IntToStr(width1)+', '+IntToStr(height2)+', '+IntToStr(width2); end; function TWindow.Compare(height1,width1:Real;height2,width2:Integer):String; begin Result:='Метод перевантажено. Координати: '+ FloatToStr(height1)+', '+FloatToStr(width1)+', '+IntToStr(height2)+', '+IntToStr(width2); end; function TWindow.Compare(height1,width1:integer;height2,width2:real):String; begin Result:='Метод перевантажено. Координати: '+ intToStr(height1)+', '+intToStr(width1)+', '+floatToStr(height2)+', '+floatToStr(width2); end; function TWindow.Compare(height1,width1,height2,width2:real):String; begin Result:='Метод перевантажено. Координати: '+ FloatToStr(height1)+', '+FloatToStr(width1)+', '+FloatToStr(height2)+', '+FloatToStr(width2); end; function TWindow.Size(size1,size2,size3,size4:integer):String; begin Result:='Метод перевантажено. Розміри: '+ intToStr(size1)+'x'+intToStr(size2)+', '+intToStr(size3)+'x'+intToStr(size4); end; function TWindow.Size(size1,size2,size3,size4:real):String; begin Result:='Метод перевантажено. Розміри: '+ floatToStr(size1)+'x'+floatToStr(size2)+', '+floatToStr(size3)+'x'+floatToStr(size4); end; function TWindow.Size(size1,size2:real;size3,size4:integer):String; begin Result:='Метод перевантажено. Розміри: '+ floatToStr(size1)+'x'+floatToStr(size2)+', '+intToStr(size3)+'x'+intToStr(size4); end; function TWindow.Size(size1,size2:integer;size3,size4:real):String; begin Result:='Метод перевантажено. Розміри: '+ intToStr(size1)+'x'+intToStr(size2)+', '+floatToStr(size3)+'x'+floatToStr(size4); end; function TWindow.Style(style1,style2:integer):String; begin Result:='Метод перевантажено. Стиль: Windows XP & Windows XP'; end; function TWindow.Style(style1,style2:real):String; begin Result:='Метод перевантажено. Стиль: Windows Vista & Windows Vista'; end; function TWindow.Style(style1:real;style4:integer):String; begin Result:='Метод перевантажено. Стиль: Windows Vista & Windows XP'; end; function TWindow.Style(style1:integer;style4:real):String; begin Result:='Метод перевантажено. Стиль: Windows XP & Windows Vista'; end; function TWindow.Increment():integer; begin Result:=0; end; function TWindow.Increment(increment:integer):integer; begin Result:=1; end; function TWindow.Increment(increment:real):integer; begin Result:=2; end; function TWindow.Stan:integer; begin Result:=0; end; function TWindow.Stan(znak:integer):integer; begin Result:=-1; end; {$R *.dfm} procedure TForm1.RadioGroup1Click(Sender: TObject); begin if RadioGroup1.ItemIndex=0 then begin Memo1.Clear; Win:=TWindow.Create; Memo1.Lines.Add('Конструктор TWindow (без параметрів):'); Memo1.Lines.Add('Координата Х: '+IntToStr(Win.x)); Memo1.Lines.Add('Координата Y: '+IntToStr(Win.y)); Memo1.Lines.Add('Розмір (висота): '+IntToStr(Win.height)); Memo1.Lines.Add('Розмір (ширина): '+IntToStr(Win.width_window)); Memo1.Lines.Add('Одиниці виміру для координат: '+Win.px); Memo1.Lines.Add('Одиниці виміру для розмірів: '+Win.sm); Win.Destroy; end else if RadioGroup1.ItemIndex=1 then begin Memo1.Clear; Win:=TWindow.Create(1,2,3,4,'sm','px'); Memo1.Lines.Add('Конструктор TWindow (без параметрів):'); Memo1.Lines.Add('Координата Х: '+IntToStr(Win.x)); Memo1.Lines.Add('Координата Y: '+IntToStr(Win.y)); Memo1.Lines.Add('Розмір (висота): '+IntToStr(Win.height)); Memo1.Lines.Add('Розмір (ширина): '+IntToStr(Win.width_window)); Memo1.Lines.Add('Одиниці виміру для координат: '+Win.px); Memo1.Lines.Add('Одиниці виміру для розмірів: '+Win.sm); Win.Destroy; end else if RadioGroup1.ItemIndex=2 then begin Memo1.Clear; WinHome:=TWindowHome.Create; Memo1.Lines.Add('Конструктор TWindowHome:'); Memo1.Lines.Add('Матеріал: '+WinHome.material); Memo1.Lines.Add('Товщина: '+IntToStr(WinHome.width_home)); Memo1.Lines.Add('Спосіб відкривання: '+WinHome.method_open); Memo1.Lines.Add('Стан: '+WinHome.status_home); WinHome.Destroy; end else if RadioGroup1.ItemIndex=3 then begin Memo1.Clear; WinProg:=TWindowProgram.Create; Memo1.Lines.Add('Конструктор TWindowProgram:'); Memo1.Lines.Add('Cтиль: '+WinProg.style); Memo1.Lines.Add('Наявність дочірніх вікон: '+WinProg.home_window); Memo1.Lines.Add('Статус: '+WinProg.status_program); WinProg.Destroy; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if (ComboBox1.ItemIndex=0) and (ComboBox2.ItemIndex=0) then begin Label3.Caption:=Win.Compare(100,100,200,200); end else if (ComboBox1.ItemIndex=1) and (ComboBox2.ItemIndex=0) then begin Label3.Caption:=Win.Compare(100.5,100.5,200,200); end else if (ComboBox1.ItemIndex=0) and (ComboBox2.ItemIndex=1) then begin Label3.Caption:=Win.Compare(200,200,100.5,100.5); end else if (ComboBox1.ItemIndex=1) and (ComboBox2.ItemIndex=1) then begin Label3.Caption:=Win.Compare(100.5,100.5,200.5,200.5); end; end; procedure TForm1.Button2Click(Sender: TObject); begin if (ComboBox3.ItemIndex=0) and (ComboBox4.ItemIndex=0) then begin Label6.Caption:=Win.Size(100,100,200,200); end else if (ComboBox3.ItemIndex=1) and (ComboBox4.ItemIndex=0) then begin Label6.Caption:=Win.Size(100.5,100.5,200,200); end else if (ComboBox3.ItemIndex=0) and (ComboBox4.ItemIndex=1) then begin Label6.Caption:=Win.Size(200,200,100.5,100.5); end else if (ComboBox3.ItemIndex=1) and (ComboBox4.ItemIndex=1) then begin Label6.Caption:=Win.Size(100.5,100.5,200.5,200.5); end; end; procedure TForm1.Button3Click(Sender: TObject); begin if (ComboBox5.ItemIndex=0) and (ComboBox6.ItemIndex=0) then begin Label9.Caption:=Win.Style(1,1); end else if (ComboBox5.ItemIndex=1) and (ComboBox6.ItemIndex=0) then begin Label9.Caption:=Win.Style(1.5,2); end else if (ComboBox5.ItemIndex=0) and (ComboBox6.ItemIndex=1) then begin Label9.Caption:=Win.Style(2,1.5); end else if (ComboBox5.ItemIndex=1) and (ComboBox6.ItemIndex=1) then begin Label9.Caption:=Win.Style(1.5,2.5); end; end; procedure TForm1.Button4Click(Sender: TObject); begin if RadioGroup2.ItemIndex=2 then begin RadioGroup2.ItemIndex:=Win.Increment; Label12.Caption:='Метод перевантажено'; end else if RadioGroup2.ItemIndex=0 then begin RadioGroup2.ItemIndex:=Win.Increment(1); Label12.Caption:='Метод перевантажено'; end else if RadioGroup2.ItemIndex=1 then begin RadioGroup2.ItemIndex:=Win.Increment(2.0); Label12.Caption:='Метод перевантажено'; end; end; procedure TForm1.Button5Click(Sender: TObject); begin if RadioGroup3.ItemIndex=1 then begin RadioGroup3.ItemIndex:=Win.Stan; end else RadioGroup3.ItemIndex:=-Win.Stan(1); end; procedure TForm1.Button6Click(Sender: TObject); var WinHome:TWindowHome; begin WinHome:=TWindowHome.Create; Label15.Caption:=WinHome.Draw; end; end. Аналіз отриманих результатів та висновки  Висновок При виконанні даної розрахункової роботи я ознайомився з побудовою проекту з використанням наслідування і поліморфізму, створив батьківський клас та дочірні до нього класи, перевантажив методи описані у варіанті індивідуального завдання і перевизначив метод малювання.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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