Отчёт по ООП. Воронеж 2019 Практическая работа 1 Тема практической работы Файл проекта. Структура и Назначение
Скачать 0.96 Mb.
|
Тема: Полиморфизм. Виртуальные методы. Цель: Изучить свойства полиморфизма и его виртуальные методы. Ход работы: Задание. Демонстрация полиморфизма Рис.32 Листинг: unit polimor_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; GroupBoxl: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; procedure ButtonlClick(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const SZL = 10; var Forml: TForm1; List: array[l..SZL] of TPerson; n:integer =0; 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 + ' rp.' + IntToStr(fGr); end; function TProf.Info:string; begin result := fname + ' каф.' + fDep; end; procedure TForml.ButtonlClick(Sender: TObject); begin if n < SZL then begin n:=n+l; if Radiobuttonl.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 + 113; ShowMessage('Cпиcoк'+#13+st); end; end. Вывод: Изучил свойства полиморфизма и его виртуальные методы. Практическая работа №13 Тема: Визуальные компоненты среды Delphi (standard). Цель: изучить визуальные компоненты standard узнать о их свойствах и область применения. Ход работы: Задание 1. Кнопка (TButton). Рис.33 Задание 2. Надписи (TLabel). Рис.34 Задание 3.1. Строки ввода (TEdit). Рис.35 Рис.36 Листинг. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text:=Edit1.Text; end; end. Задание 3.2. Улучшим предыдущий пример. Изменим у первой строки ввода свойство PasswordChar на звёздочку «*». Запустим программу, введем в строку текст. Рис.37 Рис.38 Листинг. unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text:=Edit1.Text; end; end. Задание 3.3. Сделаем проверку на ввод пароля. Рис.39 Рис.40 Рис.41 Листинг. unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if Edit1.Text='password' then Edit2.Text:='Пароль верный' else Edit2.Text:='Пароль неверный'; end; end. Задание 4. Напишите программу, которая будет выполнять простые функции текстового редактора. Рис.42 Рис.43. Рис.44 Листинг. unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; SaveDialog1: TSaveDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin If SaveDialog1.Execute then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Clear; end; end. Вывод: Я изучил визуальные компоненты standard, узнал о их свойствах и области применения. Практическая работа №14 Тема: Визуальные компоненты среды Delphi (win32). Цель: рассмотреть возможности компонентов расположенных на вкладке win32. Ход работы: Задание: По выбранной дате, вывести в метку название месяца. Рис.45 Листинг. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) DateTimePicker1: TDateTimePicker; Label1: TLabel; procedure DateTimePicker1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.DateTimePicker1Change(Sender: TObject); var s,s1:string; i:integer; begin s:=datetostr(DateTimePicker1.Date); s1:=copy(s,4,2); i:=strtoint(s1); case i of 1: label1.Caption:='Январь'; 2: label1.Caption:='Февраль'; 3: label1.Caption:='Март'; 4: label1.Caption:='Апрель'; 5: label1.Caption:='Май'; 6: label1.Caption:='Июнь'; 7: label1.Caption:='Июль'; 8: label1.Caption:='Август'; 9: label1.Caption:='Сентябрь'; 10: label1.Caption:='Октябрь'; 11: label1.Caption:='Ноябрь'; 12: label1.Caption:='Декабрь'; end; end; end. Вывод: Я рассмотрел возможности компонентов расположенных на вкладке win32. Практическая работа №15 Тема: Визуальные компоненты среды Delphi (additional). Цель: Узнать о возможностях компонентов расположенных на вкладке Additional. Ход работы: Задание 1. Рассмотрим работу кнопки BitBitn. Рис.46 Листинг. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Memo1: TMemo; Label4: TLabel; BitBtn1: TBitBtn; procedure FormActivate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); begin Edit1.Text:=''; Edit1.SetFocus; end; procedure TForm1.BitBtn1Click(Sender: TObject); var x,y,z,a,b,c,u,c1 : extended; begin x:=StrToFloat(Trim(Edit1.Text)); ShowMessage('Ошибочная запись числа '+Edit1.Text); end; Memo1.Lines.Add(' X = '+Edit1.Text Memo1.Lines.Add(' Y = '+Edit2.Text Memo1.Lines.Add(' Z = '+Edit3.Text); a:=Sqr(Sin(x+y)/Cos(x+y)); b:=Exp(y-z); try c1:=Cos(Sqr(x))+Sin(Sqr(z)); Memo1.Lines.Add('Значение подкоренного выражения ='+ FloatToStrF(c1,fffixed,8,3)); c:=Sqrt(Cos(Sqr(x))+Sin(Sqr(z))); except ShowMessage('Ошибка при вычислении квадратного корня!'); Exit; end; u:=a-b*c; Memo1.Lines.Add('Значение выражения U ='+ FloatToStrF(u,fffixed,8,3)); end; end. Вывод: Узнал о возможностях компонентов расположенных на вкладке System. Практическая работа №16 Тема: Визуальные компоненты среды Delphi (system). Цель: Узнать о возможностях компонентов расположенных на вкладке System. Ход работы: Задание 1. Создадим секундомер, который будет отсчитывать время. Рис.47 Рис.48 Рис.49 Листинг. var Form1: TForm1; TickCounter: LongInt; procedure TForm1.FormCreate(Sender: TObject); begin TickCounter:=0; Edit1.Text:='0.0'; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin if Timer1.Enabled then begin Timer1.Enabled:=False; BitBtn1.Caption:='&Старт'; Timer1.Enabled:=False; BitBtn1.Caption:='&Старт'; end else begin timer1.Enabled:=true; BitBtn1.Caption:='&Стоп'; end; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin TickCounter:=0; Edit1.Text:='0.0'; end; procedure TForm1.Timer1Timer(Sender: TObject); var seconds:Real; s:string; begin TickCounter:=TickCounter+1; Seconds:=TickCounter/10; Str(Seconds: 10:1, S); Edit1.Text:=S; end; end. Задание 2. Напишите программу игру «Угадай число». Рис.50. Листинг: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus; type TMainForm = class(TForm) MainMenu1: TMainMenu; procedure FormCreate(Sender: TObject); procedure TMainForm.FormShow(Sender: TObject); procedure TMainForm.BitBtn1Click(Sender: TObject); procedure TMainForm.N2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; a:integer; implementation {$R *.dfm} OnShow procedure TMainForm.FormShow(Sender: TObject); begin Randomize; a:=Random(100); end; procedure TMainForm.BitBtn1Click(Sender: TObject); begin If Length(Trim(MaskEdit1.Text))=0 then ShowMessage('Âû çàáûëè ââåñòè ÷èñëî!') else If a=StrToInt(Trim(MaskEdit1.Text)) then Begin Label1.Caption:='Óãàäàë!'; Label1.Visible:=True; Animate.Visible:=True; Animate.Active:=True; end else If a>StrToInt(Trim(MaskEdit1.Text)) then Memo.Lines.Add(Trim(MaskEdit1.Text)+' Áîëüøå!') else Memo.Lines.Add(Trim(MaskEdit1.Text)+Ìåíüøå!'); MaskEdit1.Clear; MaskEdit1.SetFocus; end; procedure TMainForm.N2Click(Sender: TObject); begin Memo.Visible:=True; Animate.Visible:=False; Randomize; a:=Random(100); Memo.Clear; end; end. Вывод: Я узнал о возможностях компонентов расположенных на вкладке System. Практическая работа №17 Тема: Основные свойства. Основные события. Цель: рассмотреть основные события и принцип работы. Ход работы: Задание 1.Создадим записную книжку на каждый день недели от ПОНЕДЕЛЬНИКА до ВОСКРЕСЕНЬЯ. Рис. 51 Листинг: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ComCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; TabSheet5: TTabSheet; TabSheet6: TTabSheet; TabSheet7: TTabSheet; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn5: TBitBtn; BitBtn6: TBitBtn; Edit1: TEdit; ListBox1: TListBox; ListBox2: TListBox; ListBox3: TListBox; ListBox4: TListBox; ListBox5: TListBox; ListBox6: TListBox; ListBox7: TListBox; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; procedure BitBtn1Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin if opendialog1.Execute then case pagecontrol1.ActivePageIndex of 0: listbox1.Items.LoadFromFile(opendialog1.FileName); 1: listbox2.Items.LoadFromFile(opendialog1.FileName); 2: listbox3.Items.LoadFromFile(opendialog1.FileName); 3: listbox4.Items.LoadFromFile(opendialog1.FileName); 4: listbox5.Items.LoadFromFile(opendialog1.FileName); 5: listbox6.Items.LoadFromFile(opendialog1.FileName); 6: listbox7.Items.LoadFromFile(opendialog1.FileName); end; end; procedure TForm1.BitBtn3Click(Sender: TObject); begin case pagecontrol1.ActivePageIndex of 0: listbox1.Items.Insert(listbox1.ItemIndex,edit1.text); 1: listbox2.Items.Insert(listbox2.ItemIndex,edit1.text); 2: listbox3.Items.Insert(listbox3.ItemIndex,edit1.text); 3: listbox4.Items.Insert(listbox4.ItemIndex,edit1.text); 4: listbox5.Items.Insert(listbox5.ItemIndex,edit1.text); 5: listbox6.Items.Insert(listbox6.ItemIndex,edit1.text); 6: listbox7.Items.Insert(listbox7.ItemIndex,edit1.text); end; edit1.Clear;// очистка поля ввода edit1.SetFocus;// возвращение фокуса в поле ввода end; procedure TForm1.BitBtn2Click(Sender: TObject); begin if SaveDialog1.Execute then case pagecontrol1.ActivePageIndex of 0: listbox1.Items.LoadFromFile(SaveDialog1.FileName); 1: listbox2.Items.LoadFromFile(SaveDialog1.FileName); 2: listbox3.Items.LoadFromFile(SaveDialog1.FileName); 3: listbox4.Items.LoadFromFile(SaveDialog1.FileName); 4: listbox5.Items.LoadFromFile(SaveDialog1.FileName); 5: listbox6.Items.LoadFromFile(SaveDialog1.FileName); 6: listbox7.Items.LoadFromFile(SaveDialog1.FileName); end; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin case pagecontrol1.ActivePageIndex of 0: listbox1.Items.Insert(listbox1.ItemIndex,edit1.text); 1: listbox2.Items.Insert(listbox2.ItemIndex,edit1.text); 2: listbox3.Items.Insert(listbox3.ItemIndex,edit1.text); 3: listbox4.Items.Insert(listbox4.ItemIndex,edit1.text); 4: listbox5.Items.Insert(listbox5.ItemIndex,edit1.text); 5: listbox6.Items.Insert(listbox6.ItemIndex,edit1.text); 6: listbox7.Items.Insert(listbox7.ItemIndex,edit1.text); end; edit1.Clear;// очистка поля ввода edit1.SetFocus;// возвращение фокуса в поле ввода end; end. Вывод: Я рассмотрел основные события и принцип работы. Практическая работа №18 |