Программирование на языках высокого уровня

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.06.2014
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

  • Введение
  • 1. Анализ технического задания и возможных способов его реализации
  • 2. Обоснование выбора инструментальных программных средств
  • 3. Обоснование выбора технических средств
  • 4. Описание программного продукта
  • 4.1 Описание блок-схемы алгоритма работы программы
  • 4.2 Организация входных и выходных данных
  • 4.3 Описание листинга программы
  • 5. Тестирование программного продукта
  • 6. Защита программного продукта
  • 7. Руководство пользователя
  • Заключение
  • Литература

Введение

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

Выбор в качестве среды программирования Delphi 7 не случаен. За годы своего развития Delphi 7 превратился в комплект невероятно мощных инструментов для Windows-программирования. Он позволяет хранить большую часть программного кода внутри самостоятельных объектов, а это сокращает объем больших программ (изначально Delphi 7 был разработан именно для того, чтобы облегчить работу с большими программами). Программировать для Windows стало значительно проще. Кроме того, программы Delphi 7стало значительно проще отлаживать. Вместо одной огромной монолитной программы мы имеем дело с набором аккуратных и удобных в обращении модулей.

1. Анализ технического задания и возможных способов его реализации

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

Программа должна выполнять следующие действия: при запуске программы пользователь должен указать чем он будет рисовать или же выбрать одну из предложенных геометрический фигур. Кроме того он может добавить своё изображение нажав кнопку "Открыть" и выбрав нужное ему изображение и воспользоваться одним из графических фильтров предложенных на панели. Далее пользователь может начинать работу на холсте.

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

Производительность объектных программ.

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

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

Динамически создаваемые объекты, как правило, размещаются в куче, что менее эффективно, чем размещение их на стеке и, тем более, статическое выделение памяти под них на этапе компиляции.

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

2. Обоснование выбора инструментальных программных средств

В настоящее время для решения задач прикладного характера используется большое количество инструментальных средств разработки.

Инструментальные средства для создания программных продуктов:

- обладают разнообразным инструментарием;

- позволяют разработать интуитивно-понятный интерфейс для пользователя;

- наиболее эффективно использовать технические ресурсы.

Для создания клиентских приложений чаще всего применяются средства разработки, обладающие развитыми визуальными инструментами, такие как:

- MicrosoftVisualBasic;

- SybasePowerBuilder;

- Borland C++Builder;

- Borland Delphi 7

Сравнение и выбор наиболее подходящего среди вышеупомянутых языков программирования:

VisualBasic (VB) унаследовал положительные качества и отчасти синтаксис своего предка - языка Бэйсик, у которого есть немало диалектов. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.

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

PowerBuilder - передовой объектно-ориентированный инструмент для коллективной разработки приложений масштаба предприятия с широким спектром поддерживаемых стандартов Web-ориентированных компонент. Интегрированный инструментарий PowerSite позволяет разработчикам использовать PowerBuilder в качестве средства разработки для Web-приложений. Тесная интеграция с сервером приложений EAServer обеспечивает надежность, готовность и масштабируемость интернет-приложений, разрабатываемых на PowerBuilder и развертываемых на EAServer.

PowerBuilder, - среда декларативной разработки приложений, позволяющая создавать, поддерживать и развивать критические для бизнеса Windows приложения.

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

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

С++ компилируемая строго типизированная среда программирования общего назначения. Поддерживает разные парадигмы программирования, но с его предшественником - средой С (си) наиболее внимание уделено поддержке объектно-ориентированного и обобщенного программирования.

C++BuilderX предназначен для упрощения параллельного управления исходным кодом за счет тесной интеграции с BorlandStarTeam - системы автоматического конфигурирования и управления изменениями.

Delphi использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны мощь и простоту программирования.

Delphi - мощная система, предназначенная для быстрой разработки приложений самого различного характера и назначения.

Использование Delphi 7 позволяет создавать как самые простые приложения, на разработку которых требуется 2-3 часа, так и серьезные корпоративные проекты, предназначенные для работы десятков и сотен пользователей. Вследствие чего Delphi 7 предназначен не только для профессионалов-программистов, но и для обычного персонала различных компаний и учебных заведений. Так же важно отметить небольшой размер установочных файлов, что не затрудняет хранение, переустановку самой программы. Изначально она обладает достаточным минимумом для создания любого несложного приложения, а дополнительно идут наборы компонентов, которые можно установить в случае необходимости. Благодаря минимализму Delphi 7 быстрее загружается и компилирует программный продукт. Поэтому среда программирования Delphi 7 является наиболее подходящей для разработки данного программного продукта.

Для разработки данного программного продукта была выбрана среда разработки Delphi 7 Это модификация Delphi 2006, не требующая наличия .NET. Размер архива - 74.6 MB, что, позволяет создавать полноценные программы.

Среда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных.

Язык программирования

Достоинства

Недостатки

MicrosoftVisualBasic;

1)простой синтаксис, позволяющий очень быстро освоить язык;

2)в режиме отладки программа всегда (вне зависимости от выбора) компилируется в P-код, что позволяет приостанавливать выполнение программы, вносить значительные изменения в исходный код, а затем продолжать выполнение: полная перекомпиляция и перезапуск программы при этом не требуется;

3)защита от ошибок при применении указателей и доступа к памяти.

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

2)низкая скорость работы, обусловленная тем, что практически все встроенные фу

нкции языка реализованы через библиотеку времени исполнения (runtimelibrary), которая, в свою очередь, производит много "лишней" работы по проверке и/или преобразованию типов.

3)программу необходимо дописывать на другом объектно-ориентированном языке программирования, как на C++ или Delphi;

4)скорость работы;

5)отсутствует механизм наследования.

PowerBuilder

1)легко создавать визуальные современные пользовательские приложения

2) легко разрабатывать бизнес приложения

1) сложность структурирования программного кода

2) сложность записи процедур

3)сложно реализовать техническое задание

Borland C++BuilderX:

1)позволяет перенести разработку на языке C++ на различные платформы (простым и интуитивно понятным образом поддерживающий различные платформы и средства компиляции-отладки).

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

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

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

1)ручное подключение библиотек;

2)отсутствие графических компонентов.

Delphi

1) высокопроизводительный компилятор в машинный код;

2) объектно-ориентированная модель компонент;

3) визуальное построение приложений из программных прототипов;

4) масштабируемые средства для построения баз данных.

5) небольшой размер дистрибутива;

6) выключены все установочные опции, кроме "Sourcecode".

1) Delphi XE5 занимает большой объем жесткого диска и требует длительной устновки.

В соответствии с вышеперечисленными достоинствами и недостатками, возможностями и требованиями в качестве средств разработки данного программного продукта была выбрана среда разработки Delphi 7.

3. Обоснование выбора технических средств

Проблема выбора аппаратных средств ПЭВМ обусловлена необходимостью повышения производительности и снижения трудоемкости работы программы. Для разработки программного продукта была выбрана операционная система WindowsSeven, так как она наиболее подходящая для реализации поставленной задачи.

Для корректной работы программного продукта необходимы следующий минимальный набор аппаратных средств:

- центральный процессор с тактовой частотой не менее3.33 МГц - используется для обработки информации (рекомендуется частота в1 ГГц);

- видеоадаптер не менее 128 Мб;

- свободное пространство на жестком диске для полной установки 265 Мб;

- объем оперативной памяти не менее256 МБ;

- привод для чтения компакт-дисков;

- манипулятор типа"мышь";

- клавиатура;

- VGA, DVI или HDMI монитор;

Данные аппаратные ограничение необходимы в связи с работой программы на персональных компьютерах с более высокими аппаратными характеристиками для корректной работы программного продукта. Рассмотрим эти характеристики подробнее.

Процессор - исполнитель машинных инструкций, часть аппаратного обеспечения компьютера; отвечает за выполнение операций, заданных программами. Основной характеристикой быстродействия процессора является его тактовая частота . Для работы программы с незначительными временными задержками или без задержек предъявляются требования к тактовой частоте 1.66MГц или выше.

Видеоадаптер (графический ускоритель) занимается формированием самого графического образа.

Оперативная память предназначена для временного хранения данных и команд, необходимых процессору для выполнения им операций. Оперативная память передаёт процессору данные непосредственно, либо через кэш-память. Для работы программы необходим указанный объём памяти в размере 256 Мб или выше. В случае несоблюдения этого требования программный код не будет загружен в оперативную память, не будет выполнен процессором и, соответственно, программа не будет выполнена.

