Разработка Шифра Цезаря объектно-ориентированного программирования Object Pascal в среде Borland Delphi

Разработка программного средства для реализации задачи шифрования и расшифровывания с помощью "шифра Цезаря" сообщения на русском языке. Технология работы со средой программирования Delphi. Алгоритм решения задачи. Тестирование программного продукта.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.04.2023
Размер файла 352,0 K

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

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

Размещено на http://www.Allbest.Ru/

Курсовой проект

Тема:

Разработка Шифра Цезаря объектно-ориентированного программирования Object Pascal в среде Borland Delphi

Содержание

  • Введение
  • 1. Анализ требований и определение спецификаций на программный продукт
  • 2. Проектирование и разработка програмного продукта
  • 2.1 Описание алгоритма решения задачи
    • 2.2 Описание программного продукта
    • 2.3 Тестирование программного продукта
    • 2.4 Руководство пользователя
  • Заключение
  • Приложение А. Текст программы
  • Приложение Б. Экранные формы

Введение

Целью курсовой работы является разработка Шифра Цезаря объектно-ориентированного программирования Object Pascal в среде Borland Delphi и разработка программы, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке.

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

При выполнении курсовой работы были поставлены следующие задачи:

1. изучить теорию и технологию работы со средой программирования Delphi;

2. изучить и проанализировать соответствующую литературу;

3. провести сравнительный анализ языков программирования этого класса, выявить достоинства и недостатки;

4. составить алгоритм решения задачи;

5. разработать приложение согласно заданию.

Для разработки приложения была выбрана среда Borland Delphi, язык Object Pascal.

Среда предназначена для быстрой (RAD) разработки прикладного ПО для операционных систем Windows, Mac OS X, а также iOS и Android. Благодаря уникальной совокупности простоты языка и генерации машинного кода, позволяет непосредственно, и, при желании, достаточно низкоуровнево взаимодействовать с операционной системой, а также с библиотеками, написанными на C/C++. Созданные программы независимы от стороннего ПО, как-то Microsoft .NET Framework или Java Virtual Machine. Выделение и освобождение памяти контролируется в основном пользовательским кодом, что, с одной стороны, ужесточает требования к качеству кода, а с другой -- делает возможным создание сложных приложений с высокими требованиями к отзывчивости (работа в реальном времени). В кросс-компиляторах для мобильных платформ предусмотрен автоматический подсчёт ссылок на объекты, облегчающий задачу управления их временем жизни.

Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.

1. Анализ требований и определение спецификаций на программный продукт

1.1 Функциональное назначение проектируемой программы

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

Шифр Цезаря, также известный как шифр сдвига, код Цезаря или сдвиг Цезаря - один из самых простых и наиболее широко известных методов шифрования. Шифр Цезаря -- это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом вправо на 3, А была бы заменена на Г, Б станет Д, и так далее.

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

Рисунок 1 - Принцип кодирования информации «шифром Цезаря»

На рисунке 1 продемонстрирован принцип шифрования информации.

Программа для шифрования сообщения «шифром Цезаря» должна быть написана на языке Object Pascal в среде Embarcadero RAD Studio XE8 и предназначена для использования на локальном компьютере стандартной конфигурации.

1.2 Требования к функциональным характеристикам

Исходя из условия задания на курсовое проектирование, программа должна иметь следующие функциональные характеристики:

1. иметь поле для ввода текстового сообщения;

2. иметь функции как для шифрования, так и для расшифровывания введенного сообщения

3. предусматривать «круговое» вычисление буквы алфавита;

4. учитывать наличие прописных и строчных букв в сообщении и обрабатывать их соответствующим образом;

5. игнорировать любые символы и цифры кроме символов русского алфавита;

6. выводить результат шифрования/расшифровывания на экран;

7. выводить по требованию информацию об авторе и программе.

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

Приёмка программного продукта должна проводиться при наличии полной документации на программу (пояснительной записки с приложениями: текстом программы и результатами тестов).

1.3 Требования к аппаратным и программным средствам

В качестве средства разработки программного продукта была выбрана система программирования Embarcadero RAD Studio XE8. Данная система предоставляет собой комплексное решение для разработки программного обеспечения, ускоряющее создание нативных приложений для Windows, Mac, iOS и Android на базе единого исходного кода.

Минимальные требования для работы RAD Studio XE8:

- 1 ГБ оперативной памяти (рекомендуется 2 ГБ и более);

