Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНые РАБОТАы с 9.doc
Скачиваний:
29
Добавлен:
10.05.2015
Размер:
545.28 Кб
Скачать

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

  1. Из каких 2 –х частей может состоять структура данных – запись?

  2. Как называются элементы структуры запись?

  3. Какое количество памяти выделяется переменной типа запись, и как размещаются данные в этой переменной?

  4. Как обратиться к элементу записи: - простой структуры; - типа массив?

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

  6. Приведите пример записного типа с вариантной частью.

  7. Что такое «уточненное имя»?

  8. Как рассчитать количество памяти, выделяемой под переменную – запись?

  9. Определите имя элемента в структуре структуры mass:

Type

data=record

Day:1..31; Momth:1..12;Years:word;

End;

Tar=array [byte] of data;

Var mass:Tar;

  1. Для чего используется оператор with? Продемонстрируйте его использование при организации ввода данных для примера п.4.

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

Лабораторная работа 10 Разработка приложений под Windows средст вами Delphi Создание оконного приложения

Создание оконного приложения выполните согласно предложенного сценария и выполните требования.

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

  2. Разработать приложение под Windows на основе варианта лабораторной работы 9. В приложении использовать модули Unit_def, Unit_operation, разработанные в лабораторной работе 9.

Задание 1. Создание оконного приложения.

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

  1. Создайте модуль Unit и включите в него определение типа записи. Сохраните модуль в папке данной лаб.работы с именем TypeRecord.

type

TAdress= record

city:string[80];

street:string[80];

end;

Trec=record

FIO:string[40];

Adress:TAdress;

Childs:byte;

end;

  1. Создайте проект под Windows, выполнив команду FileNewApplication, и подключите к нему ваш модуль.

  2. Создайте проект формы, обеспечивающей ввод данных в поля записи, отображение записи, очистку полей записи, закрытие формы. Для ввода данных используйте компонент VCL Edit, ComboBox, ListBox, для отображения записей компонент Memo, для очистки полей Edit, ComboBox, ListBox используйте их метод Clear. Для выполнения пользователем операций: ввод данных в переменную типа запись, вывод значения переменной, очистку полей, закрытие формы, включите в проект четыре кнопки типа Button. Для подписей назначения элемента управления, представленного в форме используйте компонент Label. Пример проекта приведен на рис 9.

  3. Реализация проекта формы.

  • Объявите переменные r – для записи и i для номера вводимой записи, видимые во всех подпрограммах модуля, в интерфейсной части модуля формы.

  • Измените свойство Caption всех меток на их содержание, используя, инспектор объектов для каждой метки. Установите свойство WordWrap для Label3 равным true.

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

Рис.9. Проект формы приложения

  • Сделайте элементы Edit, ComboBox, ListBox одного размера и расположите их на одинаковом расстоянии, для этого выделите все поля и вызовите контекстное меню, щелкнув на выделенных объектах правой клавишей мыши. Раскройте меню команды Position и выполните указанные действия.

  • Введите подписи названий полей записи в первую строку Memo поля. Для этого откройте свойство lines и в окне редактора строк очистите первую строку и введите текст согласно образцу на рис.9.

  • Заполните источник данных (свойство Items) элемента ComboBox. Для этого щелкните по кнопке свойства Items элемента ComboBox, введите названия городов в открывшемся окне редактора строк. Закройте окно редактора, щелкнув по кнопке ОК.

  • Заполните источник данных (свойство Items) элемента ListBox. Для этого щелкните по кнопке свойства Items элемента ListBox, введите названия улиц в открывшемся окне редактора строк. Закройте окно редактора.

  • Измените свойство Caption формы согласно образцу на рис.10.

5. Реализация обработчиков событий кнопок OnClick.

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

procedure TForm1.Button4Click(Sender: TObject);

begin

Close

end;

  • Разработайте обработчик события OnClick для кнопки, Ввод записи и в тело процедуры добавьте операторы, которые заполняют переменную r типа запись. успешного формирования записи активизируйте кнопку Button1, оператором Button1.Enabled:=true; который сделает кнопку доступной.

Рис.10. Реализованный проект формы

procedure TForm1.Button1Click(Sender: TObject);

var

i:integer;

begin

r.FIO:=edit1.Text;

r.Adress.city:=ComboBox.Text;

i:= listBox.ItemIndex;

r.Adress.street:=listBox.Items[i];

r.Childs:=strtoint( edit3.Text);

end;

  • Разработайте обработчик события OnClick для кнопки, Очистить поля и в тело процедуры добавьте операторы вызова метода Clear для каждого поля. Последним оператором будет оператор, устанавливающий фокус на первое поле ввода – Edit1.SetFocus – это метод объекта, обеспечивающий перемещение (фокуса) курсора в указанный элемент управления.

procedure TForm1.Button2Click(Sender: TObject);

begin

edit1.Clear;

ComboBox.text:=’’;

edit3.Clear;

edit1.Setfocus;;

end;

  • Разработайте обработчик события OnClick для кнопки Отобразить запись и в тело процедуры вставьте операторы, которые заполняют свойство lines каждой строки компонента Memo. Объект Memo1.lines[0] – это строка – заголовок объекта Memo1. Данные выводятся в Мемо, начина со строки с номером один.

procedure TForm1.Button3Click(Sender: TObject);

var

s:string;

begin

s:=r.FIO+' ‘+r.Adress.city+' '+ r.Adress.city+’ ‘+ inttostr(r.Childs);

Memo1.Lines.Add(s);

end;

  1. Сохраните проект по команде FileSave All в папке проекта.

  2. Выполните отладку и тестирование проекта сначала на одной записи, затем на нескольких.

  3. Внесите изменения в проект, включив в него обработчик, который обеспечит контроль ввода только числовых значений в поле Количество детей. Т.е. в это поле должно вводиться значение, состоящее только из цифр. Для этого поля разработайте обработчик события OnChange. При успешном вводе данных для всех полей этот обработчик должен активизировать кнопку Ввод записи Button1.Enabled:=true;.

procedure TForm1.Edit3Change(Sender: TObject);

var

x:byte;

err:integer;

begin

val(edit3.Text,x,err);

if (edit3.text<>'') And (err<>0) then

begin

showmessage('Ошибка ввода’); end

else Button1.Enabled:=true; //активизация кнопки Button1

end;

  1. Выполните отладку и тестирование проекта, учитывая изменения.