4618

Создание приложений в визуальной интегрированной среде разработки Delphi

Контрольная

Информатика, кибернетика и программирование

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

Русский

2012-11-23

314 KB

22 чел.

Цель работы:

  •  привитие практических навыков написания приложений в визуальной интегрированной среде разработки Delphi.

Содержание работы:

1. Создание простейших приложений.

2. Программирование калькулятора.

3. Создание генератора надежных паролей.

Требования к отчету:

Отчет по работе должен содержать:

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

II. МЕТОДИКА ВЫПОЛНЕНИЯ РАБОТЫ

1. Создание простейших приложений

Задание № 1а. Создание текста на форме

Создайте программу, имеющую интерфейс с двумя надписями (рис. 1).

Для отображения текста на форме используется компонент TLabel (Надпись) (кнопка Label  в палитре компонентов Standard).

Технология работы

  1.  Запустите программу Delphi (Пуск Программы Borland Delphi 7 Delphi 7)
  2.  Создайте новый проект типа Application, для чего выполните команды меню File  New  Application или щелкните по кнопке New items  и в открывшемся одноименном диалоговом окне на вкладке New дважды щелкните на пиктограмме .
  3.  Поместите надпись в форму: на палитре компонент выберите вкладку Standart и дважды щелкните кнопкой мыши на пиктограмме Label  (или один раз щелкните кнопкой мыши на , а затем щелкните мышью в нужном месте формы). При этом можно, не отпуская кнопки мыши, задать необходимые размеры. Чтобы удалить надпись из формы, выделите ее (щелкните на ней мышью) и нажмите клавишу Delete. Также удаление можно выполнить с помощью контекстного меню, если щелкнуть правой кнопкой мыши на объекте.
  4.  Переместите надпись в другое место формы методом перетаскивания. Для этого установите указатель мыши на надписи, щелкните кнопкой мыши и, удерживая ее нажатой, передвиньте надпись в другое место. Когда надпись займет нужное положение, отпустите кнопку мыши.
  5.  Измените свойство надписи Name (Имя) на MyFirstLabel (по умолчанию она называлась Label1): выделите надпись щелчком мыши, а затем в инспекторе объектов щелкните на свойстве Name и введите слово MyFirstLabel. После ввода нужного имени надписи зафиксируйте его, нажав клавишу Enter. Убедитесь, что вы изменяете свойство надписи, а не формы. Для этого надпись в форме должна быть выделена, а в поле выбора в верхней части инспектора объектов должно быть написано Label1: TLabel (когда вы измените имя надписи, там будет написано MyFirstLabel: TLabel).
  6.  Измените саму надпись. Для этого выберите в инспекторе объектов свойство Caption, введите новую надпись: «Моя первая надпись!» и нажмите клавишу Enter. Введенный текст появится в форме. Обратите внимание, как изменяются границы надписи. Это связано со свойством AutoSize. Если установить свойство AutoSize в состояние False, то автоматического изменения границ происходить не будет. Границы можно изменять вручную, для чего выделите объект и наведите курсор мыши на одну из черных меток границы. Когда он примет вид двунаправленной стрелки, нажмите кнопку мыши и задайте необходимые размеры.
  7.  Измените цвет фона надписи. Для этого выделите надпись, выберите свойство Color (Цвет), щелкните на стрелке, выберите в раскрывшемся списке желтый цвет и щелкните на нем.
  8.  Измените шрифт и цвет текста надписи. Для этого выберите свойство Font (Шрифт) и щелкните на трех точках. В окне Шрифт (Font) измените шрифт на Arial, стиль на Жирный курсив (Bold Italic), а размер — на 20. В раскрывающемся списке Цвет (Color) выберите красный цвет и щелкните на кнопке ОК.
  9.  Добавьте к форме еще одну надпись. На этот раз воспользуйтесь другим методом — щелкните на пиктограмме Label , переместите указатель мыши в произвольное место формы и еще раз щелкните кнопкой мыши. При этом в форме в указанном вами месте должна появиться новая надпись. Можете не отпускать кнопку мыши и задать необходимые размеры.
  10.  Измените свойство Name новой надписи на MySecondLabel, а свойство Caption — на «Моя вторая надпись!».
  11.  Выберите пункты меню View Alignment Palette (Просмотр Палитра способов выравнивания). Выделите в форме надписи, что можно сделать несколькими способами. В окне дерева объектов при нажатой клавише Shift щелкните на тех объектах, которые необходимо выделить, в нашем случае это MyFirstLabel и MySecondLabel. Или обведите их на форме указателем мыши при нажатой клавише. Используйте различные пункты из палитры способов выравнивания и оцените результат.
  12.  Теперь выделите форму. Это можно сделать двумя способами: щелкнуть в любом месте формы за пределами надписей, или щелкнуть на пиктограмме формы на панели View. Если форма видна, то первый способ, конечно, удобнее, однако если в проекте есть много форм, причем нужная форма закрыта другими окнами, то более удобен второй способ.
  13.  Измените свойства формы: свойству Name задайте значение «LabelExample», а свойству Сарtion — значение «Надпись».
  14.  Итак, создано простое приложение. Выполните его. Это можно сделать одним из трех способов: щелкнув на пиктограмме Run (Выполнить)  на панели отладки, выбрав в главном меню команду Run Run или нажав клавишу F9. При этом на экране должна появиться форма, как показано на рис. 1.
  15.  Щелкнув на кнопке закрытия окна в верхнем правом углу, завершите приложение. Это же можно сделать и в среде Delphi. Для этого запустите приложение еще раз, активизируйте любое окно Delphi (однократно щелкнув на нем кнопкой мыши) и выберите Run  Program Reset (Выполнить Переустановка программы), или нажмите клавиши Ctrl+F2.
  16.  Для сохранения разработанного проекта выберите пункты меню File Save all или щелкните на кнопке . В открывшемся диалоговом окне Save Unit1 As выберите (или создайте) папку для сохранения, а в поле Имя файла введите нужное имя. Сохраните проект в папке Мои документы\Отчет ЛЗ-07\Задание 1а\.