- от 3 до 7 ГБ свободного места на жестком диске в зависимости от редакции и конфигурации;

- базовый графический процессор любого поставщика, класса DirectX 9.0 или выше (Pixel Shader 2.0);

- процессор Intel® Pentium® или совместимый с частотой не менее 1,6 ГГц (рекомендуется 2 ГГц и выше);

- монитор с разрешением 1024Ч768 или выше;

- мышь или другое указывающее устройство;

- Microsoft® Windows Vista с пакетом обновления 2 (32- и 64-разрядная) и новее;

Приведённые программно-аппаратные средства взяты из рекомендуемых разработчиками требований и подходят под определение «Рекомендуемая конфигурация ПК», так как конечный программный продукт будет иметь меньшие требования чем вся среда программирования. Таким образом можно утверждать, что для работы программы требуется любой персональный компьютер с установленной операционной системой Windows Vista и новее.

2. Проектирование и разработка программного продукта

2.1 Описание алгоритма решения задачи

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

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

Рисунок 2 - Блок-схема алгоритма работы функции шифрования

Здесь формируется два массива символов alf и alf2 для строчных и прописных букв русского алфавита соответственно. Также в массив строчных символов был внесен знак пробела для большей надежности шифра:

alf: array[1..34] of Char = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя ';

alf2: array[1..33] of Char =

'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';

Также устанавливается переменная fl в значение false. В дальнейшем она будет сигнализировать о вхождении символа в какой-либо из наборов. Кроме того, определяется символ «~», который должен служить сигналом основной программе, что искомый символ в наборах не найден, так как, кроме символов русского алфавита в сообщении вероятна передача знаков латиницы или цифр.

Таким образом, производится перебор сначала первого массива строчных символов:

for i: = 1 to 34 do

Где переданный символ сверяется с текущим в наборе

if c = alf[i] then

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

if i<32 then

И в соответствии с результатом определяется шифрованный символ alf[i+3] или alf[i-31]. Данный шифрованный символ передается в переменную res, которая и вернет его при завершении работы функции code()

code:=res;

Кроме того, при условии вхождения искомого символа в набор символов алфавита, значение переменной fl устанавливается в true, что свидетельствует о нахождении знака и возможности завершения работы функции. Если же, после проверки первого массива символов, в переменной fl установлено значение false, то схожим методом производится поиск символа во втором массиве знаков.

После проверки обоих массивов, результатом работы функции станет символ хранящийся в переменной res

code:=res

При этом, если искомый символ не был найден в наборах данных, то по умолчанию вернется знак «~» установленный изначально.

На рисунке 3 показана общая схема алгоритма кодирования сообщения.

Рисунок 2- Общая схема работы программы

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

Для начала в отдельную переменную заносится введенное сообщение:

str:=edit1.Text

Также, создается отдельная переменная, которая будет содержать зашифрованный текст:

shifr:=str

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

function code(c: char): char

...

function decode(c: char): char;

Проверка производится следующим образом

if code(str[i])<>'~' then

shifr[i]:=code(str[i])

Т.е. если функция кодирования code() вернула любой символ кроме «~», то значит, что искомый знак был найден в наборах и вернулась его зашифрованная версия. После чего, вернувшийся символ подставляется в переменную содержащую кодированное сообщение. Иначе же, считается, что искомый знак не является символом русского алфавита или пробелом и в результирующую строку подставляется «оригинальный» символ

shifr[i]:=str[i];

После чего производится отображение частично или полностью зашифрованного сообщения

edit1.text:=shifr;

Однако для того, чтобы кодирование не производилось мгновенно, а имело некий «визуальны» эффект, были добавлены две команды

sleep(100);

application.ProcessMessages;

Первая обеспечивает задержку в 100 миллисекунд для обеспечения визуального эффекта. А вторая команда передает управление на некоторое время операционной системе, чтобы изменения строки отображались на экране в реальном времени, так как работа программы фактически производится «внутри себя», а такой визуальный компонент как edit построен на API Windows и отображается при помощи средств ОС.

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

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

Приложение, разработанное в Delphi, состоит из файлов, описание которых представлено в таблице 1.

Таблица 1

Описание файлов проекта

Расширение

Описание файла

Project1.dproj

Основной файл проекта программы. Разработан фирмой Embarcadero Technologies в качестве замены ранее использовавшегося .dpr

Project1.dpr

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

Project1.identcache

Временный кэш-файл

Project1.res

содержит ресурсы проекта, такие как иконки, курсоры и другие

Unit1-2.pas

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

Unit1-2.dfm

Файлы с информацией о форме. Тут содержатся описания используемых компонентов и их настройки.

При создании интерфейса было использовано несколько стандартных компонент Delphi:

- TPanel - использована для улучшения внешнего вида программы, т.к. имеет возможность по умолчанию отображать в центре текст. Таким образом данный компонент использовался как замена компоненту TLabel;

- TEdit - поле для ввода текстового сообщения подлежащего последующему кодирования и оно же служит для отображения результатов шифрования/расшифрования;

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

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

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

Таблица 2

Перечень процедур

Имя модуля

Имя процедуры

Примечание

Unit 1

Procedure Button1Click (Sender: TObject);

Процедура для запуска процесса шифрования сообщения

function code(c: char): char;

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

function decode(c: char): char;

Функция аналогичная предыдущей, но работает с кодированным символом, а возвращает расшифрованный

procedure Button2Click (Sender: TObject);

Процедура для запуска процесса расшифровывания сообщения

procedure Button3Click (Sender: TObject);

Процедура очистки поля ввода

procedure TForm1.Button4Click (Sender: TObject);

Процедура вызова окна «О программе»

procedure TForm1.FormShow (Sender: TObject);

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

2.3 Разработка интерфейса

Разработка интерфейса- немаловажный этап разработки любого приложения. В приложении со сложным и неудобным интерфейсом трудно как разобраться, так и работать. Интерфейс-совокупность средств и методов взаимодействия между элементами системы. Главным элементом интерфейса в проекте являются формы. На формы были добавлены изображения, кнопки, метки, рамка и групповое окно. Все элементы и их свойства указаны в Таблице 3.

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

Таблица 3

События и свойства элементов интерфейса

Элемент

Имя

Заголовок

Высота

Ширина

Свойства и события

Form1

Шифровальщик

193

649

FormShow

Panel1

Шифр Цезаря

37

649

Button1

Шифровать

33

122

Button1Click

Button2

Дешифровать

33

122

Button2Click

Edit1

Edit1

27

629

Button3

Очистить

25

75

Button3Click

Button4

О программе

25

105

Button4Click

Form2

О программе

207

484

Label1

25

207

Label2

13

54

Label3

13

82

Label4

13

65

Label6

13

36

2.3 Тестирование программного продукта

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

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

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

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

С точки зрения ISO 9126, Качество (программных средств) можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:

- Надёжность

- Сопровождаемость

- Практичность

- Эффективность

- Мобильность

- Функциональность

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

Входные данные: сообщение в поле ввода.

Цель тестирования программы: выявить ошибки в коде, проверить правильность процесса кодирования/декодирования информации.

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

Рисунок 3 - Тестовый исходный набор символов

Попытка шифрования введенного сообщения привела к результатам, показанным на рисунке 4.

Рисунок 4 - Зашифрованный набор тестовых символов

Букве «а» соответствует буква «г» в шифрованном варианте, что корректно. Символу пробела сопоставлена буква «в», т.к. пробел добавлен 34-м символом в массив строчных русских букв. Буквы «э», «ю» и «я» также зашифрованы корректно с учетом символа пробела. Таким образом можно утверждать, что поставленная задача выполнена и шифрование обеспечивается «по кругу».

Прописная буква «Ё» также зашифрована корректно.

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

Обратное шифрование (расшифрование) привело тестовый набор к исходному виду.

Тестирование программы проводилось последовательно, этапы тестирования отражены в таблице 4.

Таблица 4

Тестирование приложения

Этап

Действие

Результат

1

Поле ввода сообщения

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

2

Нажатие кнопки «О программе»

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

3

Нажатие кнопки «Очистить»

Производится очистка поля ввода от всех возможных символов. Ошибок не выявлено.

4

Нажатие кнопки «Шифровать»

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

5

Нажатие кнопки «Дешифровать»

Процедура обратная шифрованию. Работает корректно, любой зашифрованный текст расшифровывается.

Ошибок в работе программы обнаружено не было. К недостаткам можно отнести возможность многократного шифрования исходного сообщения. Однако обратная последовательность нажатий кнопки «Дешифровать» приводит сообщение к исходному виду. Таким образом все элементы управления работают корректно.

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

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

Для работы с программой необходимо запустить файл project.exe

В верхней части экрана размещена панель с названием «Шифр Цезаря».

В центре экрана представлено поле для ввода сообщения. Сюда следует вводить исходное сообщение, предназначенное для шифрования или текст требующий дешифровки.

Нужное действие производится путем нажатия кнопок «Шифровать» и «Дешифровать». Результат произведенного действия отобразится здесь же.

Кнопка «Очистить» предназначена для очистки поля ввода.

Кнопка «О программе» открывает окно с информацией о разработчике.

программный шифр цезарь русский алгоритм задача

Заключение

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

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

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

Для реализации алгоритма были разработаны две функции для кодирования и декодирования текстового сообщения

Проведено тестирование и исправление имеющихся ошибок.

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

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

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

Список использованных источников

1. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие: Немцова Тамара Игоревна, Голова Светлана Юрьевна, Абрамова Ирина Владимировна, Гагарина Лариса Геннадьевна. Год издания 2017. Кол-во. страниц 496.

2. Интерактивный практикум по компьютерной схемотехнике на Delphi. Учебное пособие: Авдеев Вадим Александрович. Год издания 2011. Кол-во страниц 360.

3. Разработка приложений в среде Delphi. В 2 частях. Часть 1. Общие приемы программирования. Учебное пособие: Соколова Юлия Сергеевна, Жулева Светлана Юрьевна. Год издания 2013. Кол-во страниц 142.

4. Delphi: программирование в примерах и задачах. Практикум. Учебное пособие: Эйдлина Галина Михайловна, Милорадов Константин Александрович. Год издания 2017. Кол-во страниц 119.

5. Delphi. Готовые алгоритмы. Практическое пособие: Стивенс Род. Год издания 2007. Кол-во страниц 384.

Приложение А (Обязательное)

Листинг программы

unit Unit1;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,

System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Button3: TButton;

Button4: TButton;

procedure Button1Click(Sender: TObject);

function code(c: char): char;

function decode(c: char): char;

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

const

alf: array[1..34] of Char = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя ';

alf2: array[1..33] of Char =

'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';

implementation

{$R *.dfm}

uses Unit2;

function tform1.code(c: char): char;

var

i: integer;

res: char;

fl: boolean;

begin

fl:=false;

res:='~';

for i := 1 to 34 do

if c=alf[i] then

begin

if i<32 then

res:=alf[i+3]

else

res:=alf[i-31];

fl:=true;

end;

if not fl then

for i := 1 to 33 do

if c=alf2[i] then

if i<31 then

res:=alf2[i+3]

else

res:=alf2[i-31];

code:=res;

end;

function tform1.decode(c: char): char;

var

i: integer;

res: char;

fl: boolean;

begin

res:='~';

fl:=false;

for i := 1 to 34 do

if c=alf[i] then

begin

if i>3 then

res:=alf[i-3]

else

res:=alf[i+31];

fl:=true;

end;

if not fl then

for i := 1 to 33 do

if c=alf2[i] then

if i>3 then

res:=alf2[i-3]

else

res:=alf2[i+30];

decode:=res;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

edit1.SetFocus;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

i: integer;

str,shifr: string;

begin

str:=edit1.Text;

shifr:=str;

for i:=1 to length(str) do

begin

if code(str[i])<>'~' then

shifr[i]:=code(str[i])

else

shifr[i]:=str[i];

edit1.text:=shifr;

sleep(100);

application.ProcessMessages;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

i: integer;

str,shifr: string;

begin

str:=edit1.Text;

shifr:=str;

for i:=1 to length(str) do

begin

if decode(str[i])<>'~' then

shifr[i]:=decode(str[i])

else

shifr[i]:=str[i];

edit1.text:=shifr;

sleep(100);

application.ProcessMessages;

end;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

edit1.Text:='';

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

form2.show;

end;

end.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>

<ProjectGuid>{A065F919-DC4D-481B-AA24-

A38917D07337}</ProjectGuid>

<ProjectVersion>19.2</ProjectVersion>

<FrameworkType>VCL</FrameworkType>

<Base>True</Base>

<Config Condition="'$(Config)'==''">Debug</Config>

<Platform Condition="'$(Platform)'==''">Win32</Platform>

<TargetedPlatforms>1</TargetedPlatforms>

<AppType>Application</AppType>

<MainSource>Project1.dpr</MainSource>

</PropertyGroup>

<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true')

or '$(Base_Win32)'!=''">

