Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Внутреннее проектирование и разработка программных средств.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
86.92 Кб
Скачать

5.3 Модуль управления

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

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

Процедура, реализующая модуль управления, имеет следующий вид:

Procedure Yprava (YV: T_YV; Par: T_PAR; Ksl: Integer; Var Tinf: TypeTinf); {Модуль управления}

Var

Parm: String;

J,Kvo: Integer;

Procedure Vvodd (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для ввода информации с внешнего

носителя}

Begin

Kvo:=0 ;

End;

Procedure Vvodk (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для ввода с клавиатуры}

Begin

Kvo:=0 ;

End;

Procedure TEST (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для тестирования информации}

Begin

Kvo:=0 ;

End;

Procedure PROSM (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для просмотра информации}

Begin

Kvo:=0 ;

End;

Procedure Vedom (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для получения ведомости}

Begin

Kvo:=0 ;

End;

Procedure RASP (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для распечатки информации}

Begin

Kvo:=0 ;

End;

Procedure Soxr (PARM:String;

Var KVO:Integer);

{ Заглушка (STUB) обрабатывающей процедуры,

предназначенной для сохранения информации}

Begin

Kvo:=0 ;

End;

Begin

With Tinf Do

Begin

PB:= 3; Kv:= 0;

Kvo:= 0 ;

For J:=1 to Ksl Do

Begin

Parm:= Par[J];

CASE YV [J] OF

1: Vvodd ( Parm,kvo);

2: Vvodk ( Parm,kvo);

3: Test ( Parm,kvo);

4: Prosm ( Parm,kvo);

5: Vedom ( Parm,kvo);

6: Rasp ( Parm,kvo);

7: Soxr ( Parm,kvo);

End; {Case}

if Kv < Kvo then Kv:= Kvo;

End; {For}

End; {With}

End; {Procedure}

5.4 Информатор

Информатор предназначен для выдачи сообщений о ходе решения задачи. Процедура, реализующая информатор, имеет следующий вид:

Procedure Inform (Tinf: TypeTinf); { Блок информатора} Begin With Tinf Do Begin Case PB Of 1: Begin MESINF.LINES.ADD ('Выполнен лексический разбор'); Case Kv Of 0: MESINF.LINES.ADD ('Нормальное завершение'); 4: MESINF.LINES.ADD ('Оператор задан неверно');

5: MESINF.LINES.ADD('Отсутствует ПВЯ

после имени оператора'); 6: MESINF.LINES.ADD('Разделитель задан неверно'); 7:MESINF.LINES.ADD('Отсутствует символ конца оператора'); End; End; 2: Begin MESINF.LINES.ADD('Выполнен синтаксический анализ'); Case Kv Of 0: MESINF.LINES.ADD('Нормальное завершение'); 8: MESINF.LINES.ADD('Неверный порядок операторов'); 16: MESINF.LINES.ADD('Программа не завершена'); End; End;

3: MESINF.LINES.ADD('Выполнились

обрабатывающие процедуры'); End; { Case } End; { With } End; 5.5 Модуль помощи (HELP)

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

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

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

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

В период освоения системы недостаточно подготовленный пользователь нуждается в постоянной поддержке (помощи) со стороны используемого программного обеспечения. Это значит, что на экране должна высвечиваться вспомогательная информация.

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

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

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

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

В простейшем случае модуль помощи может иметь вид.

Procedure TForm_VED.CMDHELPClick (Sender: TObject);

{ Метод, обеспечивающий помощь пользователю}

Begin

LbHelp1.Caption:= 'СТРУКТУРА ОПЕРАТОРА';

LbHelp2.Caption:= '<ИМЯ ОПЕРАТОРА>=<ПАРАМЕТР>;';

LbHelp1.Autosize:=True;

LbHelp2.Autosize:=True;

LbHelp1.Visible:= True;

LbHelp2.Visible:= True;

CMDPROCESS.SetFocus;

End;