Автор: Пользователь скрыл имя, 26 Февраля 2013 в 22:15, курсовая работа
Цель курсовой работы – осуществить шифровку текста с помощью средств Delphi.
Для достижения названной цели в исследовании необходимо решить следующие задачи:
- осуществить постановку задач;
- создать блок-схемы алгоритмов;
- осуществить описание объектов, свойств, методов;
- разработать формы и представить текст программы;
- привести результаты тестирования программного продукта.
Введение
Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом, волновала человеческий ум с давних времен. С широким распространением письменности криптография стала формироваться как самостоятельная наука.
Актуальность этой науки
не угасает с момента основания
человеческого языка. Особенно в
нашей эры компьютеров
Цель курсовой работы – осуществить шифровку текста с помощью средств Delphi.
Для достижения названной цели в исследовании необходимо решить следующие задачи:
- осуществить постановку задач;
- создать блок-схемы алгоритмов;
- осуществить описание объектов, свойств, методов;
- разработать формы и представить текст программы;
- привести результаты тестирования программного продукта.
Для выполнения этих задач
будем использовать среду объектно-
Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.
Курсовая работа состоит из теоретической и практической части. Теоретическая часть состоит из: постановки задачи; математической модели; алгоритма решения задачи и блок. Практическая часть состоит из: описания объектов, свойств и методов; формы и основных модулей текста программы в среде Delphi; результата тестирования программного продукта; графического представления результатов; анализа полученных результатов.
1 Теоретическая часть
Форма - это самый важный центральный визуальный компонент Delphi, это синоним окна, играющий роль контейнера, который содержит другие компоненты, определяющие функциональность приложения. Разрабатываете приложения, размещая другие компоненты на форме. Формы Delphi подразделяются на следующие категории:
1. Стандартные однодокументные (SDI) формы, подразделяющиеся в свою очередь на:
- немодальные, реализующие нормальные окна Windows, которое имеет заголовок, стандартный набор оконных кнопок, допускает наличие главного меню, изменение размеров формы и может в любое время терять фокус и становиться пассивным и наоборот, т.е. имеет все стилевые особенности стандартного окна Windows. Именно, к этому типу окон относится главная форма приложения Delphi;
- модальные, реализующие диалоговые окна Windows, которые при активизации запрещают переключение фокуса на другие формы приложения (но не других приложений), пока оно не будет закрыто, а также не имеют полного набора оконных кнопок, главного меню и т.п.
2. Мультидокументные (MDI) формы, которые всегда состоят из:
- главного родительского окна, являющегося фактически нормальным немодальным окном, в клиентской области которого может существовать множество разнотипных управляемых главным;
- подчиненных дочерних окон. На основе одной дочерней формы может запускаться в родительском окне множество экземпляров дочерних окон. Родительская форма может иметь несколько разнотипных дочерних форм и соответственно порождать разнотипные дочерние окна. Особенностью мультидокументных форм является также то, что главное меню родительского окна наследуются дочерними окнами и может ими доопределяться и модифицироваться.
3. Панели сообщений, которые являются частными случаями диалоговой панели и не являются компонентами Delphi. Это просто функции модуля Dialogs, вызывающие в свою очередь функции Windows. Эти панели можно подразделить на:
- функции сообщений MessageDlg и MessageDlgPos;
- функции ввода строки данных InputBox и InputQuery.
1.1. Общие свойства и методы формы
Свойство Caption задает заголовок окна.
Свойство FormStyle определяет один из следующих стилей формы окна:
- fsNormal- нормальное окно;
- fsMDIChild- дочернее окно MDI приложения;
- fsMDIForm- родительское окно MDI приложения;
- fsStayOnTop- окно, остающееся поверх других окон приложения даже в неактивном состоянии, за исключением такого же типа окон.
Такая разновидность окон как диалоговая не имеет собственного стиля. Оно реализуется динамически на базе нормального окна или посредством свойства BorderStyle или метода вызова формы на экран. Нормальная форма вызывается как немодальная методом Show, а как модальная, диалоговая методом ShowМоdal, который реализует весь жизненный цикл модальной формы.
Свойство BorderIcons определяет набор кнопок (biSystemMenu – системного меню, biMinimize - свертки окна, biMaximize - развертки окна и biHelp - помощи) в заголовке окна, за исключением кнопки закрытия окна - оно присутствует в любом окне.
Свойство BorderStyle задает способ обрамления окна:
- bsNone- рамка отсутствует;
- bsSingle- тонкая рамка;
- bsSizeable- форма может изменять размер (по умолчанию);
- bsDialog- диалоговая панель.
Свойство WindowState определяет начальное состояние вызванного окна, посредством следующих опций:
- wsNormal- нормальное;
- wsMaximized- максимизированное;
- wsMinimized- минимизированное.
Свойство Icon: Ticon задает значок, которым будет представляться окно в свернутом состоянии. Если не задан, то используется значок приложения.
Свойство Position: Tposition определяет размер и место формы на экране, когда оно появляется, посредством следующих опций:
- poDesigned- Позиция и размер те же, что и при разработке;
- poDefault - Позиция и размер определяются Windows. Каждый раз, когда вы выполняете приложение, форма перемещается чуть ниже и правее. Правая сторона рядом с правой стороной экрана, а низ рядом с нижней границей экрана, независимо от разрешения экрана;
- poDefaultPosOnly- Проектный размер с позицией, определенной Windows;
- poDefaultSizeOnly- Проектная позиция с размером, опеределенным Windows;
- PoScreenCenter - Проектный размер в центре экрана.
Свойство Color задает цвет фона формы.
Каждая форма может иметь главное и всплывающее меню. На главное меню указывает свойство Menu: TMainMenu, а на всплывающее по правой кнопке мышки свойство PopupMenu; TPopupMenu. Для создания меню при проектировании используется Дизайнер Меню.
1.2. Создание формы
Правила создания формы на этапе выполнения задаются в опциях проекта. Формы, которые заданы в списке Auto-Create, создаются при запуске приложения в файле проекта. Все прочие формы (список Available Forms) нужно создавать самостоятельно, посредством конструктора Create или метода Application.CreateForm в коде модулей программы. Например, для создания и запуска нормальной формы используется код
Application.CreateForm(
или
SmetaForm := TSmetaForm.Create(Self);
SmetaForm.Show;
Создание, запуск и уничтожение модальной формы производится следующим образом:
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
FRabForm.ShowModal;
FRabForm.Free;
Модальная диалоговая форма используется для ввода информации и должна возвращать данные. Первый способ состоит в задании переменных связи в интерфейсной части вызывающей формы и установке их значений в диалоговой форме при ее завершении. Однако, это не лучший способ, он нарушает принцип инкапсуляции, упрятывания информации и требует установки взаимной видимости модулей посредством оператора uses. Лучший способ в диалоговой форме создать экспортную процедуру или функцию типа ShowMe, которая будет запускать сама свою форму и возвращать результат как свой параметр. Например,
unit Main;
. . .
uses Visform;
. . .
procedure TForm1.VisibleClick(Sender: TObject);
begin
VisiForm.ShowMe(Query1);
end;
unit Visform;
. . .
type
TVisiForm = class(TForm)
private
R: array[0..25] of TCheckBox;
procedure CreateRad(Index: Integer; Name: String; Visible: Boolean);
public
{ Public declarations }
procedure ShowMe(Query1: TQuery);
end;
procedure TVisiForm.ShowMe(Query1: TQuery);
var
i: Integer;
begin
for i := 0 to Query1.FieldCount - 1 do
CreateRad(i, Query1.Fields[i].Name, Query1.Fields[i].Visible);
Height := (Query1.FieldCount - 1) * (RadSize + 5);
if Height > 470 then Height := 470;
ShowModal;
for i := 0 to Query1.FieldCount - 1 do
Query1.Fields[i].Visible := R[i].Checked;
end;
Форма заставка приложения, которая появляется на экране во время инициализации приложения и сообщает о названии, версии и разработчике программы, является по сути вариацией формы About со следующими свойствами:
Caption = пустой
BorderStyle = bsNone
FormStyle = fsNormal
Position = poScreenCenter
WindowState = wsNormal
запускаемой в проекте следующим образом
SplashForm := TSplashForm.Create(
SplashForm.Show;
SplashForm.Update;
Application.Title := 'Название приложения';
Application.CreateForm(
SplashForm.Hide;
SplashForm.Free;
Application.Run;
В стандартном приложении задача создания и удаления форм возлагается на само приложение. Правила создания форм на этапе выполнения задаются в параметрах проекта (страница Forms). Все формы, которые включины в состав приложения на этапе визуального проектирования, могут быть автоматически созданы при его запуске, для этого их имена должны находиться в списке Auto-create forms (рис. 1). Все прочие формы (список Available forms) нужно создавать самостоятельно, вызвав конструктор Create или метод Application. CreateForm.
Рисунок 1.1 Параметры создания форм можно задать в диалоговом окне свойств проекта
Самым первым событием, которое возникает при создании формы, является
property OnCreate: TNotifyEvent;
Это событие инициируется в конструкторе формы и позволяет выполнить операции по начальной установке формы и ее элементов до визуализации. В обработчик этого события стоит включить присвоение значений неопубликованным свойствам формы и свойствам компонентов, которых нет в палитре. Также здесь нужно "подключить" написанные вами обработчики событий для этих компонентов. В этом случае внешний вид и поведение форм будут корректными с самого начала.
Первоначально показана будет только одна — главная форма. Вы также можете придать этот статус любой из всех автоматически создаваемых форм посредством параметров проекта. По умолчанию главной будет первая включенная в проект форма.
Если в проекте много форм, постарайтесь не создавать все сразу и перенести максимально возможное количество из списка Auto-create forms в список Available forms. Это позволяет сильно экономить память и, в конечном счете, — время.
При вызове метода
procedure Show;
происходит показ формы на экране. При показе она становится видимой и помещается поверх других форм приложения, что сопровождается инициализацией события:
property OnShow: TNotifyEvent;
При этом форма получает то положение и размеры, которые задаются значениями свойства:
property Position: TPosition;
TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, ooScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter).
1.3. События формы
Самым первым событием, которое возникает при создании формы, является OnCreate. В обработчике этого события выполняются операции по начальной установке свойств формы и ее элементов до ее визуализации. Сюда стоит включить присвоение значений неопубликованным свойствам и свойствам объектов, которых нет в палитре компонентов, например, TAplication, а также установить обработчики событий для этих объектов.
Примечание. Не используйте в OnCreate имени компонента типа "форма" (например, Form1) при обращении к свойствам и методам компонентов формы, поскольку переменная Form1 еще не существует, а находится в стадии создания.
При визуализации формы методами Run, Show и ShowModal или получении ей фокуса (активизации) происходит вызов обработчиков событий в следующем порядке:
OnShow- появляется перед тем как форма станет видимой и используется для любой спецобработки до появления формы. Применяется редко, обычно для установки свойств Position, Caption, Color.
OnActivate - появляется, когда форма становится активной. Для MDI дочерних окон событие OnActivate появляется только, когда фокус передается от одного дочернего окна другому. Если фокус передается от нормального окна, то это событие появляется для родительской MDI формы. Событие OnActivate приложения (TApplication), но не формы, появляется, когда Windows переключает фокус с другого приложения на ваше.
OnPaint- вызывается до рисования компонентов принадлежащих форме, поэтому нарисованное в нем может служить фоном. Для рисования используется полотно/канва (canvas) формы. Замечание. Delphi рисует только компоненты, то что вы нарисовали программно методами класса TCanvas вы должны перерисовать сами и поэтому их надо включать в данный обработчик событий.