<Base_Win32>true</Base_Win32>

<CfgParent>Base</CfgParent>

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true')

or '$(Base_Win64)'!=''">

<Base_Win64>true</Base_Win64>

<CfgParent>Base</CfgParent>

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">

<Cfg_1>true</Cfg_1>

<CfgParent>Base</CfgParent>

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true')

or '$(Cfg_1_Win32)'!=''">

<Cfg_1_Win32>true</Cfg_1_Win32>

<CfgParent>Cfg_1</CfgParent>

<Cfg_1>true</Cfg_1>

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">

<Cfg_2>true</Cfg_2>

<CfgParent>Base</CfgParent>

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true')

or '$(Cfg_2_Win32)'!=''">

<Cfg_2_Win32>true</Cfg_2_Win32>

<CfgParent>Cfg_2</CfgParent>

<Cfg_2>true</Cfg_2>

<Base>true</Base>

</PropertyGroup>

<PropertyGroup Condition="'$(Base)'!=''">

<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>

<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>

<DCC_E>false</DCC_E>

<DCC_N>false</DCC_N>

<DCC_S>false</DCC_S>

<DCC_F>false</DCC_F>

<DCC_K>false</DCC_K>

<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imagin

g;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_

Namespace>

<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon

<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_Uwp

Default_44.png</UWP_DelphiLogo44>

<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_Uwp

Default_150.png</UWP_DelphiLogo150>

<SanitizedProjectName>Project1</SanitizedProjectName>

</PropertyGroup>

<PropertyGroup Condition="'$(Base_Win32)'!=''">

<DCC_UsePackage>DBXSqliteDriver;RESTComponents;DataSnapServer

Midas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;fsDB27;

vclFireDAC;bindcompvclsmp;emsclientfiredac;DataSnapFireDAC;

tethering;svnui;FireDACADSDriver;frx27;DBXMSSQLDriver;fsTee27;

DatasnaponnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;

bindcompfmx;svn;DBXOracleDriver;inetdb;fs27;FmxTeeUI;emsedge;

FireDACIBDriver;fmx;fmxdae;vcledge;vclib;FireDACDBXDriver;

dbexpress;IndyCore;vclx;frxTee27;dsnap;DataSnapCommon;emsclient;

FireDACCommon;RESTBackendComponents;DataSnapConnectors;

VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQL

Driver;CloudService;FireDACOracleDriver;FireDACMySQL

Driver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommon

Driver;DataSnapClient;inet;bindcompdbx;IndyIPCommon;frxDB27;

vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2

Driver;bindcompvclwinx;dsnapcon;FireDACMSAccDriver;

FireDACInfxDriver;fmxFireDAC;vclimg;frxIntIOIndy27;TeeDB;

FireDAC;emshosting;frxIntIO27;FireDACSqliteDriver;FireDACPg

Driver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTData

Driver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnap

Server;xmlrtl;DataSnapNativeClient;ibxbindings;fmxobj;FireDACDS

Driver;soapmidas;rtl;emsserverresource;DbxClientDriver;vclwinx;

DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;

appanalytics;frxADO27;DBXInformixDriver;IndyIPClient;fsADO27;

bindcompvcl;frxe27;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;

DataSnapIndy10ServerTransport;frxcs27;DataSnapProviderClient;

dsnapxml;dbrtl;FireDACMongoDBDriver;IndyProtocols;inetdbxpress;

fmxase;$(DCC_UsePackage)</DCC_UsePackage>

<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web

Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>

<BT_BuildType>Debug</BT_BuildType>

<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>

<VerInfo_Keys>CompanyName=;FileDescription=$