Задание № 1b. Создание поля ввода текста

Создайте программу, имеющую интерфейс с полем ввода (рис. 2).

В компоненте TEdit (Поле ввода) (кнопка Edit  в палитре компонентов Standard) хранится текст, который можно помещать в данный компонент как во время разработки, так и во время выполнения. Текст, видимый в поле ввода, находится в свойстве Text. Свойство MaxLength определяет максимальное количество символов в поле ввода. Если значение свойства MaxLength равно 0, то количество символов ничем не ограничено. С помощью свойства Font можно устанавливать шрифт текста. Если свойство Readonly (Только чтение) установить в True, то во время выполнения программы пользователь не сможет изменять текст поля ввода.

Технология работы

  1.  Создайте новый проект типа Application.
  2.  Разместите поле ввода в форме для чего выполните двойной щелчок мышью на кнопка Edit  в палитре компонентов Standard.
  3.  Измените размер поля ввода. Для этого установите указатель мыши на одном из черных квадратиков и, удерживая кнопку мыши нажатой, переместите черный квадратик (а с ним и границу поля ввода) в нужном направлении. Установив необходимый размер, отпустите кнопку мыши.
  4.  Переместите поле ввода в нужное место методом перетаскивания.
  5.  Установите значение свойства Name в MyText. Для этого в инспекторе объектов щелкните на свойстве Name и введите MyText. Как и в случае с надписью, убедитесь, что вы изменяете свойство поля ввода, а не формы. Для этого в заголовке поля выбора в верхней части инспектора объектов должно быть написано Edit1: TEdit.
  6.  Выберите в инспекторе объектов свойство Text и введите его новое значение: «Это поле ввода». Нажав клавишу Enter, зафиксируйте введенный текст. Обратите внимание: во время ввода изменяется текст в поле ввода формы.
  7.  Измените цвет текста в поле ввода на синий. Для этого в инспекторе объектов щелкните на значке (+) рядом со свойством Font. При этом значок (+) изменяется на (-), и появляется список свойств объекта Font. Выберите свойство Color и щелкните на стрелке, расположенной в этом поле. При этом раскрывается список доступных цветов. Найдите в нем синий цвет и щелкните на нем.
  8.  Выделите форму. Измените значение свойства Name формы на «EditBoxExample», а значение свойства Caption — на «Поле ввода».
  9.  Нажав клавишу F9, запустите разработанную программу. При этом на экране появляется изображение, показанное на рис. 2. В отличие от надписи, текст в поле ввода можно изменять, запоминать и извлекать из буфера обмена. Но после установки значения свойства Readonly в True изменять содержимое поля ввода через графический интерфейс пользователя уже будет нельзя. Значение свойства Readonly можно менять из программы, запрещая или разрешая таким образом пользователю вводить данные.
  10.  Завершите приложение и сохраните его в папке Мои документы\Отчет ЛЗ-07\Задание 1b\.