Оптический привод предназначен для считывания информации с оптических носителей информации (компакт-диск).

Накопитель на жёстких является основным накопителем данных в большинстве компьютеров.

Для установки программного обеспечения требуется свободное место на жестком диске. Объём 200 Мб обуславливается критически-допустимым размером на жестком диске , необходимым для стабильной работы операционной системы. База данных по мере заполнения будет занимать с каждым разом все больше свободного места на жестком диске, но изначально рекомендуется зарезервировать под нее около 50 Мб.

4. Описание программного продукта

4.1 Описание блок-схемы алгоритма работы программы

Блок-схема -- распространенный тип схем (графических моделей), описывающих алгоритмы или процессы, в которых отдельные шаги изображаются в виде блоков различной формы, соединенных между собой линиями, указывающими направление последовательности.

Правила выполнения схем определяются следующими документами:

- ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.[1]

- Для программной документации (устарели, заменяются ГОСТ 19.701-90):

- ГОСТ 19.002-80. Схемы алгоритмов и программ. Правила выполнения.[2]

- ГОСТ 19.003-80. Схемы алгоритмов и программ. Обозначения условные графические.[3][4]

Данные документы в частности регулируют способы построения схем и внешний вид их элементов.

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

Для автоматического создания блок-схем из исходных текстов программ и их создания вручную существуют свободные программы -- Dia, Kivio, OpenOffice.org Draw; коммерческие программы Microsoft Visio.

4.2 Организация входных и выходных данных

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

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

Выходными данными будет являться сохранённые изображения.

4.3 Описание листинга программы

программа изображение аппаратный листинг

unitmain;

interface

uses

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

Dialogs, ExtCtrls, Buttons, StdCtrls, Menus, ExtDlgs, ComCtrls, jpeg;

type

TForm1 = class(TForm)

Panel1: TPanel;

ScrollBox1: TScrollBox;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton1: TSpeedButton;

ColorBox1: TColorBox;

ColorBox2: TColorBox;

Label1: TLabel;

Label2: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

SpeedButton5: TSpeedButton;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

SpeedButton6: TSpeedButton;

SavePictureDialog1: TSavePictureDialog;

Image1: TImage;

SpeedButton7: TSpeedButton;

TrackBar1: TTrackBar;

Button1: TButton;

Label3: TLabel;

Shape1: TShape;

Label4: TLabel;

SpeedButton10: TSpeedButton;

OpenPictureDialog1: TOpenPictureDialog;

ProgressBar1: TProgressBar;

procedure image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormCreate(Sender: TObject);

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

Y: Integer);

procedure image1Paint(Sender: TObject);

procedure image1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure N5Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Image1Progress(Sender: TObject; Stage: TProgressStage;

PercentDone: Byte; RedrawNow: Boolean; const R: TRect;

const Msg: String);

procedure SpeedButton7Click(Sender: TObject);

procedure TrackBar1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure SpeedButton10Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

TShape=(sPen, sRect, sEllipse, sPoly, sFill, sRectL);

var

Form1: TForm1;

nowdrawing:TShape;

img, buffer:TBitmap;

xm,ym,x0,y0:integer;

dwn:boolean;

implementation

{$R *.dfm}

// Эта функция добавляет эффект сепии в растровое изображение.

// 'глубина' устанавливает интенсивность цвета красно-коричневого цвета

// большее число установить более высокую интенсивность.

// Чтобы создать в оттенках серого эффект вместо этого, установить 'глубину' 0

function bmptosepia(const bmp: TBitmap; depth: Integer): Boolean;

var

color,color2:longint;

r,g,b,rr,gg:byte;

h,w:integer;

begin

form1.ProgressBar1.Max:=bmp.Height;

for h := 0 to bmp.height do

begin

for w := 0 to bmp.width do

begin

// сначала преобразовать растровое изображение в оттенки серого

color:=colortorgb(bmp.Canvas.pixels[w,h]);

r:=getrvalue(color);

g:=getgvalue(color);

b:=getbvalue(color);

color2:=(r+g+b) div 3;

bmp.canvas.Pixels[w,h]:=RGB(color2,color2,color2);

//затем преобразовать его в сепию

color:=colortorgb(bmp.Canvas.pixels[w,h]);

r:=getrvalue(color);

g:=getgvalue(color);