(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;Legal

Copyright=;LegalTrademarks=;OriginalFilename=;

ProgramID=com.embarcadero.$(MSBuildProjectName);

ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;

Comments=</VerInfo_Keys>

<VerInfo_Locale>1033</VerInfo_Locale>

<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>

</PropertyGroup>

<PropertyGroup Condition="'$(Base_Win64)'!=''">

<DCC_UsePackage>DBXSqliteDriver;RESTComponents;

DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;

vclactnband;vclFireDAC;bindcompvclsmp;emsclientfiredac;DataSnapFire

DAC;tethering;FireDACADSDriver;DBXMSSQLDriver;

DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;

bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;FireDACIB

Driver;fmx;fmxdae;vcledge;vclib;FireDACDBXDriver;dbexpress;

IndyCore;vclx;dsnap;DataSnapCommon;emsclient;FireDACCommon;

RESTBackendComponents;DataSnapConnectors;VCLREST

Components;soapserver;vclie;bindengine;DBXMySQLDriver;

CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebird

Driver;FireDACCommonODBC;FireDACCommonDriver;

DataSnapClient;inet;bindcompdbx;IndyIPCommon;vcl;

DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2

Driver;bindcompvclwinx;dsnapcon;FireDACMSAccDriver;

FireDACInfxDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;emshosting;

FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;

DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommon

Driver;ibxpress;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;

ibxbindings;fmxobj;FireDACDSDriver;soapmidas;rtl;emsserverresource;

DbxClientDriver;vclwinx;DBXSybaseASADriver;CustomIPTransport;

vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;

bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;

DataSnapIndy10ServerTransport;DataSnapProviderClient;dsnapxml;

dbrtl;FireDACMongoDBDriver;IndyProtocols;inetdbxpress;fmxase;

$(DCC_UsePackage)</DCC_UsePackage>

</PropertyGroup>

<PropertyGroup Condition="'$(Cfg_1)'!=''">

<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>

<DCC_DebugDCUs>true</DCC_DebugDCUs>

<DCC_Optimize>false</DCC_Optimize>

<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>

<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>

<DCC_RemoteDebug>true</DCC_RemoteDebug>

</PropertyGroup>

<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">

<DCC_RemoteDebug>false</DCC_RemoteDebug>

<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>

<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>

</PropertyGroup>

<PropertyGroup Condition="'$(Cfg_2)'!=''">

<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>

<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>

<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>

<DCC_DebugInformation>0</DCC_DebugInformation>

</PropertyGroup>

<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">

<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>

<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>

</PropertyGroup>

<ItemGroup>

<DelphiCompile Include="$(MainSource)">

<MainSource>MainSource</MainSource>

</DelphiCompile>

<DCCReference Include="Unit1.pas">

<Form>Form1</Form>

<FormType>dfm</FormType>

</DCCReference>

<DCCReference Include="Unit2.pas">

<Form>Form2</Form>

<FormType>dfm</FormType>

</DCCReference>

<BuildConfiguration Include="Release">

<Key>Cfg_2</Key>

<CfgParent>Base</CfgParent>

</BuildConfiguration>

<BuildConfiguration Include="Base">

<Key>Base</Key>

</BuildConfiguration>

<BuildConfiguration Include="Debug">

<Key>Cfg_1</Key>

<CfgParent>Base</CfgParent>

</BuildConfiguration>

</ItemGroup>

unit Unit2;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,

System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type

TForm2 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label6: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

end.

Приложение Б

Экранные формы

Рисунок Б1 - Главное окно программы

Рисунок Б-2. Окно программы с введенным сообщением

Рисунок Б3. Окно программы с зашифрованным сообщением

Рисунок Б4. Окно «О программе»

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


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

  • Методы грамматического разбора. Разработка структуры учебного транслятора на базовом языке программирования Object Pascal в среде объектно-ориентированного визуального программирования Borland DELPHI 6.0 с использованием операционной системы Windows XP.

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

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

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

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

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

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

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

    реферат [21,0 K], добавлен 13.01.2015

  • Описания объектов, свойств, методов, формы и основных модулей текста программы в среде Delphi. Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования. Анализ результатов тестирования программного продукта.

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

  • Понятие информационной безопасности. История развития криптографии. Функции информационных моделей. Переменные, используемые при разработке прикладной программы для шифрования и дешифрования сообщений с помощью шифра Цезаря. Блок-схема общего алгоритма.

    курсовая работа [975,5 K], добавлен 11.06.2014

  • Применение языка Delphi в качестве языка программирования для реализации игры "Разноцветные кубики". Методы заполнения квадратной матрицы. Разработка алгоритма решения задачи, структурная организация данных. Характеристика программного средства.

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

  • Эффективные средства разработки программного обеспечения. Технология визуального проектирования и событийного программирования. Конструирование диалоговых окон и функций обработки событий. Словесный алгоритм и процедуры программы Borland Delphi 7 Studio.

    дипломная работа [660,2 K], добавлен 21.05.2012

  • Формирование текстового документа с именем goto.cpp., содержимое которого взято из русифицируемой справки MSDN по оператору безусловного перехода. Выбор оптимального алгоритма решения задачи, разработка интерфейса, отладка и тестирование программы.

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

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