Файл: Пояснительная записка к курсовому проекту на тему "Разработка графического редактора" по курсу "Объектноориентированное программирование".docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 44

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Модуль Unit1 просто дополненять и модифицировать. В частности, не представляет никаких затруднений добавить новые виды инструментов, добавив их в тип TDrawingTool и задав для них соответствующие действия в процедуре DrawShape.

DrawShape является наиболее функцмональной процедурой и управляет работой практически всей системы. События происходят в зависимости от выбранного инструмента( это отражается в переменной Drawingtool). События OnMouseDown, OnMouseMove, OnMouseUp вызывают процедуру и далее она производит все действия. При нажатии кнопки мыши(OnMouseDown) начинается прорисовка графического объекта, при движении мыши(OnMouseMove) объект прорисовывается в соответствии с изменением координат указателя мыши, когда кнопку отпускают(OnMouseUp) прорисовка заканчивается.

Процедура DrawShape описана в разделе public основного класса TForm1, что позволяет использовать ее в любом модуле программы

Описание метода TForm1.DrawShape:

procedure TForm1.DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);

var i:integer;

begin

with image1.Canvas do

begin

Pen.Mode :=amode;

case DrawingTool of

dtHandle: //КАРАНДАШ

begin

Pen.Mode :=pmcopy;

image1.Canvas.Pixels[topleft.x,topleft.y]:=colordialog1.Color;

image1.Canvas.LineTo(BottomRight.X, BottomRight.Y);

end;

dtLine: //РИСОВАНИЕ ЛИНИИ

begin

image1.Canvas.MoveTo(TopLeft.X, TopLeft.Y);

image1.Canvas.LineTo(BottomRight.X, BottomRight.Y);

end;

dtPolyline: //ПИРАМИДА

begin

image1.Canvas.Polyline([origin, movept, point(spinedit1.Value, spinedit2.Value)]);

end;

dtSpray: //РАСПЫЛИТЕЛЬ

begin

Pen.Mode :=pmcopy;

for i:=1 to 20 do

begin

image1.Canvas.Pixels[BottomRight.X+random(20),

BottomRight.Y+random(20)]:=colordialog1.Color;

end;

end;

dtFonty: //ВЫВОД ТЕКСТА

begin

image1.Canvas.TextOut(bottomright.x,bottomright.y,edit1.Text);

end;

dtRomb: //РОМБ

begin

image1.Canvas.MoveTo(topleft.x+((bottomright.x-topleft.x) div 2),topleft.y);

image1.Canvas.LineTo(bottomright.x, bottomright.y-((bottomright.y-topleft.y) div 2));

image1.Canvas.MoveTo(topleft.x+((bottomright.x-topleft.x) div 2),topleft.y);

image1.Canvas.LineTo(topleft.x, topleft.y+((bottomright.y-topleft.y) div 2));

image1.Canvas.LineTo(topleft.x+((bottomright.x-topleft.x) div 2),bottomright.y);

image1.Canvas.LineTo(bottomright.x, bottomright.y-((bottomright.y-topleft.y) div 2));

end;

dtRectangle: //РИСОВАНИЕ ПРЯМОУГОЛЬНИКА

image1.Canvas.Rectangle(TopLeft.X, TopLeft.Y, BottomRight.X,

BottomRight.Y);

dtEllipse: //РИСОВАНИЕ ЭЛЛИПСА

image1.Canvas.Ellipse(Topleft.X, TopLeft.Y, BottomRight.X,

BottomRight.Y);

dtGum: //ЛАСТИК

begin

Pen.Mode :=pmcopy;

pen.Color:=clwhite;

pen.Width:=10;

image1.Canvas.Pixels[topleft.x,topleft.y]:= clwhite;

image1.Canvas.LineTo(BottomRight.X, BottomRight.Y);

end;

dtBottle: //ЗАЛИВКА

image1.Canvas.FloodFill(topleft.x,topleft.y,image1.Canvas.Pixels[topleft.x,topleft.y],

fssurface);

dtRoundRect: //РИСОВАНИЕ СКРУГЛЁННОГО ПРЯМОУГОЛЬНИКА

image1.Canvas.RoundRect(TopLeft.X, TopLeft.Y, BottomRight.X, BottomRight.Y, (TopLeft.X - BottomRight.X) div 2,

(TopLeft.Y - BottomRight.Y) div 2);

end;

end;

end;

Полный текст всех модулей приведен в Приложении А.

Были использованы методы класса Tpicture:


LoadFromFile - загрузка изображения из файла

SaveToFile - сохранение изображения в файле,

Эти методы по умолчанию выводят диалоговые окна с помощью которых легко открывать и сохранять графические файлы.

При создании рисунка в программе используется объект Bitmap: Tbitmap, который создается конструктором Bitmap.Create, а затем уничтожается при помощи процедуры Bitmap.Free. Bitmap.Free автоматически вызывает деструктор объекта, если объект инициализирован, а если объект не создан, то деструктор не вызывается, что обеспечивает корректную работу программы.

При написании программы были соблюдены основные рекомендации стандартного оформления текстов программ. Соответствие стандартам заключается в следующем:

Составление идентификаторов производится так, чтобы по ним было понятно их основное предназначение (пример: и т.д.).

Используются «форматирующие пробелы» для повышения удобочитаемости программы.

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

Использование объектно-ориентированного подхода обеспечивает расширяемость.

Устойчивость к неправильным входным данным – невозможность задания неправильных данных.
4 Руководство пользователя
Программа поставляется в виде исполняемого ЕХЕ файла, запускается под управлением ОС Windows 9X, не требует большого количества системных ресурсов. Имеет удобный пользовательский интерфейс и достаточно широкие возможности для рисования, просмотра и редактирования изображений.

