СУБД. 1Цель работы 1Изучение основных понятий и правил языка FoxPro
Скачать 66.5 Kb.
|
1Цель работы1.1Изучение основных понятий и правил языка FoxPro.1.2Изучение принципов определения окон и меню в FoxPro.2Индивидуальное заданиеНаписать две процедуры в отдельных файлах (файлы с расширением PRG): первая создает окно для ввода значений элементов массива, после выхода из процедуры окно удаляется из памяти; вторая находит максимальное, минимальное и среднее значение массива и выводит эти значения в отдельном окне (окно также создается и уничтожается внутри процедуры). В основной программе создать окно со строкой меню, содержащей два пункта: «Файл» и «Выполнить». При активации пункта меню «Файл» активируется Popup-меню, содержащее опцию «Выход» – выход из программы. При активации пункта меню «Выполнить» активизируется Popup-меню, содержащее имена программ, написанных ранее. Ход выполнения работыДля выполнения лабораторной работы напишем основной модуль (work1), с помощью которого будут вызываться подпрограммы: введение элементов массива (buildArray) и работа с массивом (dowork). Далее будут приведены листинги программ, а также скриншоты запущенных приложений: work1.prg DEFINE WINDOW MainWindow FROM 5, 20 TO 20, 65 IN SCREEN; FONT "Courier", 14; TITLE "Контрольная работа №1"; DOUBLE CLOSE FLOAT NOGROW MINIMIZE; LOCAL lcPath IF _VFP.STARTMODE = 0 && running inside the Visual FoxPro IDE lcPath = LEFT(SYS(16,0), RAT("\", SYS(16,0), 1)) SET DEFAULT TO (lcPath) && Specifies the default drive and directory ELSE lcPath = JUSTPATH(SYS(16,0)) SET DEFAULT TO (lcPath) && Specifies the default drive and directory ENDIF DEFINE MENU MainMenu IN WINDOW MainWindow; DEFINE PAD menuFile OF MainMenu PROMPT "\<Файл" DEFINE PAD menuWork OF MainMenu PROMPT "\<Выполнить" DEFINE POPUP popupMenuFile DEFINE BAR 1 OF popupMenuFile PROMPT "\<Выход" DEFINE POPUP popupMenuWork DEFINE BAR 1 OF popupMenuWork PROMPT "Введите массив" DEFINE BAR 2 OF popupMenuWork PROMPT "Результат" ON PAD menuFile OF MainMenu ACTIVATE POPUP popupMenuFile ON PAD menuWork OF MainMenu ACTIVATE POPUP popupMenuWork ON SELECTION BAR 1 OF popupMenuWork DO buildArray IN "buildArray.prg" ON SELECTION BAR 2 OF popupMenuWork DO processArray IN "processArray.prg" ON SELECTION BAR 1 OF popupMenuFile RELEASE WINDOW MainWindow ON KEY LABEL ESC RELEASE WINDOWS ACTIVATE WINDOW MainWindow ACTIVATE MENU MainMenu NOWAIT @ 2, 3 SAY "Контрольная работа 1" Результатом выполнения является следующее окно (рис. 1): Рисунок 1 bldarray.prg PROCEDURE buildArray DEFINE WINDOW buildArrayWnd FROM 1, 10 TO 15, 80 IN SCREEN ; FONT "Courier" , 14 ; TITLE "Ввод массива:"; ICON FILE "icon\app.ico"; DOUBLE CLOSE FLOAT GROW MINIMIZE; ACTIVATE WINDOW buildArrayWnd ON KEY LABEL ESC RELEASE WINDOW buildArrayWnd PUBLIC arrLen INPUT "Введите длину массива: " TO arrLen PUBLIC a[arrLen] FOR i = 1 TO arrLen INPUT "Введите элемент: " TO a[i] ENDFOR RELEASE WINDOW buildArrayWnd ENDPROC Результатом выполнения является следующее окно (рис. 2): Рисунок 2 processarray.prg PROCEDURE processArray DEFINE WINDOW processArrayWnd FROM 1, 30 TO 10, 90 IN SCREEN; FONT "Courier", 9; TITLE "Результаты вычислений"; ICON FILE "icon\math.ico"; DOUBLE CLOSE FLOAT GROW MINIMIZE; ACTIVATE WINDOW processArrayWnd _min = a[1] _max = a[1] _avg = 0 _sum = 0 FOR i=1 TO arrLen _sum = _sum + a[i] ENDFOR _avg = _sum / arrLen FOR i = 2 TO arrLen IF a[i] > _max THEN _max = a[i] ENDIF IF a[i] < _min THEN _min = a[i] ENDIF ENDFOR @ 1, 1 SAY "Максимальное значение массива:" @ $, 40 SAY _max @ $+1, 1 SAY "Минимальное значение массива:" @ $, 40 SAY _min @ $+1, 1 SAY "Среднее значение массива:" @ $, 40 SAY _avg ON KEY RELEASE WINDOW WAIT "Для выхода нажмите любую клавишу" RELEASE WINDOW processArrayWnd ENDPROC Результатом выполнения является следующее окно (рис. 3): Рисунок 3 3ВыводыВ ходе данной лабораторной работы были изучены основные понятия и правила языка FoxPro, изучены принципы определения окон, меню и вычислений в среде Visual FoxPro 9. |