Воронеж 2021 Практическая работа №1 Тема практической работы: Файл проекта. Структура и Назначение


Вывод: сегодня я изучил работу сообщений и их вывод в программе. Практическая работа №12



бет10/22
Дата02.01.2022
өлшемі0.7 Mb.
#452576
түріПрактическая работа
1   ...   6   7   8   9   10   11   12   13   ...   22
ооп итог

Вывод: сегодня я изучил работу сообщений и их вывод в программе.

Практическая работа №12

Тема практической работы: Полиморфизм. Виртуальные методы.

Цель практической работы: Изучить свойства полиморфизма и его виртуальные методы.

Ход работы :

Задание №1




Рис 43



Рис 41 Рис 42

Листинг:


unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,



Dialogs, StdCtrls, ExtCtrls;

type


TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }



end;

type


TPerson=class

fName:string;

constructor Create(name:string);

function info:string; virtual;

end;

TStud=class(TPerson)



fGr:integer;

constructor Create(name:string;gr:integer);

function info:string;

override;

end;

TProf=class (TPerson)



fdep:string;

constructor Create(name:string; dep:string);

function info:string;

override;

end;

const SZL=10;



var

Form1: TForm1;

List:array[1..10] of TPerson;

n:integer;

implementation

{$R *.dfm}

constructor TPerson.Create(name:string);

begin


fName:=name; end;

constructor TStud.Create(name:string;gr:integer);

begin

inherited create(name);



fGr:=gr; end;

constructor TProf.Create(name:string;dep:string);

begin

inherited create(name);



fDep:=dep;end;

function TPerson.info:string;

begin

result:=fname;end;



function TStud.info:string;

begin


result:=fname+' гр. '+IntToStr(fGr);end;

function TProf.info:string;

begin

result:=fname+' каф. '+fDep;



end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if n

n:=n+1;

if RadioButton1.Checked

then

List[n]:=TStud.Create(Edit1.Text,StrToInt(Edit2.Text))



else

List[n]:=TProf.Create(Edit1.Text,Edit2.Text);

Edit1.Text:='';Edit2.Text:='';

Edit1.SetFocus;

end

else ShowMessage('Список заполнен!');



end;

procedure TForm1.Button2Click(Sender: TObject);

var i:integer;

st:string;

begin

for i:= 1 to SZL do



if list[i]<>NIL then st:=st + List[i].info + #13;

ShowMessage('Список '+#13+st);

end;

end.




Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   22




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет