Проектирование диаграммы классов

Автор: Айрат Хайруллин, 23 Ноября 2010 в 11:23, практическая работа

Описание работы

Создание программы, которая будет выполнять следующие действия:
-рисование фигур (треугольник, линия, круг);
-сохранение данных о фигурах в определенном формате.

Содержание

1. Цель работы ……………………………………………….……………3
2. Структура работы ...……………………………………….……………3
3. Ход работы …..…………………………………………….……………3
4. Диаграмма классов …..………...………………………….……………6
5. Диаграмма объектов и связей …..……………..………….……………7
6. Основные понятия и определения……………..………….……………8
Приложение 1………………………………………………………………10
Список использованной литературы………………………………….…..16

Работа содержит 1 файл

готовый РГР ООП.doc

— 210.00 Кб (Скачать)

Федеральное агентство по образованию

Государственное образовательное учреждение высшего  профессионального образования

«УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ  УНИВЕРСИТЕТ»           
 
 
 
 
 
 
 
 
 

Расчетно-графическая работа

по объектно-ориентированному программированию

на тему:

«Проектирование диаграммы классов»    
 
 
 
 
 
 
 
 

Выполнил:

Студент гр.МИЭ 310з

Хайруллин А.Н

Проверил

 Преподаватель Бажин Д.Н.  
 
 
 
 

УФА  – 2010

 

Содержание. 
 

1. Цель  работы ……………………………………………….……………3

2. Структура  работы ...……………………………………….……………3

3. Ход  работы …..…………………………………………….……………3

4. Диаграмма  классов …..………...………………………….……………6

5. Диаграмма объектов и связей …..……………..………….……………7

6. Основные понятия и определения……………..………….……………8

Приложение 1………………………………………………………………10

Список  использованной литературы………………………………….…..16 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1. Цель работы

    1) Создать программу на языке  ООП, которая будет выполнять  следующие действия:

    -рисование   фигур (треугольник, линия, круг);

    -сохранение  данных о фигурах в определенном формате.

    2) Для создания программы изучить  и уметь применить теорию объектно-ориентированного  программирования. 
 

2. Структура работы

Для создания программы  был выбран объектно-ориентированный  язык Object Pascal в среде программирования Delphi 7. 

3. Ход работы

Программа состоит из одной формы (Form1), на которой находятся элементы управления: 

-поле рисования PaintBox1:TPaintBox;

-кнопка «Линия»  (Button1:TButton) по нажатию которой рисуется в поле рисования линия;

- кнопка «Треугольник» (Button2:TButton) по нажатию которой рисуется в поле рисования ;

- кнопка «Линия» (Button3:TButton) по нажатию которой рисуется в поле рисования линия;

- кнопка «Сохранить» (Button4:TButton) по нажатию которой рисуется в поле рисования линия. 
 
 

 

 

При нажатии  кнопки «Сохранить» появляется меню сохранения данных о фигурах в файл: 
 
 

Текст программы  см. в Приложении 1.

 

4. Диаграмма классов:  
 

          TFigure
          - x: integer

          - y: integer

          + Draw()

          + move (integer,integer)

          + ToString() : String

 

TCircle
- r: integer
+ Draw()

+ move (integer,integer)

+ ToString() : String

 
 
TLine
- dx: integer

- dy: integer

+ Draw()

+ move (integer,integer)

+ ToString() : String

 
TTriangle
- dx: integer

- dy: integer

- dx2: integer

- dy2: integer

+ Draw()

+ move (integer,integer)

+ ToString() : String

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

5. Диаграмма объектов  и связей между ними:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

                          наследование

                             агрегация

                             включение 
 
 
 
 
 
 
 
 
 

6. Основные понятия  и определения. 

Класс (class) - это группа данных и методов (функций) для работы с этими данными. Это шаблон. Объекты с одинаковыми свойствами, то есть с одинаковыми наборами переменных состояния и методов, образуют класс.

Классы объектов определяются в секции type глобального блока. Описание класса начинается с ключевого слова class и заканчивается ключевым словом end. Класс обычно описывает сущность, моделируемую в программе.

Обычно у класса бывают три раздела: private, public, protected. Указание на начало раздела private часто опускается и, если не объявлено начало ни одного из других разделов описания класса, считается, что данные относятся к разделу private. 

type

  TForm1 = class(TForm)

    Button1: TButton;

    PaintBox1: TPaintBox;

    Button2: TButton;

    Button3: TButton;

    OpenDialog1: TOpenDialog;

    Button4: TButton;

    SaveDialog1: TSaveDialog;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormPaint(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

  private

  Shapes:TList;

  drawing: boolean;

  StartX,StartY,FinishX,FinishY: integer;

    { Private declarations }

  public

    { Public declarations }

  end; 
 

Объект (object)- это конкретная реализация, экземпляр класса. В программировании отношения объекта и класса можно сравнить с описанием переменной, где сама переменная(объект) является экземпляром какого-либо типа данных(класса).

Обычно, если объекты  соответствуют конкретным сущностям реального мира, то классы являются некими абстракциями, выступающими в роли понятий. Класс можно  воспринимать как шаблон объекта. Для формирования какого-либо реального объекта необходимо иметь шаблон, на основании которого и строится создаваемый объект. При рассмотрении основ ООП часто смешивается понятие объекта и класса. Дело в том, что класс - это некоторое абстрактное понятие. Для проведения аналогий или приведения примеров оно не очень подходит. На много проще приводить примеры, основываясь на объектах из реального мира, а не на абстрактных понятиях. Поэтому, говоря, к примеру, про наследование мы прежде всего имеем ввиду наследование классов(шаблонов), а не объектов, хотя часто и применяем слово объект. Скажем так: объект - это физическая реализация класса(шаблона).

Методы (methods)- это функции(процедуры), принадлежащие классу.

Наследование - это процесс, посредством которого, один объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него.

Инкапсуляция  — это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только интерфейсную часть класса и не вникать в его внутреннюю реализацию. Поэтому данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимую реализацию и модификацию классов.

Полиморфизм — явление, при котором функции (методу) с одним и тем же именем соответствует разный программный код (полиморфный код) в зависимости от того, объект какого класса используется при вызове данного метода.

Агрегация – это включение объекта (объектов) одного класса в состав объекта другого класса. Данный подход широко применяется в интерфейсном подходе к проектированию программ. 
 
 
 
 
 
 
 
 
 
 

Приложение 1.

unit Unit1;

interface

uses

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

  Dialogs, ExtCtrls, StdCtrls;

type

  TForm1 = class(TForm)

    Button1: TButton;

    PaintBox1: TPaintBox;

    Button2: TButton;

    Button3: TButton;

    OpenDialog1: TOpenDialog;

    Button4: TButton;

    SaveDialog1: TSaveDialog;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormPaint(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

  private

  Shapes:TList;

  drawing: boolean;

  StartX,StartY,FinishX,FinishY: integer;

    { Private declarations }

  public

    { Public declarations }

  end;

  TFigure=class

    x,y: Integer;

    canvas: TCanvas;

    procedure Draw; virtual; abstract;

    procedure Move (DX,DY: integer);

    constructor Create (ACanvas:TCanvas);

    function ToString:String; virtual; abstract;

  end;

  TLine=class(TFigure)

    dx,dy: integer;

    procedure Draw; override;

    constructor Create (ACanvas:TCanvas);

    constructor CreateParams(ACanvas:TCanvas; X1,Y1,X2,Y2: integer);

    function ToString:String; override;

  end;

  TCircle=class(TFigure)

    r: integer;

    procedure Draw; override;

    constructor Create (ACanvas:TCanvas);

    function ToString:String; override;

  end;

   TTriangle=class(TFigure)

    dx,dy: integer;

    dx2,dy2: integer;

    procedure Draw; override;

    constructor Create (ACanvas:TCanvas);

    function ToString:String; override;

  end;

var

  Form1: TForm1;

implementation 

{$R *.dfm}

{ TFigure }

constructor TFigure.Create(ACanvas: TCanvas);

begin

  Canvas := ACanvas;

  x:=50;

  y:=100;

end;

procedure TFigure.Move(DX,DY: integer);

Информация о работе Проектирование диаграммы классов