скачать МПС России РГОТУПС Одобрено кафедрой «Вычислительная техника» Базы данных Задание на курсовую работу с методическими указаниями для студентов 4 курса специальности кЭВМ и 6 курса специальности ЭВМ К.т.н., доцент, Л.Г.Коптева Москва 1997г. Содержание Рекомендуемая литература Общие положения Задание на курсовую работу Методические задания к выполнению курсовой работы Приложения Рекомендуемая литература
Методические указания к выполнению курсовой работы FoxPro (фирма Fox Software) по существу является целой страной, где заложены многие возможности:
Продуктивное освоение реально, конечно, только при практическом написании программ. В FoxPro наиболее применим принцип модульности программы, т.е. программа включает главный модуль и множество подпрограмм (процедур). В главном модуле в меню пользователю предоставляется альтернатива выбора одной из ветвей, которая реализуется с помощью процедуры. Работу многомодульной программы можно представить в виде : . ![]() ![]() ![]() d ![]() . ![]() ![]() ![]() d ![]() ![]() ![]() ![]() ![]() ![]() ![]() . ![]() ![]() ![]() ![]() procedure M1 ... r ![]() ![]() ![]() ![]() p ![]() ![]() ![]() ... r ![]() ![]() ![]() Общие положения Курсовая работа охватывает различные разделы программы по «Базам данных». Перед выполнением курсовой работы студент должен изучить теоретический материал, данный в лекциях, теоретический материал и методические указания к лабораторным работам, рекомендованную литературу, а так же методические указания к курсовой работе. Цель данной курсовой работы - это приобретение навыков разработки многомодульных программ в среде FoxPro, разработки интерфейса пользователя в АРМ или информационных системах, базируещегося на средствах управления и доступа, аналогичных среде Windows, создания выходных документов в форме отчетов. Задание на курсовую работу Студент должен:
-создать структуру файла(файлов); -заполнить его(их) данными по своему усмотрению (число записей должно быть 20:25).
- задание начальных знаний переменных; - установку параметров; -определение режимов работы системы; -задать главное меню системы; -открытие файлов.
Главная программа и процедуры должны содержать достаточно комментариев для их понимания. Пояснительная записка к курсовой работе должна содержать:
Пояснительная записка выполняется на листах писчей бумаги с полями 2-3 см, брошюруется, на титульном листе указывается название университета, тема курсовой роботы, исполнитель, фамилия преподавателя, принявшего работу. В ходе защиты курсовой работы студент должен продемонстрировать работоспособность созданного комплекса программ. Вариант курсовой работы студент выбирает согласно последней цифре шестизначного учебного шифра (его обозначение –а0 а 1 а 2 а 3 а 4 а 5). Вариант 0
Вариант 1
В верхней части окна сформировать критерий поиска через POPUP-menu «Поле».
Вариант 2
должны присутствовать кнопки-переключатели «Просмотр перед печатью» и «Печать номеров строк». Вариант 3
Файл (1) должен содержать следующие поля: фамилия, имя, отчество, год рождения, пол, общ., оценка 1, оценка 2, оценка 3, оценка 4, средний балл, оплата, а файл (2) – поля: фамилия, имя, отчество, кафедра, должность, предмет, нагрузка; 2.Главная программа должна содержать меню информационно-справочной системы « Досье подготовительного отделения»:
Для преподавателей - по:
отобразив это с помощью POPUP-меню. Вариант 4
«Справочные материалы планово-экономического отдела»
В справке должна быть осуществлена группировка по темам с подсчетом сумм, должна быть общая сумма по справке. По неоплаченным счетам также сделать сводные данные. В рабочем окне <Печати справки по договорам> должны присутствовать кнопки- переключатели «Просмотр перед печатью», «Печать номеров строк». Вариант 5
«Склад»
В <Списке товаров, срок реализации которых истек> рассчитать и указать суммарную стоимость.
Вариант 6
Создать файл БД расхода материалов CREDIT.dbf, имеющий следующие поля: реквизиты покупателя _REKV(memo), количество, номенклатурный номер товара, примечание.
«Учет строительных материалов, реализованных частными лицами»
В (3) по пачке документов формируется БД расхода материалов. Накладная содержит номенклатурный номер товара, количество, реквизиты покупателя, стоимость, дату отпуска.
Вариант 7
«Отдел кадров»
1.
2.
3.
отразить это с помощью POPUP-меню. В конце отчетов должна быть подсчитана сумма количества сотрудников по каждому признаку. Вариант 8
«Контроль исполнения документов»
Вариант 9
«Социальные объекты»
Примечание В тех вариантах, где не указаны наименования полей, их тип и длины, студент выбирает их самостоятельно. Методические указания к выполнению курсовой работы FoxPro ( фирма Fox Sofware) по существу является целой страной, где заложены многие возможности:
Продуктивное освоение реально, конечно, только при практическом написании программ. В FoxPro наиболее применим принцип модульности программы, т.е. программа включает главный модуль и множество подпрограмм (процедур). В главном модуле в меню пользователю предоставляется альтернатива выбора одной из ветвей, которая реализуется с помощью процедуры. Работу многомодульной программы можно представить в виде: Работа с окнами Очень важным для СУБД является возможность работы с окнами. Каждое окно - это, по существу, автономный экран системы. Одновременно может быть доступно несколько не мешающих друг другу окон, что позволяет создавать очень удобный «многослойный» пользовательский интерфейс. Переход между окнами осуществляется нажатием клавиш Ctrl+F10, или мышью. Окна можно открывать, закрывать, изменять положение и размеры с помощью команд, клавиатуры и мыши. Окна могут существовать отдельно и быть вложенными друг в друга. Вид окна определяется опциями команды описании окна DEFINE WINDOW. По умолчанию окно обрамлено одинарной рамкой и не имеет ни каких средств управления. ^ <имя окна>FROM [FOOTER<вырС1>] [TITLE<вырС2>] [SYSTEM/DOUBLE/PANEL/NONE/<вырС3>] [CLOSE] [FLOAT] [GROW] [SHADOW] [ZOOM] [FILE<вырС4>] [MINIMIZE] ^ <вырN>/ COLOR<список цветовых пар>], где Y1, X1 и Y2, X2 - координаты левого верхнего и правого нижнего углов окна на экране. В квадратных скобках указываются необязательные параметры. FOOTER<вырС1>, TITLE<вырС2> - назначение окну заголовков, вставленных в центр нижней и верхней границ окна. SYSTEM - устанавливает форму границы для сметных окон СУБД. В ее углах показываются символы управления. ^ DOUBLE - двойная линия; PANEL - сплошная полоса; NONE - граница не отображается; <вырС3> - позволяет указать свои символы определения границы по одному для каждой из сторон и углов окна; CLOSE - позволяет закрыть окно с помощью мыши и удалить его из памяти; FLOAT - допускается перемещение окна с помощью мыши и клавиш Ctrl+F7; GROW - допускает изменение размеров окна с помощью мыши и клавиш Ctrl+F8; SHADOW - окно будет отображаться с тенью; ZOOM - распахивание окна на весь экран и возвращение к прежнему размеру с помощью мыши и клавиш Ctrl+F10; FILE<вырС4> - указывает возможный символ-заполнитель окна; MINIMIZE - допускает приведение окна к минимальному размеру; ^ <вырN> - устанавливает цвета окна с помощью цветовой схемы или COLOR< > - устанавливает цвета непосредственно. По умолчанию окнам присваиваются цвета из COLOR SCHEME1. Общий вид окна, создаваемого FoxPro. Приведен на рис.1. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() окна С ![]() положения окна п ![]() ![]() С ![]() ![]() р ![]() ![]() ![]() по горизонтали С ![]() окна Рис.1. Общий вид окна в FoxPro Каждое окно прикладной системы предварительно должно быть определено командой DEFINE_WINDOW, а затем при необходимости активировано. Ненужные окна отключаются или удаляются. ACTIVATE WINDOW - активирует окно при необходимости его использовать; MIDE WINDOW - делает скрытым активное окно (при этом оно остается работоспособным, но невидимо на экране); SHOW WINDOW - снова делает видимым скрытое окно; MOWE WINDOW и ZOOM WINDOW - осуществляет перемещение окна по экрану и изменяет его размер; ^ <окна>/ALL TO<файл>/ TO MEMO <мемо_поле> - сохраняет текущие окна или все (ACL) в файле или мемо-поле; DEACTIWATE WINDOW - удаляет (деактивирует) временно ненужное окно с экрана, при этом определение окна в памяти сохраняется и может быть снова использовано при активизации; CLEAR/RELEASE WINDOWS - удаляет из памяти описание текущих в данный момент окон; RESTORE WINDOW - восстанавливает окна. Пример схематично иллюстрирует описание и работу с окном KADR для БД KADR.dbf: DEFIN WINDOW kadr FROM 3,4 TO 13,50 TITLE ‘КАДРЫ’; CLOSE FLOAT GROW SHADOW ZOOM USE Kadr ACTIVATE WINDOW Kadr <работа в окне Kadr> DEACTIVATE WINDOW Kadr <работа с экраном> MOVE WINDOW Kadr TO 15,10 ACTIVATE WINDOW Kadr <работа в перемещенном окне> RELEASE WINDOW Kadr <работа только с экраном, окно удалено> Возможно использование окон без предварительной активации : CHANGE/BROWSE - окна, окна редактирования текстовых данных, вывод доступного мемо-поля по клавишам Ctrl+Home. Остальные команды студент должен изучить самостоятельно. Средства управления в стиле WINDOWS В FoxPro появилась группа команд вида @...GET, которые позволяют создать совершенно новые объекты пользовательского интерфейса. Все объекты в стиле Windows (или просто GET-объекты) активируются командой READ, что дает возможность соединять GET-объекты всех видов между собой и с окнами редактирования, реализованными обычными командами GET, создавая удобный и гибкий интерфейс. Все GET-объекты чувствительны к мыши, при работе с ней они эффективны. Приведем перечень новых GET-объектов:
Под словом «кнопка» понимается некоторая выделенная область экрана, выбор которой нажатием клавиш Enter и Space может быть зафиксирован в заданной переменной и обработан. Структуры команд, генерирующих вышеуказанные GET-объекты сложен и содержит следующие компоненты: @ GETIEDIT<переменная> - переменная, элемент массива или поле БД, запоминающие сделанный выбор или вызванные для редактирования; FUNCTION/PICTURE<вырС> - опции определяют содержание и вид элементов GET-объекта. Действие слов FUNCTION и PICTURE совершенно одинаково, но в <вырС> со словом PICTURE первым должен использоваться знак «@» . Самое начало <вырС>(или после знака «@» - если используется опция PICTURE) включается обязательный индивидуальный символ/символы, который определяет тип GET-объекта: *C - объект Cheek Boxer; *I - объект Invisible Button; & - объект Lists; ^ - объект Popups; * - объект Push Buttons; *R - объект Radio Buttons. Сразу за обязательными символами <вырС> обычно имеет ключи, которые обозначают следующие действия: V - элементы располагаются вертикально (действует по умолчанию); Н - элементы располагаются горизонтально; Т - команда завершает действие команды READ; N - команда не завершает команду READ. Ключи могут сочетаться. Для выбора с помощью «горячих клавиш» (т.е. это первая буква строки-приглашения) перед соответствующей буквой cтавятся символы «/<». Негативные элементы (они пропускаются курсором) в списке приглашений начинаются с символов «\\». DEFAULT<выр> - задает исходное значение <переменной>, равным <выражению>. Если они уже существуют, то DEFAULT игнорируется. VALID<вырL> - условия, проверяемые после выбора/изменения данных. WHEN<вырL> - условие, определяющее возможность доступа к объекту. MESSAGE<вырС> - дополнительное сообщение, появляющееся в центре нижней строки экрана. ENABLE/DISABLE - активация/деактивация объекта. По умолчанию - ENABLE. ^ <вырN>/COLOR <список цветовых пар> - указание цвета объекта номером цветовой схемы или списком цветовых пар. Рассмотрим подробнее GET-объекты.
Команда @ FUNCTION<вырС1>PICTURE<вырС2> [DEFAULT<выр>][ENABLE/DISABLE] [MESSAGE< вырC3>][VALID< вырL1>][WHEN< вырL2>] ^ <вырN>/COLOR <список цветовых пар>] создает кнопку-переключатель, которая может изменять некоторую <переменную> с значения «Ложь» («F») на «Истина» («Т») или с значения 0 на 1 и наоборот («Отжата»/ «Нажата»). Такая кнопка отображенная на экране символом X(если «Т») или пробелом (если «F»), взятым в квадратные скобки, с возможным разъяснением ее смысла, указанным справа. Например, две кнопки вида [ ] ИЗВЕЩЕНИЕ ПОСЛАНО [x] СЧЕТ ОПЛАЧЕН генерируются с помощью команд izv = .F. @ 4,4 GET izv PICTURE‘@*C\ « ИЗВЕЩЕНИЕ ПОСЛАНО’ COLOR SCHEME 8 @4,34 GET opl FUNCTION ‘*C\<СЧЕТ ОПЛАЧЕН’DEFAULT 1 READ «Горячими» клавишами являются буквы «И» и «С».
Команда @ FUNCTION<вырС1>PICTURE<вырС2> [DEFAULT<вырN1>] [SIZE<вырN2>, <вырN3 >, < вырN4> [ENABLE/DISABLE] [MESSAGE< вырC3>][VALID< вырL1>][WHEN< вырL2>] ^ <вырN5>/COLOR <список цветовых пар>] создает меню, которое может быть образовано элементами <массива> или активизирует ранее определенное POPUP_меню (командой DEFINE POPUP), где FROM<массив> - список строится с помощью одномерного или первого столбца двумерного массива, меню на экране отображается вертикально; RANGE <выр N1>[,выр N2] - определяет номер начального элемента массива (вар N1) и количество используемых элементов (выр N2). Пример: DEFINE POPUP bd PROMPT FILES LIKE brig*.dbf MARGIN @2,2 GET K POPUP bd SIZE 8.20 DEFAULT 1 READ Вызывается POPUP-меню БД, которое предъявляет названия всех файлов баз данных с именем, начинающимся с BRIG. Активизирование меню командой READ позволяет легко интегрировать POPUP-меню в единый интерфейс вместе с окнами и другими средствами управления. 4.Скрытое POPUP-меню (Popups) По команде @ [DEFAULT<выр>] [FROM<массив>] [RANGE<вырN1>[,вырN2>]] [SIZE<вырN3>,<вырN4>] ^ < вырC3>] [VALID< вырL1>][WHEN< вырL2>] [COLOR CHEME<вырN5>/COLOR<список цветовых пар>] создается компактное POPUP-меню (кнопка-меню). Такое меню на экране представлено только одним пунктом, заключенным в прямоугольник: ![]() <Пункт меню> Целиком меню раскрывается., если на него установлен курсор и нажата клавиша Enter/Space. Меню удобно тем, что не загромождает экран. Пример: @4,2 GET fam FUNCTION ‘^\<Петров А.А.;\<Васин А.Н.;\ ––––– ;<Лукин С.Н.’DEFAULT2 READ В опции FUNCTION перечислены элементы массива с обязательным начальным символом «^», «разделенными символами». Допускаются ключи N и T и знаки «\^», «\». Исходным приглашением является второй пункт меню (DEFAULT2) - фамилия Васин А.Н. «Горячими» клавишами являются начальные буквы всех фамилий. Исходный и раскрытый виды POPUP-меню представлены на рис.1. ![]() Васин А.Н. ![]() Петров А.А. ![]() –––––––––––– Лукин С.Н. Рис 1. 5.Триггерные кнопки (Push buttons) По команде @ [DEFAULT<выр>] [SIZE<вырN1>,<вырN2>[,вырN3]] ^ < вырC3>] [VALID< вырL1>][WHEN< вырL2>] [COLOR CHEME<вырN4>/COLOR<список цветовых пар>] создаются триггерные кнопки, которые на экране изображаются в виде текста-приглашения, взятого в угловые скобки, например: Обязательный первый символ В опции SIZE указываются высота, длина кнопки и промежуток между ними. Следующий пример генерирует триггерное меню вида: «Выход»<Возврат к обработке><Печать><Отказ> с помощью команды: i=2 @2,2 GET i FUNCTION; ‘*H\! Выход; Возврат к обработке; Печать;\? Отказ’SIZE 1,8,2 READ
По команде, аналогичной предыдущим GET-объектам создаются радио-кнопки. Среди таких кнопок только одна может быть нажата. Каждая кнопка представляет собой одну позицию экрана, ограниченную окружностью. Если кнопка нажата, то внутри окружности стоит точка. Справа от кнопки может быть выведена строка приглашения. В опции FUNCTION первый обязательный элемент <вырС> - «*R», после которого идут приглашения, разделенные знаком «;». Разрешены ключи N, T, H, V. Приведенный ниже фрагмент программы порождает следующее множество радио-кнопок: Зарплата Премия Прогрессивка Налог @5,8 GET x FUNCTION‘*RH Зарплата; Премия; Прогрессивка; Налог’ DEFAULT2
Команда @ [VALID<вырL1>][ERROR<вырC4>][WHEN< вырL2>] [NOMODIFY][SCROLL] ^ <вырN4>/COLOR<список цветовых пар>] создает прямоугольную область на экране, в которой возможно редактирование переменной, элемента массива, поля, или мемо-поля БД. Такой объект должен быть символьного типа. В созданном регионе действуют многие функции редактора FoxPro. Чтобы сохранить изменения, созданные в <переменной>, следует нажать клавиши Tab/Ctrl-Tab. Выход без сохранения - с помощью клавиши Escape. Опция SIZE<вырN1>,<вырN2>[,<вырN3>] - определяет размер области для редактирования, где <вырN1> - высота области, <вырN2> - ее длина, <вырN3> - предельное число редактируемых символов. Опция ERROR<вырC4> - собственное сообщение об ошибке (вырC4), если условие <вырL1> оказалось ложным. Опция NOMODIFY - редактирование запрещено (только просмотр). Опция SCROLL - у правой границы редактируемой области будет показан маркер положения курсора («ползунок»). Пример: Создать область редактирования для мемо-поля PER, из базы KADR.DBF размером 3 строки на 20 колонок. Координаты левого верхнего угла 10х5. USE Kadr @10,5 EDIT per SIZE 3,20 SCROLL READ В примечаниях помещены следующие программы:
![]() Вызов меню - F10 ВверхPGUP ВнизPGDN Начало^PGUP Конец^PGDN СервисF3 ![]() ![]() Табельный номер 468 Переиндексация Фамилия МИРОНОВ Р.И. Печать *----------------------Программа KADR3.PRG--------------------------- ^ SET TALK OFF SET ESCAPE OFF CLEAR USE Kadr DEACTIVATE MENU upr RELEASE MENU upr DEFINE WINDOW w FROM 3,3 TO 6,42 DEFINE MENU upr KEY F10 IN SCREEN NOMARGIIN DEFINE PAD upr1 OF upr PROMFT ’Вверх’ KEY PgUp AT 1,1 DEFINE PAD upr2 OF upr PROMFT ’Вниз’ KEY PgDn DEFINE PAD upr3 OF upr PROMFT ’Начало’ KEY Ctrl+PgUp, ‘^PgUp’ DEFINE PAD upr4 OF upr PROMFT ’Конец’ KEY Ctrl+PgDn, ‘^PgDn’ DEFINE PAD upr5 OF upr PROMFT ’Сервис’ KEY F3 DEFINE PAD upr6 OF upr PROMFT ’Вызов меню - F10’; ^ ON SELECTION MENU upr DO ppp ON SELECTION PAD upr5 OF upr ACTIVATE POPUP serv DEFIN POPUP serv IN SCREEN FROM 2,39 DEFIN BAR 1 OF serv PROMFT ‘Упаковка’ DEFIN BAR 2 OF serv PROMFT ‘Переиндексация’ DEFIN BAR 3 OF serv PROMFT ‘Печать’ ON SELECTION POPUP serv DO ppp ACTIVATE MENU upr NOWAIT && Меню активно *SHOW MENU upr && Предъявление меню без активации ACTIVATE WINDOW w && Активация окна редактирования W @ 0,3 SAY ‘Табельный номер’ GET tab @ 1,3 SAY ‘Фамилия’ GET fam ^ DEACTIVATE MENU upr RELEASE MENU upr RELEASE WINDOW w CLEAR RETURN PROCEDURE ppp &&---------------Процедура обработки выбора DO CASE && Разбор выбора из меню CASE PROMFT( )=’Вверх’ SCIP -1 CASE PROMFT( )=’Вниз’ ENDCAFE SHOW GETS && Обновление окна ввода RETURN &&-----------Конец модуля KADR3.PRG-----------------
USE kadr @ 4,2 GET vib FUNCTION; ‘*N Следующая запись; Начало; Конец; Выход’ VALID perem( ) DEFAULT1 @ 2,2 @ 2,2 SAY ‘Фамилия’ GET fam READ CYCLE FUNCTION perem && Функция перемещения указателя записей DO CASE ![]() SCIP Фамилия Васин А.Н. CASE vib = 2 <Следующая запись> SCIP -1 <Предыдущая> CASE vib = 3 <Начало> GO TOP <Конец> CASE vib = 4 <Выход> GO BOTTOM Запись номер 18 CASE vib = 5 CLEAR READ ENDOCASE SHOW GETS && Обновление поля FAM @ 9,3 SAY ‘Запись номер’ +LTRIM(STR(RECNO())) RETURN
|