4618
Создание приложений в визуальной интегрированной среде разработки Delphi
Контрольная
Информатика, кибернетика и программирование
Цель работы: привитие практических навыков написания приложений в визуальной интегрированной среде разработки Delphi. Содержание работы: Создание простейших приложений. Программирование калькулятора. Создание генератора надежных парол...
Русский
2012-11-23
314 KB
25 чел.
Цель работы:
Содержание работы:
1. Создание простейших приложений.
2. Программирование калькулятора.
3. Создание генератора надежных паролей.
Требования к отчету:
Отчет по работе должен содержать:
Создайте программу, имеющую интерфейс с двумя надписями (рис. 1).
Для отображения текста на форме используется компонент TLabel (Надпись) (кнопка Label в палитре компонентов Standard).
Создайте программу, имеющую интерфейс с полем ввода (рис. 2).
В компоненте TEdit (Поле ввода) (кнопка Edit в палитре компонентов Standard) хранится текст, который можно помещать в данный компонент как во время разработки, так и во время выполнения. Текст, видимый в поле ввода, находится в свойстве Text. Свойство MaxLength определяет максимальное количество символов в поле ввода. Если значение свойства MaxLength равно 0, то количество символов ничем не ограничено. С помощью свойства Font можно устанавливать шрифт текста. Если свойство Readonly (Только чтение) установить в True, то во время выполнения программы пользователь не сможет изменять текст поля ввода.
Создайте программу, имеющую интерфейс с областью просмотра текста (рис. 3).
Компонент TMemo (Область просмотра) (кнопка Memo в палитре компонентов Standard) предназначен для вывода на экран нескольких строк текста. Свойства MaxLength, Font и Readonly области просмотра аналогичны соответствующим свойствам поля ввода. Свойство Text содержит весь текст области просмотра, однако это свойство доступно только по время выполнения. Свойство Lines содержит отдельные строки текста области просмотра, оно доступно как во время разработки, так и во время выполнения. Свойство WordWarp определяет, будут ли переноситься строки, выходящие за пределы области просмотра, или они останутся невидимыми.
Если вместо русского текста на экране появились произвольные символы, то нужно изменить значение свойства Charset (Набор символов) объекта Font (Шрифт). Для большинства шрифтов подходящими значениями свойства Charset являются DEFAULT_CHARSET или RUSSIAN_CHARSET.
Создайте программу, имеющую интерфейс с кнопкой (рис. 5).
С помощью компонента TButton (Кнопка) (кнопка Button в палитре компонентов Standard) пользователь инициирует выполнение какого-либо фрагмента кода или целой программы. Другими словами, если щелкнуть на элементе управления TButton, то программа выполняет определенное действие. При этом кнопка принимает такой вид, будто она нажата.
Кнопкам можно присваивать комбинации быстрых клавиш. Во время выполнения нажатие такой комбинации клавиш эквивалентно щелчку мыши на кнопке.
Что делать, если в названии кнопки должен отображаться символ «&»? Ведь если поместить его в название, то он сделает следующую букву подчеркнутой, а сам виден не будет. Чтобы решить эту проблему, используется следующее правило: символ «&» отображается в названии кнопки, если в свойстве Caption записаны два стоящих подряд символа «&&». Например, чтобы название кнопки имело вид This & That, в свойство Caption необходимо записать This && That. При этом никакая комбинация клавиш быстрого вызова кнопке не присваивается.
Создайте программу, имеющую интерфейс с двумя кнопками и надписью, которую можно как выводить на экран, так и убирать с экрана (рис. 6).
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Labell.Caption:='Моя первая программа';
Labell.Caption:='';
Полностью листинг программы имеет вид:
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.
Посмотрев на него, вы увидите имена созданных вами объектов и выводимых надписей.
Создайте программу Календарь с интерфейсом, приведенном на рис. 7.
Рассмотрим пример создания простейшей программы без написания кода.
Разработайте программу, имитирующую работу калькулятора, работающего с целыми числами и выполняющего четыре действия: сложение, вычитание, умножение и целочисленное деление.
Форма будет содержать одно текстовое поле и 16 кнопок (рис. 8).
1. Разработка формы:
Свойство |
Значение |
Пояснение |
Caption |
Калькулятор |
Заголовок формы |
BorderStyle |
bsDialog |
Граница формы не позволяет изменять ее размеры - как у диалоговых окон |
Heigth |
178 |
Высота формы |
Width |
173 |
Ширина формы |
Свойство |
Значение |
Пояснение |
Text |
Очищаем содержимое текстового поля |
|
Left |
4 |
Отступ слева |
Top |
4 |
Отступ сверху |
Width |
157 |
Ширина поля |
Свойство |
Значение |
Пояснение |
Caption |
7 |
Надпись на кнопке |
Left |
4 |
Отступ слева |
Top |
32 |
Отступ сверху |
Width |
33 |
Ширина кнопки |
Font.Size |
10 |
Делаем шрифт надписи крупнее |
Font.Color |
clBlue |
Выделяем надпись синим цветом |
Font.Style.fsBold |
True |
Выделяем надпись полужирным начертанием |
Эта кнопка, соответствующая цифре 7.
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 |
Выделяем надпись красным цветом |
Кнопка сложения |
Кнопка вычитания |
Кнопка деления |
Кнопка умножения |
Пояснение |
|
Caption |
+ |
-- |
/ |
* |
Надпись на кнопке |
Width |
37 |
37 |
37 |
37 |
Ширина кнопки |
Left |
124 |
124 |
124 |
124 |
Отступ слева |
Top |
32 |
60 |
88 |
116 |
Отступ сверху |
Font.Color |
clGreen |
clGreen |
clGreen |
clGreen |
Выделяем надпись зеленым цветом |
2. Разработка программного кода:
...
var
Form1: TForm1;
...
num1, num2: integer; //Для хранения первого и второго числа
doit: string; //Действие, выполняемое с числами
Полужирным цветом выделяется то, что вы должны ввести в программу!!!
Для кнопки 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;
И так далее для остальных цифровых кнопок.
procedure TForm1.BitBtn11Click(Sender: TObject);
begin
Edit1.Clear;
num1:=0;
num2:=0;
doit:='';
end;
Здесь очищается текстовое поле (метод Clear) и обнуляются все переменные.
Для кнопки сложения:
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), чтобы можно было ввести второе число.
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. Компиляция и запуск программы:
Существует множество программ, способных методом перебора несложных, часто используемых паролей и ключей шифрования «взломать» практически все, что этими паролями или ключами защищается. Больших знаний для такого метода кражи паролей и ключей не требуется достаточно в Интернете найти программу для перебора и словарь с паролями размером с десяток мегабайт. В этом случае перед защищающейся стороной возникает вопрос: «А как удостовериться, что в этом словаре нет моего пароля?».
Разработайте программу, генерирующую надежные пароли, включающие буквы, цифры и специальные символы.
1. Разработка формы:
Компонент |
Свойство |
Значение |
Пояснение |
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 |
Ширина |
2. Разработка программного кода:
var
Form1: TForm1;
s: array[1..100] of string; //Каждый элемент этого массива
//содержит 1 символ пароля
a,i,x: integer;
Полужирным цветом выделяется то, что вы должны ввести в программу!!!
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, и поэтому каждый следующий пароль абсолютно не похож на предыдущий. После того, как символ сгенерирован, проверяем, разрешен ли он для использования в пароле. Если его использование разрешено, то добавляем этот символ в пароль, в противном случае генерируем новый символ.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Spin, StdCtrls, Clipbrd;
procedure TForm1.Button2Click(Sender: TObject);
begin
ClipBoard.Open;
ClipBoard.AsText:=pass.Text;
ClipBoard.Close
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
pass.Clear;
ClipBoard.Open;
ClipBoard.Clear;
ClipBoard.Close;
end;
3. Компиляция и запуск программы:
PAGE 14
А также другие работы, которые могут Вас заинтересовать | |||
79582. | Эмпирическое исследование особенности развития мыслительных процессов детей младшего школьного возраста с задержкой психического развития | 2.43 MB | |
Целью эмпирического исследования в данной выпускной квалификационной работе является анализ особенностей мышления у детей с задержкой психического развития младшего школьного возраста, и разработать рекомендации для общеобразовательных учреждений о коррекционной работе с детьми с задержкой психического развития. | |||
79583. | Розробка ЛОМ для Пологівської філії «Укртелеком» | 1.6 MB | |
Задачею дипломного проекту є розробка локально-обчислюваної мережі для будинку цеху ТП №13 міста Пологи Запорізької філії ВАТ «Укртелеком». Організаційно-штатна структура підприємства наведена в рисунку 1.1. Локально-обчислювана мережа розробляється на вже існуючих комп’ютерах. | |||
79584. | Управление оборотными активами компании на примере ОАО «Кулебакского завода металлических конструкций» | 248.26 KB | |
Целью работы является: оценка и анализ управления оборотными активами предприятия. Результаты анализа дают ответ на вопрос, каковы важнейшие способы улучшения управления оборотными активами предприятия в конкретный период его деятельности. | |||
79586. | Представления студенческой молодежи о брачном партнере (социологический анализ на примере студентов вузов г. Москвы) | 3.64 MB | |
Среди множества негативных аспектов кризиса брачно-семейных отношений исследователи отмечают: процессы обнищания семьи на духовном уровне, падение качества семейного воспитания; увеличение численности неполных семей, одиноких мужчин и женщин, нивелирование ценности самого института семьи и тому подобное. | |||
79588. | Значимые аспекты журналистского расследования | 369 KB | |
Актуальность темы. Сам жанр журналистского расследования предполагает всестороннее и подробное исследование некой мало изученной, закрытой или тщательно скрываемой темы, в процессе работы над которой приходится преодолевать нежелание определенных структур предоставить интересующую вас информацию. | |||
79589. | Автоматизированная система управления, действующая на ЕвразЗСМК | 1.91 MB | |
До настоящего времени пользователи системы главным образом работали через терминалы поэтому приходилось писать программное обеспечение под нужды каждого пользователя. В настоящее время данное подразделение ДИТ занимается проблемами реинжиниринга системы управления на комбинате. | |||
79590. | Аналіз стану і розвитку фондового ринку в Україні в умовах становлення ринкових відносин | 1.86 MB | |
Теоретико-методологічною основою дипломної роботи є використання сучасних досягнень вітчизняних і зарубіжних вчених в економічній науці стосовно проблем функціонування фондового ринку. Статистичну базу дослідження становлять дані Державної комісії з цінних папрів та фондового ринку, Держкомстату та економічних і політичних періодичних видань. | |||