b:=getbvalue(color);

rr:=r+(depth*2);

gg:=g+depth;

if rr <= ((depth*2)-1) then

rr:=255;

if gg <= (depth-1) then

gg:=255;

bmp.canvas.Pixels[w,h]:=RGB(rr,gg,b); // закашывает пиксель вопределенный цвет

form1.ProgressBar1.Position:=h;

end;

end;

end;

procedure TForm1.image1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if button=mbLeft then begin

img.assign(buffer);

x0:=x; y0:=y;

if SpeedButton1.Down then // карандаш

begin

nowdrawing:=sPen;

img.canvas.MoveTo(x,y);

end else

if SpeedButton2.Down then // эллипс

nowdrawing:=sEllipse else

if SpeedButton3.Down then

nowdrawing:=sRect else // квадрат

if SpeedButton4.Down then

nowdrawing:=sPoly else

if SpeedButton5.Down then // заливка

nowdrawing:=sFill;

if speedbutton6.Down then // ластик

nowdrawing:=sRectL;

dwn:=true;

img.Canvas.Pen.Color:=ColorBox1.Selected;

img.Canvas.Brush.Color:=ColorBox2.Selected;

if nowdrawing=sFill then

begin

img.Canvas.FloodFill(x0,y0,img.Canvas.Pixels[x,y],fsSurface);

buffer.Assign(img);

dwn:=false;

end

end else

begin

if (dwn)and(nowdrawing=sPoly) then begin

x0:=x;

y0:=y;

buffer.Assign(img);

end;

end;

image1.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),img.Canvas,bounds(0,0,img.Width,img.Height)); //копирует на Canvas изображение

end;

procedure TForm1.FormCreate(Sender: TObject); //создание Btm и установка их размеров

begin

Img:=TBitmap.Create;

buffer:=TBitmap.Create;

img.Width:=image1.ClientWidth;

buffer.Width:=image1.ClientWidth;

img.Height:=image1.ClientHeight;

buffer.Height:=image1.ClientHeight;

nowdrawing:=sPen;

dwn:=false;

end;

procedure TForm1.image1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

REFRESH;

if not dwn then exit;

img.assign(buffer);

case nowdrawing of

sPen:begin

img.Canvas.Brush.Style:=bsclear; //рисует линии

img.Canvas.LineTo(x,y);

buffer.Assign(img);

end;

sRect:begin //делаетквадратвнутрипрозрачным

img.Canvas.Brush.Style:=bsclear;

img.Canvas.Rectangle(x0,y0,x,y);

end;

sRectL: begin //ластик

shape1.Left:=x-116;

shape1.Top:=y-20;

img.Canvas.Pen.Color:=colorbox2.Color;

buffer.Canvas.Pen.Color:=colorbox2.Color;

img.Canvas.Brush.color:=colorbox2.Color;

buffer.Canvas.Brush.Color:=colorbox2.Color;

buffer.Canvas.brush.style:=bssolid;

img.Canvas.Brush.style:=bssolid;

img.Canvas.Rectangle(x-23,y-23,x+23,y+23); // устанавливает расзмеры ластика

buffer.Canvas.Rectangle(x-23,y-23,x+23,y+23);

end;

sEllipse:begin // делает эллипсы прозрачными

img.Canvas.Brush.Style:=bsclear;

img.Canvas.Ellipse(x0,y0,x,y);

end;

sPoly:begin // делает квадраты прозрачными

img.Canvas.Brush.Style:=bsclear;

img.Canvas.MoveTo(x0,y0);

img.Canvas.LineTo(x,y);

end;

sFill:begin

end;

end;

image1.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),img.Canvas,bounds(0,0,img.Width,img.Height));

end;

procedure TForm1.image1Paint(Sender: TObject);

begin

image1.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),buffer.Canvas,bounds(0,0,img.Width,img.Height));

end;

procedure TForm1.image1MouseUp(Sender: TObject; Button: TMouseButton; //

Shift: TShiftState; X, Y: Integer);

begin

if button=mbLeft then dwn:=false;

buffer.Assign(img); // асоциирует буффер с img

end;

procedure TForm1.N5Click(Sender: TObject); // закрытие программы

begin

Close;

end;

procedure TForm1.N2Click(Sender: TObject); // процедура для добавления своего ищображения

begin