Задание № 1c. Создание области просмотра текста

Создайте программу, имеющую интерфейс с областью просмотра текста (рис. 3).

Компонент TMemo (Область просмотра) (кнопка Memo  в палитре компонентов Standard) предназначен для вывода на экран нескольких строк текста. Свойства MaxLength, Font и Readonly области просмотра аналогичны соответствующим свойствам поля ввода. Свойство Text содержит весь текст области просмотра, однако это свойство доступно только по время выполнения. Свойство Lines содержит отдельные строки текста области просмотра, оно доступно как во время разработки, так и во время выполнения. Свойство WordWarp определяет, будут ли переноситься строки, выходящие за пределы области просмотра, или они останутся невидимыми.

Если вместо русского текста на экране появились произвольные символы, то нужно изменить значение свойства Charset (Набор символов) объекта Font (Шрифт). Для большинства шрифтов подходящими значениями свойства Charset являются DEFAULT_CHARSET или RUSSIAN_CHARSET.

Технология работы

  1.  Создайте новый проект типа Application.
  2.  Разместите область просмотра в форме, выполнив двойной щелчок на кнопке Memo  в палитре компонентов Standard.
  3.  Установите подходящий размер области просмотра и переместите область просмотра в удобное место.
  4.  Измените значение свойства Name области просмотра на «memSample», для чего в инспекторе объектов щелкните на свойстве Name и введите «memSample». Убедитесь, что вы изменили свойство области просмотра, а не формы. В поле выбора в верхней части инспектора объектов должно быть написано Memo1: TMemo (после изменения имени там будет memSample: TMemo).
  5.  Выберите свойство Lines и щелкните на кнопке с тремя точками. При этом появляется окно редактора строк String List Editor. Введите текст, показанный на рис. 4. Закончив ввод текста, щелкните на кнопке ОК.
  6.  Выделите форму. Для этого щелкните на ней левой кнопкой мыши, или щелкните на имени формы в раскрывающемся списке инспектора объектов. Измените значение свойства Name на «MemoBoxExample», а свойства Caption — на «Область просмотра».
  7.  В инспекторе объектов измените значение свойства WordWarp области просмотра memSample на False, а значение свойства ScrollBars — на ssBoth (это свойство определяет наличие или отсутствие полос прокрутки).
  8.  Запустите программу на выполнение. На экране должно появиться изображение, показанное на рис. 3. Попробуйте вводить тексты различной длины. Попробуйте режимы выделения текста, сохранения и извлечения из буфера обмена.
  9.  Завершите работу программы и сохраните проект в папке Мои документы\Отчет ЛЗ-07\Задание 1c\.
  10.  Для лучшего понимания работы области просмотра поэкспериментируйте с различными установками свойств WordWarp и ScrollBars.

Задание № 1d. Создание кнопки

Создайте программу, имеющую интерфейс с кнопкой (рис. 5).

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

Кнопкам можно присваивать комбинации быстрых клавиш. Во время выполнения нажатие такой комбинации клавиш эквивалентно щелчку мыши на кнопке.

Технология работы

  1.  Создайте новый проект типа Application
  2.  В инспекторе объектов измените значение свойства формы Name на ButtonExample, а свойства Caption — на «Кнопка».
  3.  Поместите кнопку в форму, выполнив двойной щелчок на пиктограмме Button  в палитре компонентов Standard.
  4.  Измените значение свойства Name кнопки на MyButton, а значение свойства Caption кнопки на "&Щелкать здесь". Обратите внимание: в надписи на кнопке буква, перед которой стоит символ "&", будет подчеркнутой. В данном случае это буква Щ. Это означает, что теперь кнопке присвоена комбинация клавиш быстрого вызова Щ.
  5.  Нажав клавишу F9, запустите программу. При этом на экране появляется изображение, показанное на рис. 5.
  6.  Щелкните на кнопке. При этом кнопка принимает такой вид, будто она нажата. Пока еще с кнопкой не связан какой-либо код, поэтому никакой реакции на нажатие кнопки не происходит.
  7.  Завершите работу программы и сохраните проект в папке Мои документы\Отчет ЛЗ-07\Задание 1d\.

