Объекты в Odject Pascal

Автор работы: Пользователь скрыл имя, 12 Октября 2011 в 18:50, лабораторная работа

Описание

Создать класс типа - дата с полями: день (1-31), месяц (1-12), год (целое число). Класс имеет методы установки дня, месяца и года, печати: печать по шаблону: “5 января 1997 года” и “05.01.1997”. Методы установки полей класса должны проверять корректность задаваемых параметров.

Работа состоит из  1 файл

Отчет.doc

— 215.00 Кб (Скачать документ)

Министерство  образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Математический  факультет

Кафедра администрирования информационных систем 
 
 
 
 

ОТЧЕТ 

по лабораторной работе на тему: «Объекты в Odject Pascal» 

по дисциплине "Программирование" 
 
 
 
 
 
 
 

                                      Руководитель работы

                                                     ___________________Минина И.В.

                                                     "_____"_________________2008г.

                                                     Исполнитель 
 
 
 
 
 
 
 
 
 

Оренбург 2008

    1 Построение задачи 

      Создать класс типа - дата с полями: день (1-31), месяц (1-12), год (целое число). Класс  имеет методы установки дня, месяца и года, печати: печать по шаблону: “5 января 1997 года” и “05.01.1997”.  Методы установки полей класса должны проверять корректность задаваемых параметров.

 

    2 Структурная схема программного продукта 

      
 
 
 
 
 
 
 
 
 
 

 

     3 Текст программы 

unit Unit1; 

interface 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; 

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    Button1: TButton;

    procedure Edit1Exit(Sender: TObject);

    procedure Edit2Exit(Sender: TObject);

    procedure Edit3Exit(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

  TDate1 = class

    day:integer;

    mounth:integer;

    year:integer;

    procedure CheckDay;

    procedure CheckMounth;

    procedure CheckYear;

    procedure Print;

  end; 

var

  Form1: TForm1;

  Date1: TDate1;

  ms:array[1..12]of string;

  w:word; 

implementation

{$R *.dfm} 
 

procedure TDate1.CheckDay;

 begin

   TRY

     day:=strtoint(Form1.Edit1.Text);

    except

     on EConvertError do

        begin

          MessageDLG('Неправильный формат данных', mtError, [mbOk], 0);

          Form1.edit1.Text:='1';

          day:=1;

        end;

   end;

     if day>31 then

       begin

         w:=MessageDLG('В одном месяце не может быть более 31 дня!', mtWarning, [mbOk], 0);

         Form1.edit1.Text:='1';

         day:=1;

       end;

    if day=0 then

       begin

         w:=MessageDLG('Как день может быть равен нулю?!!', mtWarning, [mbOk], 0);

         Form1.edit1.Text:='1';

         day:=1;

       end;

     day:=strtoint(Form1.Edit1.Text);

 end;

procedure TDate1.CheckMounth;

var b:boolean;

 begin

   TRY

     mounth:=strtoint(Form1.Edit2.Text);

    except

     on EConvertError do

        begin

          MessageDLG('Неправильный формат данных', mtError, [mbOk], 0);

          Form1.edit2.Text:='1';

          mounth:=1;

        end;

   end;

     if mounth=0 then

        begin

          w:=MessageDLG('Как месяц может быть равен нулю?!!', mtWarning, [mbOk], 0);

          Form1.edit2.Text:='1';

          mounth:=1;

         end;

      if mounth>12 then

        begin

          w:=MessageDLG('В одном году не больше 12 месяцев!', mtWarning, [mbOk], 0);

          Form1.edit2.Text:='1';

          mounth:=1;

        end;

       

case mounth of

       2: b:=true;

       4,6,9,11: b:=false;

      end;

     if (b=false)and(day=31) then

        begin

          w:=MessageDLG('В этом месяце не больше 30 дней!', mtWarning, [mbOk], 0);

          Form1.edit2.Text:='1';

          mounth:=1;

        end;

     if (b=true)and(day>29) then

        begin

          w:=MessageDLG('В феврале не больше 29 дней!', mtWarning, [mbOk], 0);

          Form1.edit1.Text:='1';

          day:=1;

        end;

     day:=strtoint(Form1.Edit1.Text);

     mounth:=strtoint(Form1.Edit2.Text);

 end;

procedure TDate1.CheckYear;

var t:real;

 begin

   TRY

     year:=strtoint(Form1.Edit3.Text);

    except

     on EConvertError do

        begin

         MessageDLG('Неправильный формат данных', mtError, [mbOk], 0);

         Form1.edit3.Text:='1';

          year:=1;

        end;

   end;

     t:=year;

     t:=t/4;

     if (frac(t)<>0)and(mounth=2)and(day>28) then

        begin

          w:=MessageDLG('Это не високосный год, значит в феврале не больше 29 дней!', mtWarning, [mbOk], 0);

          Form1.edit1.Text:='1';

          day:=1;

        end;

     day:=strtoint(Form1.Edit1.Text);

 end;

procedure TDate1.Print;

 begin

   TRY

     day:=strtoint(Form1.Edit1.Text);

    except

     on EConvertError do

        begin

          MessageDLG('Неправильный формат данных', mtError, [mbOk], 0);

          Form1.edit1.Text:='1';

          day:=1;

        end;

   end;

   TRY

     mounth:=strtoint(Form1.Edit2.Text);

    except

     on EConvertError do

        begin

          MessageDLG('Неправильный формат данных', mtError, [mbOk], 0);

          Form1.edit2.Text:='1';

          mounth:=1;

        end;

   end;

   TRY

     year:=strtoint(Form1.Edit3.Text);

    except

     on EConvertError do

        begin

          MessageDLG('Неправильный формат данных', mtError, [mbOk], 0);

Информация о работе Объекты в Odject Pascal