ifOpenPictureDialog1.Execute then image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

end;

procedure TForm1.N3Click(Sender: TObject); //процедура для сохранения

begin

if savePictureDialog1.Execute then image1.picture.SaveToFile(savePictureDialog1.FileName);

end;

procedure TForm1.Image1Progress(Sender: TObject; Stage: TProgressStage; //

PercentDone: Byte; RedrawNow: Boolean; const R: TRect;

const Msg: String);

begin

image1.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),buffer.Canvas,bounds(0,0,img.Width,img.Height));

end;

procedure TForm1.SpeedButton10Click(Sender: TObject); // при нажатии появляетсья эффект сепии

begin

bmptosepia(image1.picture.bitmap, 20);

end;

procedure TForm1.SpeedButton7Click(Sender: TObject); // очитска холста

begin

image1.Canvas.Brush.Color:=clwhite;

image1.Canvas.Brush.Style:=bssolid;

image1.Canvas.FillRect(image1.ClientRect);

img.Canvas.FillRect(img.Canvas.ClipRect);

buffer.Canvas.FillRect(buffer.Canvas.ClipRect);

end;

procedure TForm1.TrackBar1Change(Sender: TObject); // толщина линий

begin

img.Canvas.Pen.Width:=trackbar1.Position;

end;

procedure TForm1.Button1Click(Sender: TObject); // эффект негатив

var line:pByteArray;

i,j:integer;

begin

for i:=0 to image1.Picture.Bitmap.Height-1 do

begin

line:=image1.Picture.Bitmap.ScanLine[i];

for j:=0 to image1.Picture.Bitmap.Width*3-1 do

line^[j]:=255-line^[j];

end;

image1.Refresh; // обновление

end;

procedure TForm1.SpeedButton6Click(Sender: TObject); // при нажатии на эту кнопку ластик становитсья невидемым

begin

shape1.Visible:=true;

end;

procedure TForm1.SpeedButton5Click(Sender: TObject); //отключает ластик при нажатии на кнопку

begin

shape1.Visible:=false;

end;

procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

shape1.Visible:=false;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

shape1.Visible:=false;

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

shape1.Visible:=false;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

shape1.Visible:=false;

end; end.

5. Тестирование разработанного программного продукта

Рисуем все фигуры и заливаем их как на рисунке(Рис.1)

Рисунок 1 -Нарисованные и залитые фигуры.

Нажимаем кнопку "Открыть",выбираем изображение как на рисунке.(Рис.2)

Рисунок 2 -Выбор изображения

Далее применяем эффект нажав на кнопку "Негатив", как на рисунке.(Рис.3)

Рисунок 3 -Эффект "Негатив".

Теперь применяем эффект "Сепии", как на рисунке.(Рис. 4)

Рисунок 4 - Эффект "Сепии".

Теперь сохраняем изображение нажав на кнопку "Сохранить", как на рисунке (Рис.5)

Рисунок 5 - Сохранение изображения.

6. Защита программного продукта

File Lock - это средство безопасности для защиты ваших файлов и папок. Оно предназначено для блокирования доступа к файлам, папкам и дискам. Программа полностью скрывает их и делает невидимыми. При этом, пользователи не имеют возможность открывать, читать, изменять, перемещать, копировать или удалять заблокированные папки и файлы. Скрытые папки и файлы недоступны не только пользователям, но и любым программам, включая Проводник Windows.

File Lock поддерживает разные пользовательских учетные записи. Программа продолжает защищать файлы и папки, даже когда Windows загружена в безопасном режиме. Кроме этого, она может использоваться для блокирования доступа к приводам CD/DVD.

Утилита File Lock разработана, чтобы обеспечивать безопасность файлов только на вашем локальном компьютере. Шифрование файлов при этом не производится, что позволяет избежать снижения производительности компьютера. При этом нет совершенно никаких шансов, что данные будут потеряны или повреждены.

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

Для создания защищенного контейнера запускай программу Folder Lock- Encryptfile-CreateLocker-Выбираем диск где будет хранится контейнер и как он будет называться (Рис.6)

Рисунок 6- Создание нового контейнера

Далее нажимаем создать и вводим пароль который будет использован для защиты документа (Рис. 7)

Рисунок 7 - Ввод пароля

Далее выбираем размер контейнера.(Рис. 8)