Что делать, если в названии кнопки должен отображаться символ «&»? Ведь если поместить его в название, то он сделает следующую букву подчеркнутой, а сам виден не будет. Чтобы решить эту проблему, используется следующее правило: символ «&» отображается в названии кнопки, если в свойстве Caption записаны два стоящих подряд символа — «&&». Например, чтобы название кнопки имело вид This & That, в свойство Caption необходимо записать This && That. При этом никакая комбинация клавиш быстрого вызова кнопке не присваивается.

Задание № 2. Создание простого приложения в Delphi

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

Технология работы

  1.  Создайте проект типа Application.
  2.  Разместите на нем две кнопки и надпись. Используя палитру способов выравнивания, или вручную постарайтесь расположить их симметрично, выбрав подходящие размеры.
  3.  Назовите первую кнопку «Вывести надпись», а вторую — «Очистка» (это свойство Caption).

  1.  Для надписи выберите: тип шрифта - Arial, начертание – Жирный курсив, размер шрифта – 16 пунктов, цвет - Красный (выше говорилось, как это сделать). Выберите для надписи желтый фон.
  2.  Для создания обработчика события нажатия кнопки необходимо в инспекторе объектов выбрать вкладку Events (События), затем выбрать событие OnClick (Щелчок). Разумеется, инспектор объектов должен отображать настройки нужного объекта. В нашем случае это будет кнопка Buttonl с названием «Вывести надпись».
  3.  Дважды щелкните мышью на появившемся справа от события OnClick белом поле, и Delphi моментально перенесет вас в редактор кода, где сделает заготовку для обработчика события и установит курсор на том месте, где нужно ввести необходимый код:

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

  1.  Между ключевыми словами begin и end вручную введите следующий код:

Labell.Caption:='Моя первая программа';

  1.  Проделайте то же самое со второй кнопкой, для которой введите такой код:

Labell.Caption:='';

  1.  Запустите программу и пощелкайте на кнопках.
  2.  Завершите работу программы и сохраните проект в папке Мои документы\Отчет ЛЗ-07\Задание 2\.

Полностью листинг программы имеет вид:

unit Unit1;

interface

uses

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

 Dialogs, StdCtrls;

type

 TPrimer1 = class(TForm)

   Label1: TLabel;

   Button1: TButton;

   Button2: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Primer1: TPrimer1;

implementation

{$R *.dfm}

procedure TPrimer1.Button1Click(Sender: TObject);

begin

 Label1.Caption:='Моя первая программа!';

end;

procedure TPrimer1.Button2Click(Sender: TObject);

begin

 Label1.Caption:='';

end;

end.

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

Задание № 3. Создание программы без написания кода

Создайте программу Календарь с интерфейсом, приведенном на рис. 7.

Рассмотрим пример создания простейшей программы без написания кода.

Технология работы

  1.  Создайте проект типа Application.
  2.  Разместите на нем надпись «Календарь» и компонент DateTimePicker (Календарь) , который находится на вкладке Win32 палитры компонент.
  3.  Разместите календарь в углу формы и установите подходящие размеры формы.
  4.  Запустите программу и попробуйте работу компонента DateTimePicker. Завершите работу программы, сохраните ее в папке Мои документы\Отчет ЛЗ-07\Задание 3\ и можете ею пользоваться.
  5.  Самостоятельно изучите листинг программы в окне Редактора Кода.

2. Программирование калькулятора

Задание № 4. Разработка простого калькулятора

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

Форма будет содержать одно текстовое поле и 16 кнопок (рис. 8).

Технология работы

1. Разработка формы:

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

Свойство

Значение

Пояснение

Caption

Калькулятор

