Metodichka (Билеты, решения и методичка по Информатике (2.0)), страница 3
Описание файла
Документ из архива "Билеты, решения и методичка по Информатике (2.0)", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "Metodichka"
Текст 3 страницы из документа "Metodichka"
SELE A
USE Supply
IF FILE ('Indg.idx')
SET INDEX TO Indg.idx
ELSE
INDEX ON indgoods TO Indg UNIQUE
ENDIF
COPY TO Goods FIELDS indgoods, namgoods, measure
SELE C
USE Smdeliv
IF FILE ('Indexdel.idx')
SET INDEX TO Indexdel.idx
ELSE
INDEX ON indgoods TO Indexdel UNIQUE
ENDIF
SELECT SUPPLY
SET RELATION TO inddel INTO Delivery ADDITIVE
SELE B
USE Goods
INDEX ON namgoods TO Indnum
SET RELATION TO indgoods INTO Supply ADDITIVE
SET SKIP TO Supply
BROWSE TITLE "Товары" ;
FIELDS ;
Goods.Namgoods :H = "Имя Товара" ,;
Delivery.Namdel :H = "Имя Поставщика" ,;
Delivery.Adrdel :H = "Имя Поставщика" ,;
Delivery.Count :H = "Счет", ;
Goods.Measure :H = "Ед.Измерения" ,;
Supply.Pricegds :H = "Цена Единицы" ,;
Supply.Quant :H = "Кол-Во Единиц" ,;
Totalamount=Supply.Quant * Supply.Pricegds :H = "Общая Сумма"
CLOSE ALL
11. РАБОТА С ОКНАМИ
Использование окон - очень удобное и эффектное средство создания пользовательского интерфейса в прикладной программе.
Определение окна
DEFINE WINDOW <имя окна> FROM, TO , <Х2>
[FOOTER<выр>] [TITLE<выр>] [SYSTEM/DOUBLE/PANEL/NONE]
[CLOSE][FLOAT][GROW][SHADOW][ZOOM][FILL<выр>][MINIMIZE]
FOOTER, TITLE - нижний и верхний заголовки;
форма границ окна:
SYSTEM - стандартная,
DOUBLE - двойная линия,
PANEL - сплошная полоса,
NONE - не определяется,
CLOSE - допускает закрытие окна мышью,
FLOAT - перемещение с помощью ^F7 или мышью,
GROW - изменение размера (^F8 или мышью),
ZOOM /
MINIMIZE - распахивание и свертывание окна;
SHADOW - теневая рамка,
FILL - символ заполнения окна.
Активация уже определенного окна
ACTIVATE WINDOW [[<окно1>][,< окно2>]] [,...]] ALL [BOTTOM / TOP]]
Здесь указаны имена открываемых или всех (ALL) окон. BOTTOM / TOP - размещение нового окна под/перед уже имеющимся.
Удаление с экрана
DEACTIVATE WINDOW [,][,...] /ALL
Удаление с экрана и из памяти
CLEAR WINDOW - Удаление с экрана и из памяти ВСЕХ окон
RELEASE WINDOW - Перечисленных окон.
Восстановление окна
RESTORE WINDOW
Сохранение в файле
SAVE WINDOW /ALL TO
12.ПРИЛОЖЕНИЯ
12.1. СТАНДАРТНЫЕ ФУНКЦИИ FOXPRO
Арифметические функции
ABS() - абсолютное значение числа
BETWEEN(,,) - истинно (.Т.), если
, иначе ложно (.F.) (для чисел,
строк, дат)
CEILING() - округление числас избытком
FLOOR() - округление числа с недостатком
INТ() - целая часть числа
МАХ(,[,...]) - максимальное значение из списка
аргументов (числа, строки, даты)
MIN,[,...]) - минимальное значение из списка
аргументов
MOD(<вырN1 >,) - целочисленный остаток от деления
<вырN1 > на
ROUND(<вырN1 >,) - округление числа до
знаков после запятой
RAND(]) - псевдослучайное число в диапазоне 0...1
SIGN() - знак числа
Степенные, тригонометрические и другие функции
ЕХР() - экспонента
LOG() - натуральный логарифм
LOG10() - десятичный логарифм
SQRT() - квадратный корень числа
SIN() - синус от угла в радианах
COS() - косинус
TAN() - тангенс
ASIN() - арксинус (результат в радианах)
ATAN() - арктангенс
PI ( ) - число
DTOR() - преобразование градусной меры угла в
радианы
RTOD() - преобразование радианной меры угла в
градусы
Строковые функции
$ - вхождение в
(результат .Т. или .F.)
AT / ATC(,[,<вырN>) - поиск слева направо в строке
позиции вхождения
подстроки , начиная с
позиции строки
RАТ(,[,) - то же справа налево
INLIST(,[,…]) - вхождение в последующий
список (результат .Т. или .F.)
LEN() - длина строки
LIKE(,) - вхождение в
(результат .Т. или .F.) с
использованием символов маски * и ?
OCCURS(,) - число вхождений в
LEFT(<вырC,) - вырезка слева из строки
символов в колич.
RIGHT(<выpC,) - то же справа
SUBSTR(,,[]) - вырезка из строки
подстроки символов от
в количестве <число
символов>
LTRIM() - удаление начальных пробелов
TRIM / RTRM() - удаление завершающих пробелов
ALLTRIM() - удаление начальных и завершающих
пробелов
REPLICATE(,) - повтор раз строки
SPACE() - формирование строки пробелов
длины
Функции преобразования
АSС () - выдает ASCII код первого символа
CHR () - преобразует число в символ в
соответствии с кодом
STR (,[,[]]) - преобразует число в строку
длиной с указанным
числом
VAL () - преобразует символьную запись числа
в число
Функции обработки мемо-полей
ATLINE(,) - первое вхождение строки
в
ATCLINE (,) - то же без различения строчных и
прописных букв
RATLINE(,) - последнее вхождение строки
в
MLINE(,) - возвращает строку из
MEMLINES() - число строк в мемо поле
Функции работы с датами
СТОD() - преобразование даты из строки
символов в формат даты
DATE( ) - системная дата
DAY() - число месяца из даты
DMY() - представление даты в виде
ДД МЕСЯЦ ГГ (или ГГГТ)
DOW () - номер дня недели
DTOC () - преобразование выражения типа даты
в строку символов
GOMONTH(,) -возвращает дату, которая отстоит от
на ± месяцев
MONTH() - числовое значение номера месяца по
дате
YEAR() - числовое значение года по дате
Функция анализа условий
BOF(,,) - выдает значение, если условие
истинно, и если ложно.
Функции проверки файлов и дисков
ВОF([]) - достижение начала файла (результат
.Т. или .F.)
ЕОF[(]) - достижение конца файла (результат
.Т. или .F.)
DBF([]) - выдает полное имя файла БД в
текущей области
DISCSPACE ( ) - число свободных байт на активном
диске
DELETED([]) - наличие пометки записи к удалению
(результат .Т. или .F.)
FILE() - проверка наличия файла
FIELD([,]) - выдает имя поля по его номеру в
активной БД
FOUND([]) - успешное завершение поиска
(результат .Т. или .F.)
FCOUNT([]) - число полей в открытом файле БД
LOOKUP(,,) - ищет первое вхождение выражения в
и выдает
LUPDATE([]) - дата последнего изменения БД
ORDER([]) - имя главного индексного файла
RECNO([]) - номер текущей записи активного
файла БД
RECCOUNT([]) - общее количество записей
RECSIZE([]) - размер записи в байтах
HEADER([) - размер заголовка БД в байтах
SЕЕK([,]) - поиск записи с в индексном
файле
ЕМРТY() - наличие данных в объекте (результат
.Т. или .F.)
ТYРЕ() - выдает букву имени типа
Функции позиционирования
COL ( ) - номер текущей колонки экрана или окна
ROW ( ) - номер текущей строки экрана или окна
РСОL ( ) - номер текущей колонки на принтере
PROW ( ) - номер текущего столбца на принтер
12.2. SET - КОМАНДЫ
Эти команды служат дня задания флажков состояний, параметров среды и т.п., которые обычно задаются в начале текста программы и в случае необходимости переопределяются или отменяются. В среде FoxPro имеется свыше 100 таких команд. Приведем некоторые из них. За дополнительными разъяснениями можно обратиться к HELP.
SET ALTERNATE ON/OFF - установить флаг вывода данных с экрана
в файл
SET BELL ON/OFF - установить флаг звукового сигнала
SET BLINK ON/OFF - установить флаг мигания символов
SET SENTURY ON/OFF - установить флаг отображения столетия
в датах
SET CLOCK ON/OFF - установить флаг вывода времени
SET COLOR TO - задать цвета меню и окон пользователя
SET COLOR OF SCHEME - задать цвета схемы
SET CURRENCY TO - задать денежный знак
SET DATE TO... - определить формат даты
SET DECIMALS TO… - установить число цифр в дробной
части числа
SET DEFAULT TO... - задать диск и каталог по умолчанию
SET DELETED ON/OFF - установить флаг доступа к записям с
пометкой удаления
SET ECHO ON/OFF - установить флаг активизации окна отладки
SET ESCAPE ON/OFF - установить флаг прерывания по
клавише ESC
SET FILTER TO… - задать фильтр доступа к записям
SET FUNCTION...TO... - связать команду с функциональной
клавишей
SET HELP ON/OFF - установить режим доступа к помощи
SET INDEX TO… - открыть индекс
SET KEY TO - задать предельное значение ключевого
индекса
SET MESSAGE TO... - задать местоположение сообщений
SET ORDER TO... - задать основной индекс
SET PATH TO… - задать список каталогов для поиска файлов
SET PRINTER ON... - установить флаг вывода на принтер
SET PROCEDURE TO... - открыть заданный процедурный файл
SET RELATION TO… - установить связь 1:1 с другой БД
SET RELATION OFF - разорвать связь с другой БД
SET SHADOWS ON/OFF - установить флаг наличия тени
SET SKIP TO… - установить связь 1:N с другой БД
SET SPACE ON/OFF - установить флаг вставки пробелов
SET TALK ON/OFF - установить флаг вывода результатов
выполнения команд
SET WINDOW OF MEMO TO... - задать имя окна редактирования
мемо-полей
12.3. ТЕКСТЫ ПРОГРАММ
Структура для базы данных: DELIVERY.DBF
Field Field Name Type Width Dec Index
1 INDDEL Numeric 2
2 NUMDEL Character 10
3 ADRDEL Character 20
4 COUNT Character 8
5 TEL Numeric 6
Структура для базы данных: SUPLY.DBF
Field Field Name Type Width Dec Index
1 INDSUP Numeric 5
2 INDDEL Numeric 2
3 DATE Date 8
4 NAMGOODS Character 15
5 QUANT Numeric 5
6 PRICEGOODS Numeric 5 2
7 MEASURE Character 3
8 INDGOODS Numeric 5
*********************** Работа с несколькими БД *****
USE Suply
ERASE Goods.dbf
INDEX ON indgoods TO Indg UNIQUE
COPY TO Goods FIELDS indgoods;
,namgoods,measure
SELECT 2
USE Goods
BROWSE
CLOSE ALL
SET TALK OFF
DEFINE WINDOW vvod FROM 2, 2 TO 7, 35 DOUBLE FLOAT SHADOW
DEFINE WINDOW vivod FROM 8, 2 TO 20,70 SYSTEM ;
COLOR SCHEME 10
CLEAR
SELECT A
IF FILE ('Inddeliv.idx')
USE Delivery INDEX Inddeliv
ELSE
USE Delivery
INDEX ON inddel TO Inddeliv
ENDIF
SELECT B
USE Suply
SET RELATION TO inddel INTO Delivery
DO WHILE .T.
ACTIVATE WINDOW vvod
CLEAR
A=0
@ 2,5 SAY 'Введите код товара' GET A PICTURE '#####'
READ
LOCATE FOR indgoods=A
IF !FOUND()
WAIT 'Такого кода нет'
LOOP
ENDIF
name=namgoods
IF A<>0
SET FILTER TO indgoods=A
ACTIVATE WINDOW vivod
BROWSE ;
TITLE 'Список поставщиков, поставляющих '+name ;
FIELDS ;
A.inddel :H = 'Код поставщика', ;
A.namdel :H = 'Имя поставщика', ;
A.adrdel :H = 'Адрес поставщика', ;
A.tel :H = 'Телефон поставщика', ;
A.count :H = 'Счет поставщика'
DEACTIVATE WINDOW vivod
SET FILTER TO
ENDIF
DEACTIVATE WINDOW vvod
IF LASTKEY()=27
EXIT
ENDIF
ENDDO
PACK
CLOSE ALL
CLEAR
SET TALK OFF
SELECT B
USE Goods
SELECT A
USE Suply
INDEX ON indgoods TO Indg
SELECT C
USE Delivery
INDEX ON inddel TO Indexdel
SELECT Suply
SET RELATION TO inddel INTO Delivery
SELECT Goods
INDEX ON namgoods TO Indnum
SET RELATION TO indgoods INTO Suply
SET SKIP TO Suply
BROWSE TITLE 'Товары' ;
FIELDS ;
Goods.namgoods :H = 'Имя товара' ,;
Delivery.numdel :H = 'Имя поставщика',;
Delivery.adrdel :H = 'Его адрес',;
Delivery.count :H = 'Счет' ,;
Goods.measure :H = 'Единица измерения' ,;
Suply.pricegoods :H = 'Цена единицы' ,;
Suply.quant :H = 'Количество единиц' ,;
Totalamount=Suply.quant * Suply.pricegoods ;
:H = 'Общая сумма'
CLOSE ALL
3.1. Линейная программа
********** установки ***********
CLEAR
SET TALK OFF
CLOSE ALL
USE state IN a && открыть в зоне а файл STATE
USE sotr IN b && открыть в зоне b файл CADR
*********** работа с таблицей state **************
SELECT a
BROWSE ;
TITLE 'Штаты ^Т – удал ^N - добав ^W – coxp ' ;
FIELDS cod :H = ‘Код’ ,;
dolg :H = 'Должность' ,;
zarp :H = 'Оклад' ,;
kol :H = 'Количество'
*********** поиск данных в таблице STATE ***********
CLEAR
с = 0
@ 5, 10 SAY 'Задайте код должности:' GET с PICTURE '###'
READ
@ 6, 2 SAY 'Результат поиска'
LOCATE ALL FOR cod = C
DO WHILE ! EOF ( )
? 'Должность - ', dolg, ' Оклад - ', zarp
CONTINUE
ENDDO
WAIT 'Продолжение – ENTER ' WINDOW
******** работа с таблицей sotr ****************
SELECT b
BROWSE ;
TITLE 'Список - ^ T-удал ^ N - добав ^W - сохр' ;
FIELDS cod :Н = 'Код' ,;
fio :H = 'Фамилия И.О.' ,;
tab :H = 'Табельный номер'
**** поиск данных в таблице SOTR ****
CLEAR
с = 0
@ 5, 10 SAY 'задайте код должности:' ;
GET с PICTURE '###'
READ
@ 6, 2 SAY 'Результат поиска'
LIST 'Фамилия - ', fio, 'Табельный номер - ', tab;
WHILE cod = c
WAIT 'Продолжение – ENTER ' WINDOW
**** работа с форматом ****
SET FORMAT TO cadr.fmt
CHANGE
SET FORMAT TO
******** установление связи********************
SELECT b
SET ORDER TO cod
SELECT a
SET ORDER TO cod
SET RELATION TO cod INTO b
SET SKIP TO b
BROWSE ;
TITLE 'Информация' ;
FIELDS A.dolg :H = ‘должность' ,;
B.fio :H = 'Ф.И.О.' ,;
A.zarp :H = 'оклад' ,;
nal = A.zarp * 0.2 :H = 'налог'
SET RELATION TO
********* конец программы**********
3.2 Программа, состоящая из процедур, вызываемых из меню
CLEAR ALL
SET TALK OFF
CLOSE ALL
SET SHADOWS ON
USE state IN a
USE cadr IN b
************** МЕНЮ ****************
DEFINE POPUP mmenu
DEFINE BAR1 OF mmenu PROMPT 'Информация'
DEFINE BAR2 OF mmenu PROMPT 'Штатное расписание предприятия'
DEFINE BAR3 OF mmenu PROMPT 'Список сотрудников'
DEFINE BAR4 OF mmenu PROMPT 'Состояние'
DEFINE BAR5 OF mmenu PROMPT 'Запрос'
DEFINE BAR6 OF mmenu PROMPT 'Выход'
ON SELECTION BAR6 OF mmenu DEACTIVATE POPUP
ON SELECTION BAR1 OF mmenu DO about
ON SELECTION BAR4 OF mmenu DO p2table
ON SELECTION BAR5 OF mmenu DO pspr
ON BAR2 OF mmenu ACTIVATE POPUP wow
ON BAR3 OF mmenu ACTUVATE POPUP sos
DEFINE POPUP wow
DEFINE BAR1 OF wow PROMPT ‘Просмотр'
DEFINE BAR2 OF wow PROMPT 'Поиск'
ON SELECTION BAR1 OF wow DO pstate
ON SELECTION BAR2 OF wow DO psearch
ON SELECTION POPUP wow DO wow
DEFINE POPUP sos
DEFINE BAR1 OF sos PROMPT 'Просмотр'
DEFINE BAR2 OF sos PROMPT 'Поиск'
ON SELECTION BAR1 OF sos DO pstate
ON SELECTION BAR2 OF sos DO psearch
ON SELECTION POPUP sos DO sos
ACTIVATE POPUP mmenu
************ работа с таблицей state **************
PROCEDURE pstate
SELECT a
BROWSE ;
TITLE 'Штаты ^T - удал ^N - добав ^W - coxp' ;
FIELDS cod :Н = 'Код' ,;
dolg :H = 'Должность' ,;
zarp :H = 'Оклад' ,;
kol :H = 'Количество'
RETURN
******** поиск данных в таблице STATE ************
PROCEDURE psearch
CLEAR
c = 0
@ 10, 15 SAY 'Задайте код должности:' ;
GET с PICTURE '###'
READ
@ 12, 10 SAY 'Результат поиска'
LOCATE ALL FOR cod = c
DO WHILE ! EOF ( )
? 'Должность - ', dolg, 'Оклад - ', zarp
CONTINUE
ENDDO
WAIT 'Продолжение – ENTER ' WINDOW
CLEAR
RETURN
******** работа с таблицей cadr ***************
PROCEDURE pcadr
SELECT b
BROWSE ;
TITLE 'Список ^T - удал ^N - добав ^W - сохр' ;
FIELDS cod :H = 'Код' ,;
fio :H = 'Фамилия И.О.' ,;
tab :H = 'Табельный номер'
RETURN
******** поиск данных в таблице SOTR *******
PROCEDURE рcadrsr
CLEAR
с = 0
@ 5, 10 SAY ‘Задайте код должности:' ;
GET с PICTURE '###'
READ
@ 6, 2 SAY 'Результат поиска'
LIST 'Фио - ', fio, ' Табельный номер - ', tab;
WHILE cod = c
WAIT 'Продолжение – ENTER ' WINDOW
CLEAR
RETURN
******** установление связи ******************
PROCEDURE p2table
SELECT b
SET ORDER TO cod
SELECT a
SET ORDER TO cod
SET RELATION TO cod INTO b
SET SKIP TO b
BROWSE ;
TITLE 'Информация' ;
FIELDS A.dolg :H = 'Должность' ,;
B.fio :H = 'Ф.И.О.' ,;
A.zarp :H = 'Оклад' ,;
nal = a.zarp*0.2 :H = 'Налог'
SET RELATION TO
RETURN
********* заставка ************
PROCEDURE about
CLEAR
@ 8, 15 TO 20, 60 double
@ 9, 25 SAY ‘Штатное расписание'
@ 12, 20 SAY 'Модель информационной системы'
WAIT 'Продолжение – ENTER ' WINDOW
CLEAR
RETURN
********* запрос ************
PROCEDURE pspr
CLEAR
DEFINE WINDOW spr FROM 10, 10 TO 18, 40 ;
TITLE 'Справка' SHADOW
ACTIVATE WINDOW spr
@ 1, 1 SAY 'Запрос о занятых должностях и общем'
@ 2, 1 SAY 'Количестве ставок по ним'
WAIT 'Продолжение – ENTER ' WINDIW
DEACTIVATE WINDOW spr
SELECT B
SET ORDER TO cod
SELECT A
SET ORDER TO cod
SET RELATION TO cod INTO b
SET SKIP TO B
SELECT A.dolg, A.kol, COUNT(B.fio) AS cnt, SUM(A.zarp) AS ssum ;
FROM state A, cadr B INTO CURSOR qq ;
WHERE B.cod = A.cod ;
GROUP by A.dolg
BROWSE TITLE 'Занятые должности' ;
FIELDS dolg :Н = 'Должность' ,;
kol :Н = 'По штату' ,;
cnt :Н = 'Занято' ,;
ssum :Н = 'Суммарный оклад'
CLEAR
SET RELATION TO
RETURN
11. Задания.
1. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
2
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
3. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
4
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
5. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
6
. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
7. Обеспечить форматный ввод переменной x и форматный вывод значения функции y, используя оператор ветвления case. Функция имеет вид:
8. Обеспечить форматный ввод переменной x и форматный вывод значения функции yзуя оператор ветвления case. Функция имеет вид:
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
1. Дейт К. Введение в системы баз данных. - М.: Наука-1980.- 463 с.
2. Мидоу Ч. Анализ информационных систем. - М.: Прогресс. - 1977.- 400 с.
3. Цикритзис Д., Лоховски Ф. Модели данных.- М.: Финансы и статистика. -1985.-344 с.
4. Мейер Д. Теория реляционных баз данных. - М.: Мир. -1987.-608 с.
5. Бойко В.В., Савинков В.Ф. Проектирование баз данных информационных систем.- М.: Финансы и статистика. -1982 .- 382 с.
6. Джексон Г. Проектирование реляционных баз данных для использования с микро-ЭВМ. - М.: Мир. - 1991. - 252 с.
7. Попов А.А. Программирование в среде FoxPro2.0. - М.: Финансы и статистика. - 1993. - 350 с.
-
Бемер С. FoxPro 2.6 для WINDOWS. - Киев: Торгово-издательское бюро BHV.- 1995.-463 с.
28