Рисунок 8 - выбора размера контейнера

После создания контейнера помещаем туда данные.(Рис. 9)

Рисунок 9-поместил файл в контейнер

7. Руководство пользователя

1. Карандаш-при нажатии на эту кнопку мы сможем рисовать линиями.

2. Эллипс-при нажатии на эту кнопку мы сможем рисовать эллепсы.

3. Заливка-при нажатии на эту кнопку мы сможем залить как фигуры так и весь холст, но для этого нужно задать цвет фона в поле 11.

4. Очистка холста-при нажатии на эту кнопку очищается холст

5. Прямоугольник-при нажатии на эту кнопку мы сможем рисовать прямоугольники.

6. Ломаная-при нажатии на эту кнопку мы сможем нарисовать отрезок.

7. Ластик-при нажатии на эту кнопку мы сможем стирать уже нарисованные линии или фигуры.

8. Толщина линии-с помощью бегунка мы можем задать толщину линий карандаша и толщину линий фигур.

9. Негатив-применяет эффект "Негатив" на уже нарисованное или открытое вами изображение.

10. Сепия-применяет эффект "Сепии" на уже нарисованное или открытое вами изображение.

11. Цвет и фон-Выбрав "Цвет"-мы можем выбрать цвет для линий карандаша или для контура других фигур. -Выбрав "Фон"- задает цвет фона всего холста или отдельно выбранной фигуры, но перед этим нужно нажать кнопку 3.

12. Открыть- при нажатии на этот пункт меню мы можем вставить своё изображение и работать с ним.

13. Сохранить- при нажатии на этот пункт меню мы сохраняем получившееся изображение.

14. Выход- при нажатии на этот пункт меню мы закрываем программу (Изображение нужно сохранять до закрытия программы).

15. Справка-при нажатии на этот пункт меню мы можем узнать кто разработал программу и информацию о программе.

Заключение

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

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

Литература

1. Голицына О.Л., Попов И.И Программирование на языках высокого уровня: учебное пособие //. - М.: Форум, 2010. - 496с.

2. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение Спб.: Питер, 2009. - 624 с.

3. Канцедал С.А Алгоритмизация и программирование: учебное пособие (ГРИФ) //. - М.: ИТ Форум: ИНФРА - М, 2010. - 252с.

4. Бесплатная, виртуальная, электронная, Интернет библиотека www.xserver.ru (дата обращения 13.02.14).

5. Журнал Компьютер Пресс: Тестирование. Безопасность: www.compress.ru (дата обращения 13.02.14).

6. Компьютерная и техническая документация: www.emanual.ru (дата обращения 13.02.14).

7. Образовательный портал: http\\www.edu.sety.ru (дата обращения 13.02.14).

Размещено на Allbest.ru


Подобные документы

  • Организация входных и выходных данных. Выбор состава технических и программных средств. Функционал для заполнения заявки для постоянно клиента. Форма вывода справки по программе. Таблица файлов, входящих в проект. Тестирование программы, ее листинг.

    курсовая работа [2,5 M], добавлен 25.05.2014

  • Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.

    курсовая работа [159,8 K], добавлен 26.01.2010

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

    дипломная работа [2,6 M], добавлен 22.06.2011

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

    курсовая работа [1,3 M], добавлен 15.11.2009

  • Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.

    дипломная работа [1008,9 K], добавлен 13.10.2013

  • Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.

    курсовая работа [700,6 K], добавлен 26.01.2010

  • Разработка класса "Калькулятор" выполняющего ввод данных, проверку правильности введенных данных, выдачу соответствующих сообщений в случае возникновения ошибок. Листинг и скриншоты выполнения программы, порядок ее запуска. Руководство пользователя.

    курсовая работа [394,2 K], добавлен 18.05.2013

  • Разработка эскизного и технического проектов программы "Шифр Цезаря": назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка, тест и внедрение программы.

    курсовая работа [563,7 K], добавлен 15.07.2012

  • Разработка Windows-приложения, представляющего собой компьютерную игру "Кости". Организация входных и выходных данных. Минимальные требования. Выбор состава технических и программных средств. Спецификация программы, ее описание и внедрение, тестирование.

    курсовая работа [475,8 K], добавлен 18.07.2012

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

    курсовая работа [680,3 K], добавлен 03.08.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.