Заголовок формы

BorderStyle

bsDialog

Граница формы не позволяет изменять ее размеры - как у диалоговых окон

Heigth

178

Высота формы

Width

173

Ширина формы

  •  Разместите на форме компонент текстового поля Edit  с вкладки Standard и присвойте свойствам компонента Edit1 следующие значения:

Свойство

Значение

Пояснение

Text

Очищаем содержимое текстового поля

Left

4

Отступ слева

Top

4

Отступ сверху

Width

157

Ширина поля

  •  Разместите на форме компонент кнопки BitBtn  с вкладки Additional и присвойте свойствам компонента BitBtn1 следующие значения:

Свойство

Значение

Пояснение

Caption

7

Надпись на кнопке

Left

4

Отступ слева

Top

32

Отступ сверху

Width

33

Ширина кнопки

Font.Size

10

Делаем шрифт надписи крупнее

Font.Color

clBlue

Выделяем надпись синим цветом

Font.Style.fsBold

True

Выделяем надпись полужирным начертанием

Эта кнопка, соответствующая цифре 7.

  •  Разместите на форме остальные цифровые кнопки, соответствующие десятичным цифрам калькулятора. Для этого можно выделить уже созданную кнопку 7, скопировать ее в буфер обмена (нажав комбинацию клавиш CTRL+C или выполнив команды меню Правка (Edit)  Копировать (Copy)), а затем вставить из буфера обмена требуемое количество раз, нажав комбинацию клавиш CTRL+V или выполнив команды меню Правка (Edit)  Вставить (Paste).
  •  Присвойте размещенным кнопкам следующие свойства:

Caption

8

9

4

5

6

1

2

3

0

Left

40

76

4

40

76

4

40

76

4

Top

32

32

60

60

60

88

88

88

116

  •  Разместите на форме кнопки, соответствующие сбросу (СЕ) и значению равно (=). Измените их следующие свойства:

Кнопка сброса

Кнопка равно

Пояснение

Caption

CE

=

Надпись на кнопке

Left

40

76

Отступ слева

Top

116

116

Отступ сверху

Font.Color

clRed

clRed

Выделяем надпись красным цветом

  •  Разместите на форме 4 кнопки BitBtn (), соответствующие арифметическим действиям, и измените их следующие свойства:

Кнопка сложения

Кнопка вычитания

Кнопка деления

Кнопка умножения

Пояснение

Caption

+

--

/

*

Надпись на кнопке

Width

37

37

37

37

Ширина кнопки

Left

124

124

124

124

Отступ слева

Top

32

60

88

116

Отступ сверху

Font.Color

clGreen

clGreen

clGreen

clGreen

Выделяем надпись зеленым цветом

2. Разработка программного кода:

  •  Перейдите в окно программного кода и объявите в разделе Var все переменные, которые будут использоваться:

...

var

 Form1: TForm1;

...

 num1, num2: integer; //Для хранения первого и второго числа

 doit: string;        //Действие, выполняемое с числами

Полужирным цветом выделяется то, что вы должны ввести в программу!!!

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

Для кнопки 0:

procedure TForm1.BitBtn10Click(Sender: TObject);

begin

 Edit1.Text:=Edit1.Text+'0';

end;

Для кнопки 1:

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

 Edit1.Text:=Edit1.Text+'1';

end;

И так далее для остальных цифровых кнопок.

  •  При щелчке на кнопке СЕ должен происходить сброс содержимого текстового поля. Выполните двойной щелчок мышью на кнопке СЕ и внесите необходимые операторы в процедуру обработки события OnClick:

procedure TForm1.BitBtn11Click(Sender: TObject);

begin

 Edit1.Clear;

 num1:=0;

 num2:=0;

 doit:='';

end;

Здесь очищается текстовое поле (метод Clear) и обнуляются все переменные.

  •  Создайте обработчик события OnClick нажатия кнопок арифметических действий.

Для кнопки сложения:

procedure TForm1.BitBtn13Click(Sender: TObject);

begin

 num1:=StrToInt(Edit1.Text);

 doit:='плюс';

 Edit1.Clear;

end;

Для кнопки вычитания:

procedure TForm1.BitBtn14Click(Sender: TObject);

