Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
95.doc
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
784.9 Кб
Скачать

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

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

Н

48

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

Поместим на форму два компонента TGroupBox, назовем их GrBoxIn и GrBoxOut. На GrBoxIn установим три зависимых переключателя TRadioButton, а на GrBoxOut - два независимых переключателя TCheckBox. Переключателями TRadioButton можно будет выбрать источник данных (клавиатура, генератор случайных чисел или файл), а TCheckBox - вывод данных. Установим шрифт для GrBoxIn и GrBoxOut 10 размер, жирный; для TRadioButton и TCheckBox - 8 размер, обычный. Зависимые переключатели назовем RdBnKey, RdBnGen, RdBnFile и запишем в их свойства Caption соответственно "Ввод с клавиатуры", "Генератор случайных чисел" и "Получить данные из файла". Имена независимых переключателей:

36

CkBoxEdit и CkBoxFile, а Caption соответственно "Вывод данных на экран" и "Вывод данных в файл". Для RdBnKey и CkBoxEdit в инспекторе объектов свойство Checked установить True. Таким образом, при запуске программы эти переключатели окажутся выбранными по умолчанию.

На форму поместим кнопку TBitBtn, назовем ее BtBnOpen, установим Caption "Открыть файл". Эту кнопку сделаем доступной при условии выбора "Получить данные из файла" и недоступной при выборе другого варианта получения данных. Для этого в процедуре, обрабатывающей событие "OnClick" от RdBnFile, установим свойство Enabled кнопки BtBnOpen True, а в инспекторе объектов и обработчиках события "OnClick" от RdBnKey и RdBnGen свойство Enabled = False. Для того, что чтобы редакторы ввода элементов массива и вывода результатов очищались при выборе другого источника данных в соответствующих обработчиках "OnClick" вставим следующие строки edMassIn.Text:= '' и edResult.Text:= ''.

procedure TForm1.RdBnFileClick(Sender: TObject);

begin

edMassIn.Text:= ''; // очистим редактор ввода

edResult.Text:= ''; // очистим редактор вывода

lbMassIn.Caption:= 'Данные из файла';

BtBnOpen.Enabled:= True;

end;

Для того чтобы редактор вывода результата (edResult) и его заголовок (метка lbResult) были доступны или нет в зависимости от переключателя CkBoxEdit в обработчике события "OnClick" выполним проверку свойства Checked. Если True, то установим свойство Enabled редактора и метки True, иначе - False.

procedure TForm1.CkBoxEditClick(Sender: TObject);

begin

if CkBoxEdit.Checked then

begin

lbResult.Enabled:= True;

edResult.Enabled:= True;

end

else

begin

lbResult.Enabled:= False;

edResult.Enabled:= False;

48

end;

end;

П

50

оместим на форму TOpenDialog из страницы Dialogs. Вызов этого компонента будет происходить при нажатии на BtBnOpen. Устанавливаем фильтр файлов в свойстве Filter OpenDialog. Выполняем и проверяем выполнение (Execute возвращает True или False) выбора файла. Затем функцией FileExists проверяем существование файла. Это необходимо сделать, чтобы избежать краха программы в случае ввода имени несуществующего файла. После успешного определения, имя файла свяжем с файловой переменной стандартной процедурой AssignFile(<ф. п.>, <имя файла>) и открываем файл для чтения процедурой Reset.

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

procedure TForm1.BtBnOpenClick(Sender: TObject);

var

F: TextFile;

37

i, st_i: integer;

s: string;

begin

i:= 1;

OpenDialog1.Filter:= 'Текстовые файлы|*.txt';

if not OpenDialog1.Execute then Exit;

if FileExists(OpenDialog1.FileName) then

begin

AssignFile(F, OpenDialog1.FileName);

Reset(F);

While not Eof(F) do

begin

Readln(F, s); // читаем строку

st_i:= Conv(s, i); // записываем строку в массив

Inc(i); // номер строки

end;

CloseFile(F);

end;

Look_Mas(st_i, i-1);

end;

Процедура Look_Mas используется для просмотра в редакторе edMassIn исходного массива. Редактор доступен только для чтения. Массив отображается в виде, как и при вводе с клавиатуры (строки отделены ";"). В Look_Mas передается количество строк (x) и элементов в строке (n). Работа этой процедуры поясняется комментариями.

Пример интерфейса программы показан на рисунке 7.

Рисунок 7 – Пример интерфейса программы

50

procedure Look_Mas(x, n: integer);

var

i, j: integer;

begin

Form1.edMassIn.ReadOnly:= True; // установим только чтение

for i:= 1 to n do // цикл по строкам

begin

for j:= 1 to x do // цикл по элементам строки

if j <> x then // отделяем числа пробелами

Form1.edMassIn.Text:= Form1.edMassIn.Text +

IntToStr(Mas_a[i, j])+ ' '

else // после последнего элемента строки пробел не ставим

Form1.edMassIn.Text:= Form1.edMassIn.Text +

IntToStr(Mas_a[i, j]);

if i <> n then

Form1.edMassIn.Text:= Form1.edMassIn.Text + '; '

else

Form1.edMassIn.Text:= Form1.edMassIn.Text + ';';

end;

Form1.edMassIn.SetFocus; // устанавливаем фокус ввода

end;

Задания:

1. Написать проверку количества элементов в строках массива, полученного при чтении файла.

2. Написать процедуру генератора случайных чисел, создать GroupBox с двумя редакторами TEdit для ввода размера массива и кнопки BitBtn для записи чисел в массив. Сделать его доступным при выборе соответствующего переключателя.

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

4. Обработать ситуации открывания несуществующего файла и перезаписи существующего.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторных работ №6-10

для студентов специальности 200800 «Проектирование

и технология РЭС» очной и заочной формы обучения

Составители

Новикова Ирина Анатольевна

Хорошилов Валерий Николаевич

Подписано к изданию 18.01.2008

Уч. -изд. л. "С" 3,6

ГОУВПО «Воронежский государственный технический университет»

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]