Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л работы (ОА и П_ 2 Семестр).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
728.74 Кб
Скачать

Лабораторная работа №22 Использование операторов обработки исключений.

Цель работы: Применение теоретических навыков на практике. Ознакомить учащихся с обработкой исключительных ситуации. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

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

Новое ключевое слово, добавленное в язык Object Pascal - try. Оно используется для обозначения первой части защищенного участка кода. Существует два типа защищенных участков:

try..except, try..finally

Первый тип используется для обработки исключительных ситуаций. Егосинтаксис: try

Statement 1;

Statement 2;

...

except

on Exception1 do Statement;

on Exception2 do Statement;

...

else

Statements; {default exception-handler}

end;

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

try

Statement1;

Statement2;

...

finally

Statements; { These statements always execute }

end;

 Задания: ВычислитьзначениеY, используяоператоры «try-except-end» или «try-finally-end». Проверка на неверный ввод данных, подкоренное выражение не отрицательное и при делении на «ноль».

Вариант №1 Вариант №2

Вариант №3 Вариант №4

Вариант №5 Вариант №6

Вариант №7 Вариант №8

Вариант №9 Вариант №10

Вариант №11 Вариант №12

Вариант №13 Вариант №14

Вариант №15

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

  1. Назначение оператора try..except ?

  2. Назначение оператора try..finally ?

  3. Что такое «исключительная ситуация»?

Лабораторная работа №25 Создание главного и контекстного меню.

Цель работы: Применение теоретических навыков на практике. Ознакомить учащихся с использованием компонента меню. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

Компонент MainMenu ,его значок находится на вкладке Standard, представляет собой строку главного меню.

Рисунок 12

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

В начале работы над новым меню в окне редактора меню находится один-единственный прямоугольник ,который изображает новый элемент меню (свойства элемента меню отображаются в окне Object Inspector). Сначала в поле значения свойства Caption нужно ввести название меню , например Файл ,и нажать <Enter>. В результате в меню будет добавлен элемент (создан объект типа TMenuItem), а в окне редактора меню появятся два прямоугольника: снизу и справа от выбранного элемента меню. Следует обратить внимание, что по умолчанию редактор меню присваивает каждому созданному элементу меню имя, которое состоит из буквы N и порядкового номера элемента. Так, первый элемент получает имя N1, второй – N2 и т.д.

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

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

Рисунок 13.

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

Каждый элемент меню представляет собой объект типа TMenuItem (свойства объекта приведены в таблице 13) .

Таблица 13. Свойства объекта TMenuItem.

Свойство

Описание

Name

Идентификатор элемента меню

Caption

Название элемента меню или команды

Bitmap

Картинка, которая отображается слева от названия элемента меню

Enabled

Признак доступности элемента меню ( True – элемент доступен, false – не доступен

ShortCut

Функциональная клавиша или комбинация клавиш , например <Ctrl>+<z>, с помощью которой можно быстро выбрать элемент меню

Для элемента меню можно определить событие OnClick, которое возникает при щелчке на опции или при нажатии Enter, если в этот момент данная опция была выбрана (подсвечена). Обработчик события становится доступен после двойного щелчка на опции в окне конструктора меню.

Задание:

// команда файл>>Новый

Procedure Tform1.N2Click (Sender: TObject);

Var

r : integer // идентификатор кнопки

begin

if memo.Modfied then

begin

r:=MessageDlg(‘Текст был изменён. Создать новый документ’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);

if t=mbYes then

Memo1.Clear;

End

Else Memo1.Clear;

End;

// команда файл>> Открыть

Procedure Tform1.N3Click (Sender: TObject);

Var

R:integer; //идентификатор кнопки

Begin

If Memo1.Modfield then

Begin

r:=MessageDlg(‘Текст был изменён. Открыть новый файл’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);

if r=mbNo then

exit; //продолжить работу

end;

//отобразить окно Открыть

If Opendialog1.Execute then

Begin

// пользователь выбрал файл

Memo1.Lines.LoadfromFile(Opendialog1.FileName);

FileName := Opendialog1.FileName;

Form1.Caption:= ‘MEdit - ’ + FileName;

End;

End;

// команда файл>> Сохранить как

Procedure TForm1.N4Click(Sender:TObject);

Begin

SaveDialog1.FileName:=FileName;

If SaveDialog1.Execute then

// сохранить текст в файле

Memo1.Lines.SaveToFile (FileName);

End;

// команда файл >> Выход

Procedure TForm1.N5Click (Sender: TObject);

Var

R:integer; //идентификатор кнопки

Begin

If Memo1.Modfied then

Begin

r:=MessageDlg(‘Текст был изменён. Завершить работу’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);

if r=mbYes then

Close; // завершить работу программы

End;

End;

Procedure TForm1.FormCloseQuery (Sender: TObject; var CanClose: Boolean);

Var

R:integer; //идентификатор кнопки

Begin

If Memo1.Modfied then

Begin

r:=MessageDlg(‘Текст был изменён. Завершить работу’ + #10 + ’без сохранения изменений в текущем?’, mtWarning, [mbYes,mbNo],0,mbNo);

if r=mbNo then

CanClose; //не завершать работу программы

End;

End;

Индивидуальные задания

Задание №1

  1. Организуйте построение 4-х рисунков с помощью пунктов главного меню.

  2. Организуйте построение 2-х графиков функций с помощью пунктов контекстного меню

  3. Организовать пункты лабораторных работ главного меню

  4. Организовать пункты лекционного материал контекстного меню

  5. Организовать пункты электронного журнала главного меню

  6. Организовать пункты студенческого отдела контекстного меню

  7. Организовать пункты магазина сотовой связи главного меню

  8. Организовать пункты магазин игрушек контекстного меню

  9. Организовать пункты автомобильного салона главного меню

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

  11. Организовать пункты контекстного меню библиотеки

  12. Организовать пункты главного меню для работы администратора ресторанного бизнеса

  13. Организовать пункты контекстного меню заведующего отделения

  14. Организовать пункты контекстного меню изменения цвета формы

  15. Организовать пункты контекстного меню изменения картинки

Задание №2

  1. Разработать интерфейс приложения с применением компонентов: MainMenu, PopupMenu, StringGrid

  2. Разработать алгоритм решения задачи в соответствии с вариантом задания.

  3. Реализовать разработанный алгоритм в рамках ранее созданного интерфейса.

  4. Проверить работоспособность программы с помощью тестового набора данных.

  5. Оформить отчет и сдать работу преподавателю.