begin

 num1:=StrToInt(Edit1.Text);

 doit:='минус';

 Edit1.Clear;

end;

Для кнопки умножения:

procedure TForm1.BitBtn16Click(Sender: TObject);

begin

 num1:=StrToInt(Edit1.Text);

 doit:='умножить';

 Edit1.Clear;

end;

Для кнопки деления:

procedure TForm1.BitBtn15Click(Sender: TObject);

begin

 num1:=StrToInt(Edit1.Text);

 doit:='разделить';

 Edit1.Clear;

end;

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

  •  Создайте обработчик события OnClick нажатия кнопки равно, выводящей результат:

procedure TForm1.BitBtn12Click(Sender: TObject);

begin

 num2:=StrToInt(Edit1.Text);

 if doit='плюс' then Edit1.Text:=IntToStr(num1+num2);

 if doit='минус' then Edit1.Text:=IntToStr(num1-num2);

 if doit='умножить' then Edit1.Text:=IntToStr(num1*num2);

 if doit='разделить' then

   if num2=0 then Edit1.Text:='Делить на 0 нельзя!!!'

             else Edit1.Text:=IntToStr(num1 div num2);

 num1:=0;

 num2:=0;

 doit:='';

end;

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

3. Компиляция и запуск программы:

  •  Щелкните на кнопке Run () или нажмите клавишу F9. Запустится программа калькулятора.
  •  Введите два произвольных целых числа и проверьте правильность выполнения всех арифметических действий.
  •  Программа калькулятора в действии показана на рис. 9. При попытке деления на 0 в текстовом поле появляется сообщение Делить на 0 нельзя!!!
  •  Завершите работу программы, сохраните ее в папке Мои документы\Отчет ЛЗ-07\Задание 4\.
  •  Самостоятельно преобразуйте данный калькулятор, работающий с целыми числами, в калькулятор, работающий с вещественными числами. Добавьте в форму еще одну кнопку, позволяющую вычислить квадратный корень из введенного числа. Сохраните проект в папке Мои документы\Отчет ЛЗ-07\Задание 4-Сам\

3. Создание генератора надежных паролей

Существует множество программ, способных методом перебора несложных, часто используемых паролей и ключей шифрования «взломать» практически все, что этими паролями или ключами защищается. Больших знаний для такого метода кражи паролей и ключей не требуется – достаточно в Интернете найти программу для перебора и словарь с паролями размером с десяток мегабайт. В этом случае перед защищающейся стороной возникает вопрос: «А как удостовериться, что в этом словаре нет моего пароля?».

Задание № 5. Разработка генератора надежных паролей

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

Технология работы

1. Разработка формы:

  •  Запустите программу Delphi и создайте новый проект Application.
  •  Присвойте свойству Caption формы значение Генератор паролей, свойству Height – значение 218, а свойству Width – значение 315.
  •  Разместите на форме следующие компоненты с вкладки Standard:
    •  Label ;
    •  четыре компонента CheckBox ;
    •  два компонента Edit ;
    •  три компонента Button .
  •  С вкладки Samples разместите на форме компонент SpinEdit , который используется для ввода чисел вручную или с помощью кнопок увеличения-уменьшения.
  •  Присвойте свойства компонентам значения согласно следующей таблицы:

Компонент

Свойство

Значение

Пояснение

Label1

Caption

Количество символов

Надпись

Left

8

Отступ слева

Top

16

Отступ сверху

CheckBox1

Caption

Строчные буквы

Надпись для флажка

Checked

True

Установлен флажок

Name

small

Флажок, указывающий на наличие в пароле строчных букв

Left

8

Отступ слева

Top

40

Отступ сверху

Width

117

Ширина

CheckBox2

Caption

Заглавные буквы

Надпись для флажка

Checked

True

Установлен флажок

Name

big

Флажок, указывающий на наличие в пароле заглавных букв

Left

8

Отступ слева

Top

60

Отступ сверху

Width

117

Ширина

CheckBox3

Caption

Цифры

Надпись для флажка

Checked

True

Установлен флажок

Name

num

Флажок, указывающий на наличие в пароле цифр

Left

8

Отступ слева

Top

80

Отступ сверху

Width

117

Ширина

CheckBox4

Caption