Кнопки выбора инструментов снабжены пиктограммами, иллюстрирующими данный графический инструмент. Помимо этого, при нажатии на кнопку, т. е. при выборе какого-либо инструмента изменяется вид курсора. Редактор снабжен системой всплывающих подсказок.

В заголовке главного окна содержится информация о редактируемом рисунке:

имя рисунка,

путь,

размер рисунка в пикселях.

Главное меню содержит подпункты:

- создать,

открыть,

сохранить,

сохранить как,

выход.

Каждый подпункт снабжен стандартной комбинацией “горячих” клавиш, которые вызывают то или иное действие:

создать Ctrl+N,

открыть Ctrl+O,

сохранить Shift+F12,

сохранить как Ctrl+S,

выход F10.



Пункт главного меню правка содержит команды для работы с буфером:

вырезать Shift+Del,

копировать Ctrl+Insert,

вставить Shift+Incert.

Подпункт “О программе…” - содержит справку о данной программе.

При создании рисунка на экране появляется вспомогательное окно для установления требуемых размеров. При открытии или сохранении файла в стандартном диалоговом окне пользователь выбирает нужные ему данные. Для инструментов прямоугольник, прямоугольник со скругленными углами, эллипс, ромб можно определить вид заполнения внутреннего пространства, толщину контура, цвет. Для инструментов карандаш, линия, пирамида можно осуществлять выбор толщины линии, цвет. Для инструмента распылитель можно выбирать цвет. Выбор цвета сводится к выбору цвета из стандартной шестнадцатицветной палитры, либо к выбору любого из оттенков 16-битового цвета. Редактор имеет инструменты выбора цвета контура и цвета внутреннего заполнения.

В редакторе можно с большими удобствами просматривать и пересохранять существующие изображения. Эта фунция вызывается при нажатии кнопки “Просмотр и выбор”, которая делает видимой панель на которой размещены элементы “Выбор диска”, “Выбор директории”, “Выбор типа файла”, “Выбор файла”.

Основные элементы панели инструментов выполняют следующие действия:

карандаш – рисование с учётом выбранного цвета, и толщины линии;

ластик - старание любого вида рисунка

заливка – заливка выбранной области, с учётом выбранного цвета;

спрей – распыление точек в определённой области, с учётом выбранного цвета;

окружность – рисование различных окружностей и эллипсов, с учётом выбранного цвета, вида заполнения;

прямоугольник – рисование квадратов и прямоугольников, с учётом выбранного цвета, вида заполнения;

скруглённый прямоугольник – рисование квадратов и прямоугольников со скруглёнными вершинами, с учётом выбранного цвета, вида заполнения;

ромб – рисование ромбов, с учётом выбранного цвета, вида заполнения;

пирамида – рисование пирамиды, с вершиной задаваемой координатами Х и Y в правом нижнем углу редактора, с учётом выбранного цвета;

вывод текста – вывод на рисунок текста выбранного шрифта и цвета, в выбранную точку;
5 Тестирование программы
Самое реалистичное тестирование программы проходило при её отладке, при тестировании проверялись функциональные возможности подсистем и отдельных инструментов. Затем осуществлялся сбор всех инструментов и производилось системное тестирование. С целью тестирования в данном редакторе создавались графические изображения при помощи многократного использования различных инструментов. Проверялась работа редактора при изменении цвета, толщины и вида линий, а также при изменении стиля заполнения различных фигур.


В редакторе можно произвести коррекцию уже созданных файлов, содержащих растровые изображения.

Тестирование показало, что программа должным образом реагирует на события от мыши, обрабатывая их определенным способом и производя заданные действия.
6. Критерии качества разработки программной системы
Критерии качества разработки программной системы:

соответствие заданию и выбранным ограничениям;

эффективное использование объектного подхода;

стиль программирования;

стилизация;

дизайн.

Поскольку по сути варианты заданий на курсовое проектирование представляют собой лишь канву тех или иных описаний поведения одиночных объектов или их групп, то данная работа соответствует выбранным ограничениям, и отражает суть задания, несколько расширяя его.

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

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

Созданный редактор имеет понятный и простой в использовании интерфейс, стандартное для Windows оформление.
Заключение
В ходе выполнения курсового проекта закреплены понятие объектно-ориентированного программирования, объектно-ориентированного анализа и объектно-ориентированного подхода, навыки по программированию в объектно ориентированной среде.

Программа, описанная в курсовом проекте разработана в соответствии с постановкой задачи на курсовое проектирование по теме “Разработка графического редактора” по дисциплине “Объектно-ориентированное программирование”.

Интерфейс созданной программы удобен, прост, наглядно отображает ее возможности. Редактор снабжен системой всплывающих подсказок. Главное меню редактора содержит команды работы с файлами, команды занесения рисунка в буфер и вывода рисунка из буфера.

Тестирование подтвердило, что программа корректно выполняет обработку данных и демонстрацию результатов.


Всё это свидетельствует о работоспособности программы и позволяет сделать вывод о ее пригодности для создания и редактирования графических изображений.
Библиографический список
1. Доронина Ю.В. Конспект курса лекций по дисциплине “Объектно-ориентированное программирование”.

2. Фаронов В.В. Delphi 6. Учебный курс. – М.: Издатель Молгачева С.В., 2001. – 672 с., ил.

3. Методические указания к курсовой работе по дисциплине “Объектно-ориентированное программирование” для студентов специальности 7.080.401 – “Компьютеризированные системы обработки информации и управления” /Сост. Ю.В. Доронина, А.Н. Синицын, 2001 (электронная версия).

4. Дарахвелидзе П.Г., Марков Е.П. Delphi 4 – Среда визуального программирования. БХВ – Санкт-Петербург, 1999. – 816 с.

5. Озеров В. – Советы по Delphi (электронная книга).