Главная страница
Навигация по странице:

  • Ход работы: Задание 1

  • Цель практической работы

  • Листинг программы

  • Вывод

  • Листинг программы .

  • Ход работы: Задание.

  • Ход работы: Задание 1.

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


    Скачать 0.96 Mb.
    НазваниеВоронеж 2019 Практическая работа 1 Тема практической работы Файл проекта. Структура и Назначение
    АнкорОтчёт по ООП
    Дата11.01.2022
    Размер0.96 Mb.
    Формат файлаdoc
    Имя файлаОтчёт по ООП.doc
    ТипПрактическая работа
    #328375
    страница2 из 4
    1   2   3   4

    Оборудование: компьютер, программное обеспечение Windows 7, текстовый редактор Microsoft Office Word, среда программирования Delphi


    Ход работы:

    Задание 1:



    Рис.15

    Листинг программы:

    unit Unit1;

    interface

    uses

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

    Dialogs, StdCtrls;

    type

    TPayment = class(TObject) // TPayment -имя класса наследуется от TObject

    {TObject является общим предком всех классов в Delphi, корнем иерархии Visual Component Library. Tobject представляет собой абстрактный класс, реализующий только наиболее общие механизмы, универсально разделяемые всеми объектами VCL.

    TObject автоматически используется как порождающий тип при создании нового класса Delphi. Следовательно, следующие фрагменты кода имеют одно и то же значение:}

    // это поля класса

    SurnameNameMiddleName : String; // ФИО

    Salary : Real; // Оклад

    YearOfEmployment : Integer; // Год поступления на работу

    PercentagePremium : Real; // Процент надбавки

    IncomeTax : Real; // Подоходный налог

    NumberOfDaysInMonthR : Word; // Количество отработанных дней в месяце

    NumberOfDaysInMonthN : Word; // Количество рабочих дней в месяце

    AssessedAmount : Real; // Начисленная и

    WithheldAmount : Real; // удержанная суммы

    // а это методы

    function FindAssessedAmount : Real; // Вычисление начисленной суммы

    // function FindWithheldAmount : Real; // Вычисление удержанной суммы

    // function FindGettedAmount : Real; // Вычисление выдаваемой на руки суммы

    // function FindExperience : Real; // Вычисление стажа

    end;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    {$R *.dfm}
    function TPayment.FindAssessedAmount : Real;

    begin

    Result := 1300;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    var

    MyZarplata:TPayment; // объявялем Myzarplata как наследуемый класс от TPayment

    begin

    MyZarplata:=TPayment.Create; // создаем экземпляр класса Myzarplata от предка TPayment

    Button1.Caption := Button1.ClassName; {Выводит в тексте на кнопке названия предка текущего класса от которой была наследована кнопка те TButton }

    Label1.Caption:= FloatToStr(MyZarplata.FindAssessedAmount());

    end;

    end.

    Вывод: Я рассмотрел классы и пример создания программы используя их.
    Практическая работа №5, №6.

    Тема практической работы: Свойства класса. Пример описания свойства классов.

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

    Ход работы.

    Задание1.



    Рис.16

    Листинг_программы'>Листинг программы:

    program Project5;

    type TUser = class

    private

    fLogin: string;

    fPassword: string;

    procedure setPassword(newpass: string);

    published

    property Login: string read fLogin write fLogin;

    property Password: string read fPassword write setPassword;

    function Connect: boolean;

    end;

    procedure TUser.setPassword(newpass: string);

    begin

    if Length(newpass)>3 then fPassword:=newpass

    else writeln('Error! Password is too short!');

    end;

    function TUser.Connect:boolean;

    var

    s,p: string;

    begin

    writeln('Input username:');

    readln(s);

    writeln('Input password:');

    readln(p);

    result:= (s=fLogin) and (p=fPassword);

    end;

    var

    User: TUser;

    s,p: string;

    begin

    User:=TUser.Create;

    writeln('Create username');

    readln(s);

    User.Login:=s;

    writeln('Create password');

    readln(p);

    User.Password:=p;

    writeln('Username is: '+User.Login);

    writeln('Password is: '+User.Password);

    writeln('Try to login...');

    while User.Password<>'' do begin

    if User.Connect then begin

    writeln('All Ok.');

    break;

    end else writeln('Incorrect data. Try again!');

    end;

    User.Destroy;

    readln;

    end.

    uses

    SysUtils;

    begin

    { TODO -oUser -cConsole Main : Insert code here }

    end.

    Вывод: Я рассмотрел свойства класса, на примере создать класс.
    Практическая работа №7

    Тема практической работы: Виды методов. Характеристики методов.

    Цель практической работы: научится работать с классами.

    Ход работы:

    Задание1.



    Рис.17



    Рис.18



    Рис.19

    Листинг программы.

    unit Unit1;

    interface

    uses

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

    Dialogs, StdCtrls;

    type

    {Описание нового класса}

    TPerson = class(TObject)

    Name:string[15];

    Address:string[35];

    constructor create;

    procedure print;

    end;

    type

    TForm1 = class(TForm)

    Label1: TLabel;

    Button1: TButton;

    Button2: TButton;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    student:TPerson;

    professor:TPerson;

    implementation

    {$R *.dfm}

    {Реализация конструктора}

    Constructor TPerson.create;

    begin

    name:=' ';

    address:=' ';

    end;

    Procedure TPerson.print;

    begin

    form1.Label1.Caption:='ФИО'+name+'Адрес'+address;

    end;

    procedure TForm1.FormCreate(Sender: TObject);

    begin

    Professor:=TPerson.Create;

    Student:=TPerson.Create;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    professor.Name:=' Петров ';

    professor.Address:=' Чита, Ленинградская,22';

    professor.print;

    end;

    procedure TForm1.Button2Click(Sender: TObject);

    begin

    student.Name:=' Иванов ';

    student.Address:='Чита, Столярова,14';

    student.print;

    end;

    end.

    Вывод: Я научится работать с классами.

    Практическая работа №8, №9

    Тема: Конструкторы, деструкторы описание применение.

    Цель: научиться принципам разработки конструктора и деструктора.

    Ход работы:

    Задание. Разработать классы



    Рис.20 Рис.21



    Рис.22

    Листинг:

    unit Unit1;

    interface

    uses

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

    Dialogs, StdCtrls;

    type

    TForm1 = class(TForm)

    Edit1: TEdit;

    Button1: TButton;

    Label1: TLabel;

    Label2: TLabel;

    procedure Label1Click(Sender: TObject);

    procedure Edit1Change(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    procedure TForm1.Label1Click(Sender: TObject);

    begin

    Label1.Caption:=Edit1.Text;

    end;

    procedure TForm1.Edit1Change(Sender: TObject);

    begin

    Label1.Caption := Edit1.Text;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Edit1.Text:='';

    end;

    procedure TForm1.FormCreate(Sender: TObject);

    begin

    end;

    end.
    Вывод: Я научился принципам разработки конструктора и деструктора.

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

    Тема: События.

    Цель: Рассмотреть работу с событиями в программах, написать обработчик на событие.

    Ход работы:

    Задание 1. Рассмотреть пример процедуры обработки события OnClick для командной кнопки Вычислить.


    Рис.23 Рис.24


    Рис.25

    Листинг:

    unit Unit1;

    interface

    uses

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

    Dialogs, StdCtrls;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Label4: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);

    var

    dist : integer; // дистанция, метров

    t: real; // время как дробное число

    min : integer; // время, минуты

    sek : integer; // время, секунды

    v: real; // скорость

    begin

    // получить исходные данные из полей ввода

    dist := StrToint(Edit1.Text); t := StrToFloat(Edit2.Text);

    // предварительные преобразования

    min := Trunc(t); // кол-во минут - это целая часть числа t

    sek := Trunc(t*100) mod 100;

    // кол-во секунд - это дробная часть

    // числа t

    // вычисление

    v := (dist/1000) / ((min*60 + sek)/3600);

    // вывод результата

    label4.Caption := 'Дистанция: '+ Edit1.Text

    + ' м' + #13 + 'Время: ' + IntToStr(min)

    + ' мин ' + IntToStr(sek) + ' сек ' + #13 +

    'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

    end;

    procedure TForm1.Button2Click(Sender: TObject);

    begin

    Form1.Close; // закрыть главное окно программы

    end;

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    Var

    result:Integer;

    begin

    Result:= MessageDlg('Завершить?',mtConfirmation,[mbYes,mbNo],0);

    If Result = mrYes then CanClose:=True

    else

    CanClose:=False

    end;

    end.
    Задание 2. Необходимо запретить "прямое" закрытие формы, а спрашивать, действительно ли пользователь хочет закрыть программу.



    Рис.26
    Листинг:

    unit Unit1;

    interface

    uses

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

    Dialogs, StdCtrls;

    type

    TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Button1: TButton;

    Button2: TButton;

    Label1: TLabel;

    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);

    var

    dist : integer;

    t: real;

    min : integer;

    sek : integer;

    v: real;

    begin

    dist := StrToint(Edit1.Text); t := StrToFloat(Edit2.Text);

    min := Trunc(t); sek := Trunc(t*100) mod 100;

    v := (dist/1000) / ((min*60 + sek)/3600);

    label1.Caption := 'Дистанция: '+ Edit1.Text

    + ' м' + #13 + 'Время: ' + IntToStr(min)

    + ' мин ' + IntToStr(sek) + ' сек ' + #13 +

    'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

    end;

    procedure TForm1.Button2Click(Sender: TObject);

    var CanClose: Boolean;

    begin

    if MessageDlg('Вы действительно хотите выйти?',mtWarning,[mbYes,mbNo],0) = mrNo then

    CanClose:=False;

    end;

    end.
    Вывод: Я рассмотрел работу с событиями в программах, написал обработчик на событие.


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

    Тема практической работы: Сообщения.

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

    Ход работы:

    Задание1.



    Рис.27 Рис.28



    Рис.29



    Рис.30 Рис.31

    Листинг:

    unit Unit1;

    interface

    uses

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

    Dialogs, StdCtrls;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    var

    A:string;

    B:integer;

    C:string;

    N:integer;

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    A := InputBox('Регистрация', 'Введите ваше имя и фамилию:','');

    B := MessageDlg('Уважаемый ' + A + ', Вы готовы к проверке знаний?', MtConfirmation, [mbYes,mbNo],0);

    If B = idNo Then Exit;

    C := InputBox('Первый вопрос', 'Чему равен 1 байт?:','');

    If C = '8 бит'

    Then

    begin

    MessageDlg('Правильно!', MtWarning, [mbYes],0);

    end

    Else

    begin

    MessageDlg('Неправильно!', MtWarning, [mbYes],0);

    N := N + 1;

    end;

    C := InputBox('Второй вопрос', 'Переведите десятичное число 5 в двоичную систему счисления:','');

    If C = '101'

    Then

    begin

    MessageDlg('Правильно!', MtWarning, [mbYes],0);

    end

    Else

    begin

    MessageDlg('Неправильно!', MtWarning, [mbYes],0);

    N := N + 1;

    end;

    C := InputBox('Третий вопрос', 'Что такое MSDOS:','');

    If C = 'Дисковая операционная система'

    Then

    begin

    MessageDlg('Правильно!', MtWarning, [mbYes],0);

    end

    Else

    begin

    MessageDlg('Неправильно!', MtWarning, [mbYes],0);

    N := N + 1;

    end;

    C := InputBox('Четвертый вопрос', 'Сколько мегабайт в гигабайте:','');

    If C = '1024'

    Then

    begin

    MessageDlg('Правильно!', MtWarning, [mbYes],0);

    end

    Else

    begin

    MessageDlg('Неправильно!', MtWarning, [mbYes],0);

    N := N + 1;

    end;

    C := InputBox('Пятый вопрос', 'Перевод программ с языка высокого уровня на язык более низкого уровня обеспечивает программа -','');

    If C = 'Компилятор'

    Then

    begin

    MessageDlg('Правильно!', MtWarning, [mbYes],0);

    end

    Else

    begin

    MessageDlg('Неправильно!', MtWarning, [mbYes],0);

    N := N + 1;

    end;

    C := InputBox('Шестой вопрос', 'Раздел переменных определяется служебным словом:','');

    If C = 'var'

    Then

    begin

    MessageDlg('Правильно!', MtWarning, [mbYes],0);

    end

    Else

    begin

    MessageDlg('Неправильно!', MtWarning, [mbYes],0);

    N := N + 1;

    end;

    MessageDlg('Уважаемый, ' + A + ', Вы сделали '+IntToStr(N)+' ошибок', MtInformation, [mbOK], 0);

    end;

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

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

    1   2   3   4


    написать администратору сайта