Специальные символы

Надпись для флажка

Checked

True

Установлен флажок

Name

special

Флажок, указывающий на наличие в пароле специальных символов

Left

8

Отступ слева

Top

100

Отступ сверху

Width

145

Ширина

Edit1

Name

chars

Новое имя компонента

Left

152

Отступ слева

Top

96

Отступ сверху

Text

:-)(+!<|>/?\&$[*]@%;`.,”~_

Текст в поле

Width

148

Ширина

Edit2

Name

pass

Новое имя компонента. Предназначен для отображения пароля

Left

8

Отступ слева

Top

128

Отступ сверху

Text

Пустое поле

Width

292

Ширина

Button1

.

Caption

Создать

Предназначена для начала процесса генерирования пароля

Left

8

Отступ слева

Top

152

Отступ сверху

Width

97

Ширина

Button2

.

Caption

Копировать

Предназначена для копирования пароля в буфер обмена

Left

105

Отступ слева

Top

152

Отступ сверху

Width

97

Ширина

Button3

.

Caption

Очистить

Предназначена для очистки буфера обмена и поля с паролем

Left

202

Отступ слева

Top

152

Отступ сверху

Width

97

Ширина

SpinEdit1

MinValue

1

Минимальное допустимое значение длины пароля

MaxValue

20

Максимальное допустимое значение длины пароля

Name

colvo

Новое имя компонента

Left

136

Отступ слева

Top

8

Отступ сверху

Width

40

Ширина

  •  Готовая форма программы должна иметь вид, приведенный на рис. 9.

2. Разработка программного кода:

  •  Перейдите в окно программного кода и объявите все переменные, которые будут использоваться:

var

 Form1: TForm1;

 s: array[1..100] of string; //Каждый элемент этого массива

                             //содержит 1 символ пароля

 a,i,x: integer;

Полужирным цветом выделяется то, что вы должны ввести в программу!!!

  •  Создайте обработчик события OnClick кнопки Создать. Для этого в форме выполните двойной щелчок мышью на кнопке Создать. В окне кода появится заготовка процедуры обработки события OnClick, в которой объявите метку ran и введите следующий код:

procedure TForm1.Button1Click(Sender: TObject);

 label ran;

begin

 Randomize;

 pass.Text:='';

 for i:=1 to colvo.Value do

 begin

   ran:

   a:=random(3);

   case a of

     0: if num.Checked then s[i]:=IntToStr(random(10))

                       else goto ran;

     1: if big.Checked or small.Checked

                       then

                         begin

                           x:=random(26)+65;

                           s[i]:=chr(x);

                           if small.Checked and (big.Checked=false)

                             then s[i]:=AnsiLowerCase(s[i]);

                           if small.Checked and big.Checked

                             then

                               begin

                                 a:=random(2);

                                 if a=1 then s[i]:=AnsiLowerCase(s[i]);

                               end;

                         end

                       else goto ran;

     2:if special.Checked then

                            begin

                              a:=random(length(chars.Text))+1;

                              s[i]:=chars.Text[a];

                            end

                          else goto ran;

   end;

   pass.Text:=pass.Text+s[i];

 end;

end;

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

  •  Для работы с буфером обмена добавьте в раздел uses ссылку на модуль Clipbrd:

unit Unit1;

interface

uses

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

 Dialogs, Spin, StdCtrls, Clipbrd;

  •  Создайте обработчик события OnClick кнопки Копировать. Для этого в форме выполните двойной щелчок мышью на кнопке Копировать. В окне кода появится заготовка процедуры обработки события OnClick, в которой введите следующий код:

procedure TForm1.Button2Click(Sender: TObject);

begin

 ClipBoard.Open;

 ClipBoard.AsText:=pass.Text;

 ClipBoard.Close

end;

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

procedure TForm1.Button3Click(Sender: TObject);

begin

 pass.Clear;

 ClipBoard.Open;

 ClipBoard.Clear;

 ClipBoard.Close;

end;

3. Компиляция и запуск программы:

  •  Щелкните на кнопке Run () или нажмите клавишу F9. Запустится программа генерирования паролей. Программа генерирования паролей в действии показана на рис. 10.
  •  Выберите количество символов в пароле. Поэкспериментируйте с разными флажками и проверьте работу всех кнопок.
  •  Завершите работу программы, сохраните ее в папке Мои документы\Отчет ЛЗ-07\Задание 5\.

Выводы

  1.  Создание простейших приложений в Delphi связано с размещением на форме таких компонент как Label, Edit, Memo, Button и др. и изменением их свойств с помощью Инспектора Объектов.
  2.  Для определения каких-либо действий с компонентами, например, щелчок мышью на кнопке, требуется на вкладке События Инспектора Объектов активизировать нужное событие и в заготовку процедуры, отображаемой в Редакторе Кода, ввести необходимые команды.
  3.  Delphi позволяет создавать простые программы, ничего при этом не программируя. Для этого используются уже готовые компоненты, например, Календарь.
  4.  Программирование более сложных приложений связано с необходимостью установления определенных связей между компонентами, располагаемыми на форме.

Контрольные вопросы

  1.  Какими способами можно установить компонент на форму?
  2.  Как назначаются свойства установленным на форме компонентам?
  3.  Перечислите основные свойства компонентов Label и Button.
  4.  Какими способами можно выполнить программу?
  5.  Какие функции используются для преобразования целых (вещественных) чисел в строку и наоборот?
  6.  Какую функцию выполняют компоненты CheckBox в программе генерирования надежных паролей?

PAGE  14


 

А также другие работы, которые могут Вас заинтересовать

72331. Организация работы комиссии на ЧС объектах 53.17 KB
  Главной задачей военной службы является постоянная целенаправленная подготовка к вооруженной защите или вооруженная защита территории РФ. Одной из особенностей военной службы является обязательное принятие каждым гражданином военной присяги.
72332. Оказание первой доврачебной помощи 27.68 KB
  При наложении закрутки жгута необходимо соблюдать следующие правила: 1 конечности придать возвышенное положение; 2 накладывать жгут выше раны и как можно ближе к ней; 3 жгут накладывается на одежду или какую-нибудь прокладку платок косынку полотенце; 4 с помощью одного-двух туров...
72333. Наркомания и токсикомания 13 KB
  Наркомания –- заболевание возникшее в результате злоупотребления наркотиками и наркотически действующими веществами. Наркомания проявляется постоянной потребностью в приеме наркотических веществ так как психическое и физическое состояние человека зависит от того принял он необходимый ему препарат или нет.
72334. Наиболее распространенные инфекционные болезни, причины их возникновения 14.9 KB
  Инфекционные болезни могут возникать при наличии трех компонентов: болезнетворного микроорганизма возбудителя восприимчивого макроорганизма человека факторов обеспечивающих передачу инфекции от зараженного организма к здоровому.
72335. Меры предупреждения производственного травматизма 14.97 KB
  Из причин производственного травматизма наиболее часто встречаются нарушения правил техники безопасности. Поэтому основными методами профилактики и снижения производственного травматизма являются организация безопасных методов труда широкая санитарно-просветительная работа строгий контроль...
72336. Курение и его влияние на здоровье человека 13.39 KB
  Одна из самых опасных болезней химической зависимости относимая к вредным привычкам – табакокурение. Курение особо опасно в определенные возрастные периоды –- юность старческий возраст. Курение в интенсивном режиме вызывает переутомление и явления острого отравления: головную боль бледность...
72337. Криминогенная опасность 30.55 KB
  Очевидно что несмотря на несовпадение угла зрения той или иной науки на преступника должен быть общий методологический подход к решению проблемы о сущности и понятии его личности. Традиционно в структуре личности выделяют следующие элементы: 1 социальный статус включающий в себя...
72338. Классификация вредных веществ по степени воздействия на организм человека 15.18 KB
  Эффект токсического воздействия зависит от количества попавшего в организм АХОВ аварийные химически опасные вещества их физико-химических свойств длительности и интенсивности поступления взаимодействия с биологическими средами кровью ферментами.
72339. Защита от вредных веществ и обеспечение параметров микроклимата 79.25 KB
  По мере увеличения величины тока организм человека отвечает соответствующими реакциями. Можно выделить 3 основные реакции: Ощущение тока. В электроустановках за смертельный порог берется значения фибрилляционного тока.