Содержание
Общие вопросы ........................................................................................................................ 1 Введение................................................................................................................................. 2 Постановка задачи............................................................................................................... 7 3 Обоснование выбора программных средств...................................................................... 8 4 Вопросы проектирования БД.............................................................................................. 9 4.1 Инфологическое проектирование БД........................................................................... 9 4.2 Даталогическое проектирование БД.......................................................................... 12 5 Описание прикладной программы................................................................................... 17 6 Заключение......................................................................................................................... 19 Список использованных источников................................................................................... 20 Приложение А Древообразная структура запуска файлов, процедур и функций............ 21 Приложение Б Листинг файла Kurs.PRG22............................................................................ Приложение В Листинг файла Mmm.MPR23.......................................................................... Приложение Г Листинг файла Seepredl.SPR26....................................................................... Приложение Д Листинг файла Seezayav.SPR31...................................................................... Варианты заданий на курсовую работу………………………………….………... |
4 8 9 10 11 11 14 20 22 23 24 25 26 30 36 41 |
ОБЩИЕ ВОПРОСЫ
Цель курсовой работы разработать простую информационную систему для работы с данными в какой-либо предметной области. Предметные области предлагаются в варианте задания на курсовое проектирование.
Этапы работы над курсовой работой:
1. Исходя из своих представлений о предметной области, назначить атрибуты (значимые свойства сущности), которые необходимо хранить в базе данных (не менее 5-6 атрибутов). Выбор атрибутов должен быть логически обоснован.
2. Определить логическую структуру таблиц, т.е. назначить имена полей, их тип и размерность. При определении размерности полей учитывать максимальную длину возможных данных. База данных должна состоять не менее, чем из двух таблиц. При обосновании можно работать с одной таблицей.
3. Определить возможные связи между данными в таблицах, назначить атрибуты, которые являются первичными ключами. Заполнить файлы данными не менее 15-20 записей. Не рекомендуется заполнять данными, носящими сатирический или фривольный характер.
4. Создать программный файл, в котором путем выбора пунктов меню реализовать функции:
· просмотр и редактирование данных;
· поиск записей по ключу или условию;
· организовать выход из программы.
В результате выполнения курсовой работы оформляется пояснительная записка (пример приводится ниже). Пояснительная записка пересылается в ТУСУР в любой удобной для студента форме (текстовый документ, либо файл), файлы, реализующие программно информационную систему в обязательном порядке пересылаются в ТУСУР.
Далее по тексту методического пособия приведен пример студенческой курсовой работы. Объем пояснительной записки курсовой работы, выполняемой студентами, обучающихся по дистанционной технологии, может содержать меньшее количество пояснительного текста.
Критерием зачета является наличие программного файла, реализующего программу работы с файлами данных и раскрытие в пояснительной записке вопросов задания на курсовое проектирование
(Бланк задания на курсовое проектирование приведен ниже на с. 7).
ПРИМЕР ОФОРМЛЕНИЯ КУРСОВОЙ РАБОТЫ
Министерство образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра систем автоматизированного проектирования (САПР)
ИНФОРМАЦИОННАЯ СЛУЖБА КАДРОВОГО АГЕНТСТВА
Пояснительная записка к курсовому проекту
по дисциплине “Базы данных”
Студенты гр. 584-2 А. С. Москвин
Руководитель
Преподаватель кафедры САПР
______________Т.Д. Карминская
______________
2000
РЕФЕРАТ
Курсовой проект 45 с., 11 рис., 2 табл., 4 источника, 9 приложений.
БАЗА ДАННЫХ, ПОЛЕ, ЗАПИСЬ, МЕНЮ, ОТЧЁТ, ПОИСК, АГЕНТСТВО, ПРЕДЛОЖЕНИЕ, ЗАЯВКА.
Объектом исследования являются данные, относящиеся к работе кадрового агентства.
Цель работы - разработка базы данных (БД) для её последующего использования в целях автоматизации работы с данными в кадровом агентстве.
В процессе работы полученные из прослушанных лекций и из литературы знания применялись для их реализации в виде программы, написанной на входном языке системы управления базами данных (СУБД) Microsoft FoxPro for Windows версия 2.5b (далее FoxPro).
В результате был получен набор файлов, представляющих собой две базы данных, файлы программ и экранных форм, образы отчётов, а также меню и экранные формы, сгенерированные с использованием генератора экранов и меню СУБД FoxPro.
Достигнутые технико-эксплуатационные показатели: относительная простота программных алгоритмов при их реализации на распространённой и широко используемой СУБД FoxPro, наглядность экранных форм, простота работы с сообщениями на русском языке.
Полученные программы и базы данных могут использоваться для учёта поступающих в кадровое агентство заявок на предоставление услуг и предложений услуг.
Курсовой проект выполнен в текстовом редакторе Microsoft Word 6.0 и представлен на дискете 3.5” (в конверте на обороте обложки).
Министерство образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ
И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра систем автоматизированного проектирования (САПР)
“УТВЕРЖДАЮ”
Заведующий кафедрой САПР,
доктор технических наук, профессор
______________ Ю. А. Шурыгин
______________
ЗАДАНИЕ
по курсовому проектированию по дисциплине “Базы данных” студентам Москвину Анатолию Сергеевичу и Шеховцову Андрею Сергеевичу группа 584
факультет ВС .
1 Тема проекта: Проектирование учебно - исследовательской базы данных:
Информационная служба кадрового агентства
2 Срок сдачи студентами законченной работы 31.05.1997
3 Исходные данные к проекту:
- схема базы данных должна содержать не менее двух отношений;
- использование реляционной СУБД FoxPro 2.0 и выше;
- данные по предметной области.
4. Содержание курсового проекта (перечень подлежащих разработке вопросов):
4.1 Проектирование инфологической модели данных:
- структуризация предметной области;
- представление модели “сущность - связь”;
- сценарий пользовательского интерфейса.
4.2 Проектирование даталогической модели данных:
- проектирование структуры базы данных;
- написание программы обработки и работы с данными:
1) генерация программы меню, реализующей пользовательский интерфейс;
2) режим просмотра и редактирования данных с использованием сгенерированной экранной формы;
3) процедуры поиска данных;
4) возможность получить отчётную форму на принтере.
5 Содержание пояснительной записки:
- введение (способы ведения данных);
- постановка задачи (выбор модели данных);
- обоснование выбора программных средств;
- вопросы проектирования БД (структуры БД, экранные формы);
- описание прикладной программы;
- список использованных источников;
- приложения.
6 Дата выдачи задания: 15.02.97 г.
РУКОВОДИТЕЛЬ преподаватель кафедры САПР
Т. Д. Карминская _____________________________
Задание приняли к исполнению
1 Введение
В настоящее время наблюдается расширение номенклатуры используемых вычислительных средств, а также вовлечение их в новые сферы человеческой деятельности. Происходит рост объёма производства вычислительной техники, повышается её надёжность. Высокими темпами наращиваются масштабы применения современных высокопроизводительных электронно-вычислительных машин всех классов. Создаются многочисленные вычислительные центры коллективного пользования, интегрированные банки данных, сети обработки и передачи информации.
Для обеспечения хранения и обработки данных на компьютерах могут использоваться различные способы. Существует три способа ведения данных:
а) традиционный способ, основанный на файловой системе
ведения данных;
б) организация библиотек
;
в) организация хранения и обработки данных на основе использования концепции баз данных
.
Два последних способа во многом перекликаются между собой, но тем не менее концепция баз данных имеет ряд существенных преимуществ по сравнению с первым и вторым способами, которые несут с собой следующие возможные последствия:
- нерациональное использование вычислительных средств в совокупности с избыточностью данных;
- возможность возникновения противоречий между данными.
Концепция баз данных имеет следующие основные преимущества:
- централизация фонда хранящихся и обрабатываемых данных;
- представление данных в виде, который удобен для пользователя;
- упрощение интерфейса между модулями за счёт стандартизации данных обмена.
Ядром системы, обеспечивающим работу с БД, является система управления базами данных
, использование которой автоматизирует процесс проектирования систем машинной обработки данных.
2 Постановка задачи
По виду связей между данными различаются: иерархическая, сетевая и реляционная модели данных. Любая СУБД поддерживает конкретную модель данных.
В иерархической
модели данных связи между данными имеют древовидную структуру. Каждому узлу (кроме корневого) соответствует один исходный сегмент, и между исходным и порождённым узлом устанавливается только одна связь, поэтому, чтобы отобразить логическую структуру БД, достаточно предусмотреть для каждого узла возможность указания исходного для него сегмента. Связи в таких структурах именовать не требуется. Просмотр иерархической структуры возможен только с корневой вершины. Пропуск узла в иерархическом пути при доступе к заданному узлу данных не допускается.
Сетевая
модель данным при её графическом отображении представляет собой граф типа сеть (откуда и название этого класса моделей). В этих моделях возможны связи “всех со всеми”, по крайней мере теоретически.
В задании на курсовое проектирование для настоящего проекта сказано, что в процессе выполнения задания необходимо использовать СУБД FoxPro. Эта СУБД является реляционной
. Реляционная модель является простейшей и наиболее привычной для человека формой представления данных в виде таблицы.
Достоинством
реляционной модели является сравнительная простота инструментальных средств её поддержки.
Недостатком
- жёсткость структуры данных (невозможность, например, задания строк таблицы произвольной длины) и зависимость скорости работы СУБД от размера БД.
Реляционные модели широко используются при построении БД. Информационными единицами в реляционных моделях являются домены, атрибуты и отношения.
Атрибуты
- элементарные информационные единицы.
Домены
- совокупности однотипных данных, атрибутов.
Отношение
- это двухмерная таблица, наименования граф которой являются наименованиями атрибутов, а значения элементов каждого из столбцов таблицы извлекаются из соответствующих доменов [1].
3 Обоснование выбора программных средств
В задании на курсовое проектирование обусловлено использование СУБД FoxPro. Эта СУБД является реляционной. Реляционные СУБД - это широкая группа программных продуктов. Здесь доминирующее положение занимает семейство dBASE - подобных СУБД, начавшееся с СУБД dBASE II. Эта система оказалась настолько популярной, что многие фирмы позаимствовали её стандарт.
FoxPro - это не только быстрейшая, но и лучшая программа управления базой данных, когда-либо создававшаяся для персональных компьютеров. FoxPro содержит уникальный пользовательский интерфейс, не требующий программирования и процедурный язык.
Со времени ввода FoxBASE в 1983 г. продукты управления базами данных Fox Software последовательно приветствуются национальной прессой, критиками, консультантами и пользователями как наиболее быстрые и легкие в использовании имеющиеся продукты языка базы данных. Эта традиция продолжается FoxPro:
- FoxPro полностью совместима с FoxBASE+ и совместима по языку с dBASE IV;
- FoxPro работает в 8 раз быстрее dBASE IV и в 16 раз быстрее dBASE III PLUS;
- FoxPro имеет очень изящный интерфейс с полной поддержкой мыши;
- FoxPro содержит более 200 расширений языка сверх FoxBASE+ и около 140 сверх dBASE IV;
- FoxPro для MS-DOS работает в минимальной конфигурации 512 КБ PC-XT, выигрывает в скорости, расширенной памяти, расширенных видеорежимах и так далее, во всем, что этот новый механизм может дать.
FoxPro предоставляет фактически все особенности программирования и усовершенствования, которые разработчики предлагали последние несколько лет.
Предназначенный для удовлетворения нужд опытных пользователей, разработчиков программ и новичков одновременно, FoxPro содержит набор мощных утилит разработки с легким в использовании, непрограммируемым интерфейсом.
При выборе программного продукта для реализации данного проекта была выбрана СУБД Microsoft FoxPro для Windows
. Это объясняется тем, что оформление программы в графическом режиме с использованием операционной среды Microsoft Windows обеспечивает работу в удобном виде для пользователя, работа программы более изящна.
4 Вопросы проектирования БД
При проектировании БД в зависимости от уровня семантической или содержательной интерпретируемости используемых данных выделяют две классические модели, каждая их которых имеет свои характерные особенности:
а) даталогическая
модель. Она употребляется при решении задач представления данных внутри БД, в самой вычислительной системе и отражает специфику той Среды, в которой происходит её реализация. Эту модель также можно представить как описание смысловой нагрузки БД на языке описания данных;
б) инфологическая
модель употребляется при рассмотрении задач, имеющих отношение к смысловому содержанию данных. Здесь решаются следующие задачи:
1) ограничение предметной области;
2) назначение существенных связей и атрибутов информации.
4.1 Инфологическое проектирование БД
Для выполнения данного курсового проекта была поставлена задача спроектировать систему работы с данными, предназначенную для последующего использования в кадровом агентстве, и представлены данные по предметной области.
Рассматриваемое кадровое агентство принимает у своих клиентов предложения оказываемых ими услуг по форме, представленной на рисунке 4.1, а также заявки на рис. 4.2.
АНКЕТА
для граждан, предоставляющих услуги
1. Ф.И.О.______________________________________________________________
2. Адрес проживания____________________________________________________
3. Год рождения________________________________________________________
4. Образование_________________________________________________________
|
5. Вид услуг (няня, воспитатель, репетитор)_________________________________
6. Занятость (полная/частичная)___________________________________________
7. Дополнительные услуги (эстетическое, физическое и т.п.)__________________
8. Условия работы (на территории нанимателя, дома, др.)_____________________
9. Условия оплаты (почасовой тариф, оклад, др.)_____________________________
10. Желаемый возраст/пол ребёнка_________________________________________
11. Дополнительные сведения____________________________________________
Рисунок 4.1
ЗАЯВКА №____
на услуги агентства
1. От__________________________________________________________________
2. Адрес проживания____________________________________________________
3. Вид требуемых услуг__________________________________________________
4. Время работы________________________________________________________
|
5. Условия работы_______________________________________________________
|
6. Условия оплаты______________________________________________________
|
7 Дополнительные требования____________________________________________
______________________________________________________________________
“____”_________199__г.
Рисунок 4.2
Проведя структуризацию предметной области по этим данным, можно определить, что необходимо создание схемы отношений, состоящей из двух отношений, которые будут отвечать соответственно за предложения услуг и за заявки на услуги.
Для описания предметной области используют концепцию, основанную на модели “сущность - связь”.
Существуют следующие понятия, характерные для модели “сущность - связь”:
а) тип сущности - множество сущностей, составляющие объекты предметной области и однозначно идентифицированные атрибуты;
б) множество связей - фиксированные зависимости между множеством отношений (они могут быть стандартными), представляющие иерархическую зависимость, преобразованную в отношения.
Связи могут быть межсущностные и межатрибутные. Они определяются информационной значимостью соответствующих атрибутов или сущностей. Поэтому инфологический этап проектирования БД и связан с содержательным аспектом.
На рисунке 4.3 представлена модель “сущность - связь” для разрабатываемой схемы отношений.
Там показано, что связь между Потребителем услуги и тем, кто предлагает услугу осуществляется посредством соответствия аналогичных атрибутов сущностей “Потребитель” и “Услуги”.
Внутри сущностей “Услуги” и “Потредитель” существует межатрибутная связь между “Видом услуг” и “дисциплиной”, по которой эти услуги осуществляются.
Потребитель заказывает Услуги
ФИО Адрес ФИО Адрес
Условия соответ- Условия
работы ствуют работы
Условия соответ- Условия
оплаты ствуют оплаты
Вид услуг соответствует Вид услуг
по по
Дисциплина соответствует Дисциплина
Дополнительные соответ- Дополнительные
требования ствуют сведения
Рисунок 4.3
При разработке сценария пользовательского интерфейса выбор был сделан на организации работы с меню. В задании на проектирование сказано, что необходимо провести генерацию программы меню, реализующей пользовательский интерфейс.
Согласно схеме отношений разрабатываемое меню должно содержать необходимые пункты для работы как с предложениями, так и с заявками на услуги. Причём эти функции, относящиеся к предложениям и заявкам, идентичны друг другу. Согласно задания они должны включать следующие пункты:
- просмотр заявок и предложений;
- поиск заявок и предложений;
- составление отчёта по заявкам и предложениям;
- составление выборочного отчёта по заявкам и предложениям;
- ввод новых заявок и предложений.
Поэтому при разработке сценария пользовательского интерфейса была составлена следующая структура меню программы:
Заявки Предложения Выход
Просмотр заявок Просмотр предложений
Поиск заявок Поиск предложений
Полный отчёт Полный отчёт
Отчёт по условию Отчёт по условию
Ввод новых заявок Ввод новых предложений
Рисунок 4.4
Кроме структуры меню в пользовательском интерфейсе также были разработаны образы различных экранных форм, соответствующие результатам структуризации предметной области. Детальная их реализация будет проводиться на этапе даталогического проектирования.
4.2 Даталогическое проектирование БД
Даталогический этап проектирования БД - это этап, включающий вопросы реализации модели данных в конкретной программной системе, а также физического и логического проектирования.
Этот этап содержит в себе две задачи:
а) решение вопросов представления данных в памяти вычислительных систем;
б) написание программы манипулирования данными в конкретной системе.
Для обеспечения хранения необходимой информации БД “Предложения” имеет следующую структуру:
Таблица 4.1
Имя поля |
Тип поля |
Ширина |
Дробные разряды |
Начало |
Конец |
1 FIO |
Character |
15 |
0 |
1 |
15 |
2 TOWN |
Character |
8 |
0 |
16 |
23 |
3 STREET |
Character |
20 |
0 |
24 |
43 |
4 HOUSE |
Character |
3 |
0 |
44 |
46 |
5 FLAT |
Character |
3 |
0 |
47 |
49 |
6 PHONE |
Character |
8 |
0 |
50 |
57 |
7 BIRTH |
Date |
8 |
0 |
58 |
65 |
8 EDUCATION |
Character |
15 |
0 |
66 |
80 |
|
|||||
9 STAG |
Character |
2 |
0 |
81 |
82 |
10 KIND |
Character |
12 |
0 |
83 |
94 |
11 DISCIPLINE |
Character |
15 |
0 |
95 |
109 |
12 ZANYATOST |
Character |
10 |
0 |
110 |
119 |
13 DOP_USLUG |
Character |
15 |
0 |
120 |
134 |
14 USLOV_RAB |
Character |
15 |
0 |
135 |
149 |
15 USLOV_OPL |
Character |
10 |
0 |
150 |
159 |
16 OKLAD |
Numeric |
15 |
0 |
160 |
174 |
17 AGE_MIN |
Numeric |
2 |
0 |
175 |
176 |
18 AGE_MAX |
Numeric |
2 |
0 |
177 |
178 |
19 SEX |
Character |
3 |
0 |
179 |
181 |
20 DOP_SVED |
Memo |
10 |
0 |
182 |
191 |
А БД “Заявки” имеет такую структуру:
Таблица 4.2
Имя поля |
Тип поля |
Ширина |
Дробные разряды |
Начало |
Конец |
1 NUMBER |
Numeric |
5 |
0 |
1 |
5 |
2 FIO |
Character |
15 |
0 |
6 |
20 |
3 TOWN |
Character |
8 |
0 |
21 |
28 |
4 STREET |
Character |
20 |
0 |
29 |
48 |
5 HOUSE |
Character |
3 |
0 |
49 |
51 |
6 FLAT |
Character |
3 |
0 |
52 |
54 |
7 PHONE |
Character |
8 |
0 |
55 |
62 |
8 KIND |
Character |
12 |
0 |
63 |
74 |
9 DISCIPLINE |
Character |
15 |
0 |
75 |
89 |
10 TIME |
Character |
25 |
0 |
90 |
114 |
11 USLOV_RAB |
Character |
15 |
0 |
115 |
129 |
12 USLOV_OPL |
Character |
10 |
0 |
130 |
139 |
13 OKLAD |
Numeric |
10 |
0 |
140 |
149 |
14 DATE |
Date |
8 |
0 |
150 |
157 |
15 DOP_SVED |
Memo |
10 |
0 |
158 |
167 |
Размеры всех полей структур БД подобраны таким образом, чтобы они включали в себя максимально возможные по длине значения, соответствующие назначению этих полей.
Некоторые атрибуты из схемы “сущность - связь” в структурах БД разбиты на два поля, например атрибут “Условия оплаты” разбит на два поля структуры БД: “USLOV_OPL” и “OKLAD”. Так принято в связи с тем, что при заполнении анкеты заказчик может в одной графе указать и условия оплаты (помесячный, почасовой оклад и так далее) и размер оклада. В БД эту информацию лучше хранить отдельно, так как условия оплаты выражаются в форме символьной строки, а размер оклада - в числовой форме, а согласно реляционной теории, в одном поле БД могут находиться только данные, имеющие один и тот же тип.
На этапе даталогического проектирования БД были построены следующие экранные формы:
- экранная форма ввода новых предложений изображена на рисунке 4.5;
Рисунок 4.5
- экранная форма ввода новых заявок изображена на рисунке 4.6;
Рисунок 4.6
- экранная форма просмотра предложений изображена на рисунке 4.7;
Рисунок 4.7
- экранная форма просмотра заявок изображена на рисунке 4.8;
Рисунок 4.8
- экранная форма условий поиска предложений изображена на рисунке 4.9;
Рисунок 4.9
- экранная форма условий поиска заявок изображена на рисунке 4.10.
Рисунок 4.10
5 Описание прикладной программы
Программа управления и обработки данных (далее - программа) в разработанной схеме отношений написана на входном языке СУБД FoxPro с использованием предоставляемых средств генератора меню, генератора экранов и генератора отчётов.
Древообразная структура вызова программных файлов и содержащихся в них процедур при работе программы представлена на рисунке А.1.
При запуске головного файла Kurs.PRG, листинг которого приведён в приложении Б, происходит инициализация переменных программы и запуск программного файла Mmm.MPR, полученного с помощью генератора меню, листинг которого показан в приложении В.
При этом в верхней строке окна FoxPro появляется строка сгенерированного меню. Структура меню программы имеет вид, изображённый на рисунке 4.1.
При выборе пункта меню “Выход” происходит инициализация в строке меню системного меню по умолчанию и завершение работы программы.
Далее изложение принципов работы программы будет вестись применительно к БД “Предложения”, так как работа со второй БД “Заявки” осуществляется полностью аналогично.
При выборе пункта меню “Просмотр предложений” активизируется файл Seepredl.SPR, полученный с помощью генератора экранов, листинг которого приведён в приложении Г (листинг файла Seezayav.SPR - в приложении Д). Этот файл представляет собой экранную форму, предназначенную для просмотра записей БД “Предложения”.
В экранной форме имеются объекты для просмотра (и/или редактирования) полей БД, четыре кнопки для движения по записям БД и кнопка “Выход”. При некорректных инструкциях по движению в БД на экран выдаётся соответствующее сообщение.
При выборе пункта меню “Поиск предложений” активизируется файл Finpredl.SPR, полученный с помощью генератора экранов, листинг которого приведён в приложении Е (листинг файла Finzayav.SPR - в приложении Ж). Этот файл представляет собой экранную форму, предназначенную для ввода значений полей БД, по которым будет осуществляться поиск. Поиск производится методом использования инструкции
SET FILTER TO <условие> c условием, определённым введёнными значениями полей в экранной форме Finpredl.SPR. Причём те поля, значения которых не модифицировались, то есть у которых длина равна нулю, в условии поиска участия не принимают.
Полный отчёт. Этот пункт меню предназначен для формирования отчётной формы по БД. При его выборе происходит генерация отчёта, в который включаются все имеющиеся в БД на данный момент записи. Вывод отчёта происходит на принтер с параллельным его выводом на экран (чтобы удостовериться, что отчёт сгенерирован), после чего выдаётся сообщение
«Вывод отчётной формы на принтер произведён» и происходит очистка экрана. В отчётную форму включены все основные поля БД. Примеры отчётных форм по двум БД содержатся в приложении И и в приложении К.
Отчёт по условию. Действия при выборе этого пункта меню отличаются от предыдущего тем, что вначале активизируется файл Finpredl.SPR для установления условия, по которому будет производиться отбор записей для их включения в отчётную форму по БД. Если таких записей (удовлетворяющих введённому условию) в БД нет, то выдаётся соответствующее сообщение.
При выборе пункта меню “Ввод новых предложений” запускается файл Predl.SPR, листинг которого приведён в приложении Л (Zayav.SPR - в приложении М). Этот файл представляет собой экранную форму, предназначенную для ввода информации в БД “Предложения”. Она во многом сходна с экранной формой Seepredl.SPR, но здесь есть всего две кнопки: “Ok” и “Отмена”, предназначенные соответственно для записи введённой информации в Б
Перечисленные пункты меню “Предложения” практически полностью идентичны соответствующим пунктам меню “Заявки”, также тождественны между собой и действия, соответствующие этим пунктам меню.
6 Заключение
По результатам проделанной в процессе выполнения данного курсового проекта работы можно сделать следующие выводы по СУБД FoxPro. Пакет FoxPro:
- легок в использовании, таков, что даже начинающие пользователи могут работать с ним;
- обладает тонкими программными особенностями достаточной глубины и мощности, чтобы удовлетворить наиболее требовательных пользователей;
- предоставляет красивый оконный интерфейс с изящностью и доступностью графического продукта, простой, прекрасно реагирующий и очень быстрый;
- работает на небольших, очень экономичных конфигурациях аппаратного обеспечения без потери функциональности, а еще лучше - на больших, наиболее мощных конфигурациях аппаратного обеспечения;
- имеющий встроенный текстовый редактор, более мощный, чем большинство обычных систем подготовки текстов;
- работающий хорошо со всеми существующими программами в стандарте dBASE - в первый раз, каждый раз, без исключений;
- дающий доступ к тысячам прежде написанных программ;
- имеет средства отладки программ ;
- позволяет пересылать прикладные программы в неизменном виде на множестве различных платформ;
- позволяет переопределить горячие клавиши клавиатуры в соответствии с требованиями;
- имеющий встроенный редактор отчетов, который легче в использовании и более мощный, чем автономные редакторы;
- снабжен автоматической прозрачной поддержкой мыши, работающий одинаково хорошо (но, конечно, менее удобно) и без мыши;
- позволяет пользователю поддерживать большие количества данных, сотни тысяч и даже миллионы записей.
Поставленная задача была решена с максимально возможной полнотой. Результаты работы рекомендуется использовать для ведения БД в кадровом агентстве. Значимость использования СУБД определяется быстротой обработки данных на ЭВМ, меньшей вероятностью возникновения ошибок нежели при обработке вручную, более мощными ресурсами для хранения информации и так далее.
Список использованных источников
1 Диго С. М. Проектирование баз данных.- М.: Финансы и статистика, 1988.- 216 с.: ил.
2 Попов А. А. Программирование в среде СУБД FoxPro 2.0. Построение систем обработки данных.- М.: Радио и связь, К.:ТОО “ВЕК”, 1995.- 352 с.: ил.
3 Дейт Введение в системы баз данных. — М.: Наука, 1980.-350 с.: ил.
4 Куправа Т. А. Создание и программирование баз данных средствами СУБД. — М.: Мир, 1980. — 230 с.: ил.
Приложение А
(справочное)
KURS.PRG
PREDL.DBF (БД/dbf)
ZAYAV.DBF (БД/dbf)
MMM.MPR
SEEZAYAV.SPR
_RKG0NR9RC() (функция в SEEZAYAV.SPR)
_RKG0NR9YL() (функция в SEEZAYAV.SPR)
_RKN159U3J (процедура в MMM.MPR)
FINZAYAV.SPR
_RKN13YACZ() (функция в FINZAYAV.SPR)
SEEZAYAV.SPR...
_RKN159U40 (процедура в MMM.MPR)
_RKN159U4G (процедура в MMM.MPR)
FINZAYAV.SPR...
_RKN159U4V (процедура в MMM.MPR)
ZAYAV.SPR
_RKG0MPASO() (функция в ZAYAV.SPR)
SEEPREDL.SPR
_RKG0M4464() (функция в SEEPREDL.SPR)
_RKG0M44C6() (функция в SEEPREDL.SPR)
_RKN159U6L (процедура в MMM.MPR)
FINPREDL.SPR
_RKN13Z2H5() (функция в FINPREDL.SPR)
SEEPREDL.SPR...
_RKN159U71 (процедура в MMM.MPR)
_RKN159U7H (процедура в MMM.MPR)
FINPREDL.SPR...
_RKN159U7Y (процедура в MMM.MPR)
PREDL.SPR
_RKG0MO7XF() (функция в PREDL.SPR)
Рисунок А.1 - Древообразная структура запуска файлов, процедур и функций Приложение Б
(обязательное)
Листинг файла Kurs.PRG
*:*****************************************************************************
*:
*: Program: C:FOXPROWKURS.PRG
*: System: Система для кадрового агентства
*: Author: А. С. Москвин и А. С. Шеховцов
*: Last modified: 16/05/97 at 19:18:18
*:
*: Calls: MMM.MPR
*:
*: Uses: PREDL.DBF
*: : ZAYAV.DBF
*:
*: Documented 20:20:45 FoxDoc version 3.00a
*:*****************************************************************************
PUBLIC ed
PUBLIC ku
PUBLIC di
PUBLIC DO
PUBLIC ur
PUBLIC uo
PUBLIC ok
PUBLIC ag
SELECT 1
USE predl
SELECT 2
USE zayav
DO mmm.mpr
Приложение В
(обязательное)
Листинг файла Mmm.MPR
*********************************************************
* Menu Definition
*********************************************************
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _rkp12z3kz OF _MSYSMENU PROMPT "Заявки" COLOR SCHEME 3
DEFINE PAD _rkp12z3mj OF _MSYSMENU PROMPT "Предложения" COLOR SCHEME 3
DEFINE PAD _rkp12z3mn OF _MSYSMENU PROMPT "Выход" COLOR SCHEME 3
ON PAD _rkp12z3kz OF _MSYSMENU ACTIVATE POPUP заявки
ON PAD _rkp12z3mj OF _MSYSMENU ACTIVATE POPUP предложени
ON SELECTION PAD _rkp12z3mn OF _MSYSMENU set sysmenu to default
DEFINE POPUP заявки MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF заявки PROMPT "Просмотр заявок"
DEFINE BAR 2 OF заявки PROMPT "Поиск заявок"
DEFINE BAR 3 OF заявки PROMPT "Полный отчёт"
DEFINE BAR 4 OF заявки PROMPT "Отчёт по условию"
DEFINE BAR 5 OF заявки PROMPT "Ввод новых заявок"
ON SELECTION BAR 1 OF заявки do seezayav.spr
ON SELECTION BAR 2 OF заявки ;
DO _rkp12z3pz ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
ON SELECTION BAR 3 OF заявки ;
DO _rkp12z3tg ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
ON SELECTION BAR 4 OF заявки ;
DO _rkp12z3ty ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
ON SELECTION BAR 5 OF заявки ;
DO _rkp12z3ud ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
DEFINE POPUP предложени MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF предложени PROMPT "Просмотр предложений"
DEFINE BAR 2 OF предложени PROMPT "Поиск предложений"
DEFINE BAR 3 OF предложени PROMPT "Полный отчёт"
DEFINE BAR 4 OF предложени PROMPT "Отчёт по условию"
DEFINE BAR 5 OF предложени PROMPT "Ввод новых предложений"
ON SELECTION BAR 1 OF предложени do seepredl.spr
ON SELECTION BAR 2 OF предложени ;
DO _rkp12z3w4 ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
ON SELECTION BAR 3 OF предложени ;
DO _rkp12z3wk ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
ON SELECTION BAR 4 OF предложени ;
DO _rkp12z3x0 ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
ON SELECTION BAR 5 OF предложени ;
DO _rkp12z3xg ;
IN LOCFILE("FOXPROWMMM" ,"MPX;MPR|FXP;PRG" ,"Where is MMM?")
*********************************************************
* _RKP12Z3PZ ON SELECTION BAR 2 OF POPUP заявки
* Procedure Origin:
* From Menu: MMM.MPR, Record: 6
Called By: ON SELECTION BAR 2 OF POPUP заявки
* Prompt: Поиск
заявок
* Snippet: 1
*********************************************************
PROCEDURE _rkp12z3pz
ku=""
ur=""
uo=""
ok=0
DO finzayav.spr
DO seezayav.spr
SET FILTER TO
GO TOP
*********************************************************
* _RKP12Z3TG ON SELECTION BAR 3 OF POPUP заявки
* Procedure Origin:
* From Menu: MMM.MPR, Record: 7
* Called By: ON SELECTION BAR 3 OF POPUP заявки
* Prompt: Полный
отчёт
* Snippet: 2
*********************************************************
PROCEDURE _rkp12z3tg
SELECT 2
REPORT FORMAT zayav TO PRINTER
WAIT WINDOW "Вывод отчётной формы на принтер произведён."
CLEA
*********************************************************
* _RKP12Z3TY ON SELECTION BAR 4 OF POPUP заявки
* Procedure Origin:
* From Menu: MMM.MPR, Record: 8
* Called By: ON SELECTION BAR 4 OF POPUP заявки
* Prompt: Отчёт по условию
* Snippet: 3
*********************************************************
PROCEDURE _rkp12z3ty
SELECT 2
DO finzayav.spr
REPORT FORMAT zayav TO PRINTER
WAIT WINDOW "Вывод отчётной формы на принтер произведён."
CLEA
SET FILTER TO
GO TOP
*********************************************************
* _RKP12Z3UD ON SELECTION BAR 5 OF POPUP заявки
* Procedure Origin:
* From Menu: MMM.MPR, Record: 9
* Called By: ON SELECTION BAR 5 OF POPUP заявки
* Prompt: Ввод новых заявок
* Snippet: 4
*********************************************************
PROCEDURE _rkp12z3ud
SELECT 2
APPEND BLANK
GO BOTTOM
DO zayav.spr
*********************************************************
* _RKP12Z3W4 ON SELECTION BAR 2 OF POPUP предложени
* Procedure Origin:
* From Menu: MMM.MPR, Record: 13
* Called By: ON SELECTION BAR 2 OF POPUP предложени
* Prompt: Поиск предложений
* Snippet: 5
*********************************************************
PROCEDURE _rkp12z3w4
ed=""
ku=""
di=""
DO=""
ur=""
uo=""
ok=0
ag=0
DO finpredl.spr
DO seepredl.spr
SET FILTER TO
GO TOP
*********************************************************
* _RKP12Z3WK ON SELECTION BAR 3 OF POPUP предложени
* Procedure Origin:
* From Menu: MMM.MPR, Record: 14
* Called By: ON SELECTION BAR 3 OF POPUP предложени
* Prompt: Полный отчёт
* Snippet: 6
*********************************************************
PROCEDURE _rkp12z3wk
SELECT 1
REPORT FORMAT predl TO PRINTER
WAIT WINDOW "Вывод отчётной формы на принтер произведён."
CLEA
*********************************************************
* _RKP12Z3X0 ON SELECTION BAR 4 OF POPUP предложени
* Procedure Origin:
* From Menu: MMM.MPR, Record: 15
* Called By: ON SELECTION BAR 4 OF POPUP предложени
* Prompt: Отчёт по условию
* Snippet: 7
*********************************************************
PROCEDURE _rkp12z3x0
SELECT 1
DO finpredl.spr
REPORT FORMAT predl TO PRINTER
WAIT WINDOW "Вывод отчётной формы на принтер произведён."
CLEA
SET FILTER TO
GO TOP
*********************************************************
* _RKP12Z3XG ON SELECTION BAR 5 OF POPUP предложени
* Procedure Origin:
* From Menu: MMM.MPR, Record: 16
* Called By: ON SELECTION BAR 5 OF POPUP предложени
* Prompt: Ввод новых предложений
* Snippet: 8
*********************************************************
PROCEDURE _rkp12z3xg
SELECT 1
APPEND BLANK
GO BOTTOM
DO predl.spr
Приложение Г
(обязательное)
Листинг файла Seepredl.SPR
* *********************************************************
* * 18/05/97 SEEPREDL.SPR 18:05:46
* *********************************************************
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstat
IF SET("TALK") = "ON"
SET TALK OFF
m.talkstat = "ON"
ELSE
m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUS
m.rborder = SET("READBORDER")
SET READBORDER ON
* *********************************************************
* * SEEPREDL/Windows Databases, Indexes, Relations
* *********************************************************
IF USED("predl")
SELECT predl
SET ORDER TO 0
ELSE
SELECT 0
USE (LOCFILE("predl.dbf","DBF","Where is predl?"));
AGAIN ALIAS predl ;
ORDER 0
ENDIF
IF USED("zayav")
SELECT zayav
SET ORDER TO 0
ELSE
SELECT 0
USE (LOCFILE("zayav.dbf","DBF","Where is zayav?"));
AGAIN ALIAS zayav ;
ORDER 0
ENDIF
SELECT predl
* *********************************************************
* * Windows Window definitions
* *********************************************************
IF NOT WEXIST("spredl") ;
OR UPPER(WTITLE("SPREDL")) == "SPREDL.PJX" ;
OR UPPER(WTITLE("SPREDL")) == "SPREDL.SCX" ;
OR UPPER(WTITLE("SPREDL")) == "SPREDL.MNX" ;
OR UPPER(WTITLE("SPREDL")) == "SPREDL.PRG" ;
OR UPPER(WTITLE("SPREDL")) == "SPREDL.FRX" ;
OR UPPER(WTITLE("SPREDL")) == "SPREDL.QPR"
DEFINE WINDOW spredl ;
AT 0.000, 0.000 ;
SIZE 30.385,92.400 ;
TITLE "АНКЕТА" ;
FONT "MS Sans Serif", 8 ;
FLOAT ;
NOCLOSE ;
MINIMIZE ;
SYSTEM
MOVE WINDOW spredl CENTER
ENDIF
* *********************************************************
* * SEEPREDL/Windows Screen Layout
* *********************************************************
#REGION 1
IF WVISIBLE("spredl")
ACTIVATE WINDOW spredl SAME
ELSE
ACTIVATE WINDOW spredl NOSHOW
ENDIF
@ 27.231,1.400 TO 30.231,91.000 ;
PATTERN 1 ;
PEN 2, 8 ;
STYLE "T" ;
COLOR RGB(255,0,255,255,255,0)
@ 0.000,17.200 SAY "для граждан, предоставляющих услуги." ;
PICTURE "@I" FONT "Courier New Cyr", 10 STYLE "IT"
@ 3.000,1.600 SAY "Фамилия, инициалы........................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 5.692,2.400 SAY "Адрес: город" FONT "Arial Cyr", 8 STYLE "IT"
@ 5.538,40.600 SAY "ул." FONT "Arial Cyr", 8 STYLE "IT"
@ 5.615,63.400 SAY "дом" FONT "Arial Cyr", 8 STYLE "IT"
@ 5.615,78.200 SAY "кв." FONT "Arial Cyr", 8 STYLE "IT"
@ 4.231,2.200 SAY "Дата рождения..............................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 7.077,2.400 SAY "Образование...................................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 10.231,2.400 SAY "Вид услуг (няня, воспитатель, репетитор).............................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 8.692,2.400 SAY "Стаж в сфере гувернёрства........................................................" ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 13.077,2.800 SAY "Занятость (полная / частичная)................................................" ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 14.615,3.000 SAY "Дополнительные услуги..............................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 11.692,2.800 SAY "Дисциплина обучения...................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 16.077,3.000 SAY "Условия работы (территория)..................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 17.615,2.600 SAY "Условия оплаты (почасовая, оклад, др.)....................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 20.692,2.400 SAY "Возраст ребёнка..........................................................................с" ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 20.615,78.000 SAY "до" FONT "Arial Cyr", 8 STYLE "IT"
@ 19.231,2.800 SAY "Требуемый размер тарифа оплаты..........................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 2.692,66.800 EDIT Predl.fio
SIZE 1.000,23.400,15.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
SCROLL ;
COLOR ,RGB(,,,255,255,255)
@ 4.077,67.000 GET Predl.birth ;
SIZE 1.000,22.600 ;
DEFAULT { / / } ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
PICTURE "@E" ;
COLOR ,RGB(,,,255,255,255)
@ 5.615,21.600 EDIT Predl.town ;
SIZE 1.000,17.000,0.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
SCROLL ;
COLOR ,RGB(,,,255,255,255)
@ 5.538,44.600 EDIT Predl.street ;
SIZE 1.000,16.400,12.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
SCROLL ;
COLOR ,RGB(,,,255,255,255)
@ 5.538,69.000 EDIT Predl.house ;
SIZE 1.000,7.600,3.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 5.538,81.600 EDIT Predl.flat ;
SIZE 1.000,8.600,3.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 7.000,67.400 EDIT Predl.education ;
SIZE 1.000,22.800,15.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
SCROLL ;
COLOR ,RGB(,,,255,255,255)
@ 8.538,67.400 EDIT Predl.stag ;
SIZE 1.000,22.800,2.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 10.000,67.600 EDIT Predl.kind ;
SIZE 1.000,22.600,12.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 11.385,67.600 EDIT Predl.discipline ;
SIZE 1.000,22.600,15.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 12.846,67.600 EDIT Predl.zanyatost ;
SIZE 1.000,22.600,10.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 14.308,67.800 EDIT Predl.dop_uslug ;
SIZE 1.000,22.400,15.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 15.846,67.800 EDIT Predl.uslov_rab ;
SIZE 1.000,22.400,15.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 17.538,68.000 EDIT Predl.uslov_opl ;
SIZE 1.000,22.200,10.000 ;
DEFAULT " " ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 19.154,67.800 GET Predl.oklad ;
SIZE 1.000,21.800 ;
DEFAULT 0 ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 20.615,67.800 GET Predl.age_min ;
SIZE 1.000,8.000 ;
DEFAULT 0 ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 20.615,82.000 GET Predl.age_max ;
SIZE 1.000,7.600 ;
DEFAULT 0 ;
FONT "Arial Cyr", 8 ;
STYLE "I" ;
COLOR ,RGB(,,,255,255,255)
@ 22.077,2.800 SAY "Пол ребёнка....................................................................................." ;
FONT "Arial Cyr", 8 ;
STYLE "IT"
@ 24.769,3.200 EDIT Predl.dop_sved ;
SIZE 2.000,86.800,0.000 DEFAULT " " FONT "MS Sans Serif", 8 SCROLL ;
COLOR ,RGB(,,,255,255,255)
@ 23.385,3.000 SAY "Дополнительные сведения:" ;
FONT "Arial Cyr", 8 ;
STYLE "IT"
@ 27.615,11.400 GET ACT3 ;
PICTURE "@*HN Начало;Назад;Вперёд;Конец;Выход" ;
SIZE 2.385,10.000,2.000 ;
DEFAULT 1 ;
FONT "MS Sans Serif", 8 ;
STYLE "B" ;
VALID _rkp12scvj()
@ 1.538,1.600 SAY "Номер текущей записи..................................................................." ;
FONT "Arial Cyr", 8 ;
STYLE "IT"
@ 1.308,66.800 SAY STR(recno(),4)+" из "+str(reccount(),4) ;
SIZE 1.000,22.800 FONT "Arial Cyr", 8 STYLE "I" PICTURE "@TJ" COLOR RGB(,,,255,255,255)
IF NOT WVISIBLE("spredl")
ACTIVATE WINDOW spredl
ENDIF
READ CYCLE ;
SHOW _rkp12sd64()
RELEASE WINDOW spredl
#REGION 0
SET READBORDER &rborder
IF m.talkstat = "ON"
SET TALK ON
ENDIF
IF m.compstat = "ON"
SET COMPATIBLE ON
ENDIF
* *********************************************************
* * _RKP12SCVJ ACT3 VALID
* *********************************************************
FUNCTION _rkp12scvj && ACT3 VALID
#REGION 1
DO CASE
CASE act3 = 1
GO TOP
CASE act3 = 2
IF !BOF()
SKIP -1
ENDIF
IF BOF()
WAIT WINDOW "Достигнуто начало файла" NOWAIT
GO TOP
ENDIF
CASE act3 = 3
IF !EOF()
SKIP 1
ENDIF
IF EOF()
WAIT WINDOW "Достигнут конец файла" NOWAIT
GOTO BOTTOM
ENDIF
CASE act3 = 4
GO BOTTOM
CASE act3 = 5
CLEAR READ
ENDCASE
SHOW GETS
* *********************************************************
* * _RKP12SD64 Read Level Show
* *********************************************************
FUNCTION _rkp12sd64 && Read Level Show
PRIVATE currwind
STORE WOUTPUT() TO currwind
* Show Code from screen: SEEPREDL
#REGION 1
IF SYS(2016) = "SPREDL" OR SYS(2016) = "*"
ACTIVATE WINDOW spredl SAME
@ 1.308,66.800 SAY STR(recno(),4)+" из "+str(reccount(),4) ;
SIZE 1.000,22.800, 0.000 FONT "Arial Cyr", 8 STYLE "I" PICTURE "@TJ" ;
COLOR RGB(,,,255,255,255)
ENDIF
IF NOT EMPTY(currwind)
ACTIVATE WINDOW (currwind) SAME
ENDIF
Приложение
Д
(обязательное)
Листинг файла Seezayav.SPR
* *********************************************************
* * 09/05/97 SEEZAYAV.SPR 11:05:01
* *********************************************************
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstat
IF SET("TALK") = "ON"
SET TALK OFF
m.talkstat = "ON"
ELSE
m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUS
m.rborder = SET("READBORDER")
SET READBORDER ON
* *********************************************************
* * SEEZAYAV/Windows Databases, Indexes, Relations
* *********************************************************
IF USED("predl")
SELECT predl
SET ORDER TO 0
ELSE
SELECT 0
USE (LOCFILE("predl.dbf","DBF","Where is predl?"));
AGAIN ALIAS predl ;
ORDER 0
ENDIF
IF USED("zayav")
SELECT zayav
SET ORDER TO 0
ELSE
SELECT 0
USE (LOCFILE("zayav.dbf","DBF","Where is zayav?"));
AGAIN ALIAS zayav ;
ORDER 0
ENDIF
SELECT predl
* *********************************************************
* * Windows Window definitions
* *********************************************************
IF NOT WEXIST("zayav") ;
OR UPPER(WTITLE("ZAYAV")) == "ZAYAV.PJX" ;
OR UPPER(WTITLE("ZAYAV")) == "ZAYAV.SCX" ;
OR UPPER(WTITLE("ZAYAV")) == "ZAYAV.MNX" ;
OR UPPER(WTITLE("ZAYAV")) == "ZAYAV.PRG" ;
OR UPPER(WTITLE("ZAYAV")) == "ZAYAV.FRX" ;
OR UPPER(WTITLE("ZAYAV")) == "ZAYAV.QPR"
DEFINE WINDOW zayav AT 4.667, 0.000 SIZE 24.692,91.400 ;
TITLE "ЗАЯВКА НА УСЛУГИ АГЕНТСТВА" ;
FONT "MS Sans Serif", 8 FLOAT NOCLOSE MINIMIZE SYSTEM
MOVE WINDOW zayav CENTER
ENDIF
* *********************************************************
* * SEEZAYAV/Windows Screen Layout
* *********************************************************
#REGION 1
IF WVISIBLE("zayav")
ACTIVATE WINDOW zayav SAME
ELSE
ACTIVATE WINDOW zayav NOSHOW
ENDIF
@ 3.923,0.400 SAY "Фамилия, инициалы........................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 5.308,0.800 SAY "Адрес: город" FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 5.154,39.000 SAY "ул." FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 5.231,61.800 SAY "дом" FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 5.231,76.600 SAY "кв." FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 8.000,1.200 SAY "Вид услуг (няня, воспитатель, репетитор).............................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 10.923,1.600 SAY "Время работы................................................................................" ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 9.385,1.000 SAY "Дисциплина обучения....................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 12.308,1.800 SAY "Условия работы (территория)..................................................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 13.538,1.400 SAY "Условия оплаты (почасовая, оклад, др.)....................................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 16.462,1.000 SAY "Дата заполнения............................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 15.000,1.600 SAY "Требуемый размер тарифа оплаты............................................" ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 3.615,66.000 EDIT zayav.fio SIZE 1.000,23.600,15.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" SCROLL COLOR ,RGB(,,,255,255,255)
@ 5.231,20.000 EDIT zayav.town SIZE 1.000,17.000,0.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" SCROLL COLOR ,RGB(,,,255,255,255)
@ 5.154,43.000 EDIT zayav.street SIZE 1.000,17.800,20.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" SCROLL COLOR ,RGB(,,,255,255,255)
@ 5.154,67.400 EDIT zayav.house SIZE 1.000,7.600,3.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 5.154,80.400 EDIT zayav.flat SIZE 1.000,9.200,3.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 7.923,66.800 EDIT zayav.kind SIZE 1.000,22.800,12.000 ;
DEFAULT " " FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 9.308,66.800 EDIT zayav.discipline SIZE 1.000,22.800,15.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 10.692,66.800 EDIT zayav.time SIZE 1.000,22.800,25.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 12.077,66.800 EDIT zayav.uslov_rab SIZE 1.000,22.800,15.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 13.462,66.800 EDIT zayav.uslov_opl SIZE 1.000,22.800,10.000 DEFAULT " " ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 14.923,66.800 GET zayav.oklad SIZE 1.000,22.200 DEFAULT 0 ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 16.385,66.800 GET zayav.date SIZE 1.000,22.200 DEFAULT { / / } ;
FONT "Arial Cyr", 8 STYLE "I" COLOR ,RGB(,,,255,255,255)
@ 0.308,38.200 SAY "№" FONT "Times New Roman Cyr", 8 STYLE "T" COLOR RGB(,,,255,255,255)
@ 0.308,41.600 SAY zayav.number SIZE 1.000,11.000 FONT "MS Sans Serif", 8 COLOR RGB(,,,255,255,255)
@ 6.692,1.000 SAY "Контактный телефон...................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT" COLOR RGB(,,,255,255,255)
@ 6.538,66.600 EDIT zayav.phone SIZE 1.000,23.000,8.000 DEFAULT " " ;
FONT "Arial Cyr", 8 COLOR ,RGB(,,,255,255,255)
@ 18.923,1.200 EDIT zayav.dop_sved SIZE 2.000,88.200,0.000 DEFAULT " " ;
FONT "MS Sans Serif", 8 SCROLL COLOR ,RGB(,,,255,255,255)
@ 17.769,1.200 SAY "Дополнительные сведения:" FONT "Arial Cyr", 8 STYLE "IT"
@ 2.385,0.800 SAY "Номер текущей записи..................................................................." ;
FONT "Arial Cyr", 8 STYLE "IT"
@ 2.231,66.000 SAY STR(RECNO(),4)+" из "+STR(RECCOUNT(),4) SIZE 1.000,23.200 FONT "Arial Cyr", 8 ;
STYLE "I" PICTURE "@TJ" COLOR RGB(,,,255,255,255)
@ 21.462,0.600 TO 24.539,90.200 PATTERN 1 PEN 2, 8 STYLE "T" COLOR RGB(255,0,255,255,255,0)
@ 21.846,10.600 GET act3 PICTURE "@*HN Начало;Назад;Вперёд;Конец;Выход" SIZE 2.385,10.000,2.000 ;
DEFAULT 1 FONT "MS Sans Serif", 8 STYLE "B" VALID _rkg0nr9rc()
IF NOT WVISIBLE("zayav")
ACTIVATE WINDOW zayav
ENDIF
READ CYCLE ;
SHOW _rkg0nr9yl()
RELEASE WINDOW zayav
#REGION 0
SET readborder &rborder
IF m.talkstat = "ON"
SET TALK ON
ENDIF
IF m.compstat = "ON"
SET COMPATIBLE ON
ENDIF
* *********************************************************
* * _RKG0NR9RC ACT3 VALID
*!*****************************************************************************
*! Function: _RKG0NR9RC
*! Called by: SEEZAYAV.SPR
*!****************************************************************************
FUNCTION _rkg0nr9rc && ACT3 VALID
#REGION 1
SELECT 2
DO CASE
CASE act3 = 1
GO TOP
CASE act3 = 2
IF !BOF()
SKIP -1
ENDIF
IF BOF()
WAIT WINDOW "Достигнуто начало файла" NOWAIT
GOTO TOP
ENDIF
CASE act3 = 3
IF !EOF()
SKIP 1
ENDIF
IF EOF()
WAIT WINDOW "Достигнут конец файла" NOWAIT
GOTO BOTTOM
ENDIF
CASE act3 = 4
GO BOTTOM
CASE act3 = 5
bailout = .T.
CLEAR READ
ENDCASE
SHOW GETS
* *********************************************************
* * _RKG0NR9YL Read Level Show
* * Called By: READ Statement
* * Snippet Number: 2
* *********************************************************
*!*****************************************************************************
*! Function: _RKG0NR9YL
*! Called by: SEEZAYAV.SPR
*!*****************************************************************************
FUNCTION _rkg0nr9yl && Read Level Show
PRIVATE currwind
STORE WOUTPUT() TO currwind
* Show Code from screen: SEEZAYAV
#REGION 1
IF SYS(2016) = "ZAYAV" OR SYS(2016) = "*"
ACTIVATE WINDOW zayav SAME
@ 0.308,41.600 SAY zayav.number SIZE 1.000,11.000, 0.000 FONT "MS Sans Serif", 8 ;
COLOR RGB(,,,255,255,255)
@ 2.231,66.000 SAY STR(RECNO(),4)+" из "+STR(RECCOUNT(),4) ;
SIZE 1.000,23.200, 0.000 FONT "Arial Cyr", 8 STYLE "I" PICTURE "@TJ" COLOR RGB(,,,255,255,255)
ENDIF
IF NOT EMPTY(currwind)
ACTIVATE WINDOW (currwind) SAME
ENDIF
*: EOF: SEEZAYAV.SPR
Ввиду однотипности технологии разработки экранных форм, листинги остальных файлов экранных форм (файлы с расширением .spr не приводятся).
ВАРИАНТЫ ЗАДАНИЙ НА КУРСОВУЮ РАБОТУ
Номер варианта N выбирается по формуле:
N=(K*KB) div 100,
где:
K – две последние цифры пароля;
KB – общее количество вариантов;
div – целочисленное деление (полученный в результате вычисления формулы остаток отбрасывается без округления).
В случае если в результате расчета получается 0 – выполняется вариант №10
Вариант 1
Система «КАДРЫ»
В системе должны редактироваться атрибуты служащих и отделов, поиск служащих по фамилии, выбор служащих по величине зарплаты. В отделе могут работать несколько служащих.
Вариант 2
Системам «Библиография»
Система предназначена для хранения и выдачи информации о книгах: автор, название, выходные данные. Система должна обеспечивать: ввод и редактирование данных о книгах, выдачу списка книг по заданной тематике, поиск книг по одному из заданных реквизитов (автор, название).
Вариант 3
Система «Телефонный справочник»
Система предназначена для хранения информации о телефонах двух групп абонентов: организации и физические лица. Система должна обеспечивать:
выдачу списка абонентов любой группы на заданную начальную букву фамилии или названия организации, ввод и редактирование данных.
Вариант 4
Система «Справочная система аэропорта»
Система содержит информацию обо всех авиарейсах: номер рейса, пункт назначения, пункты посадки, стоимость билета и др. Система должна обеспечивать редактирование данных и выдачу информации по пункту назначения или списка рейсов в алфавитном порядке.
Вариант 5
Система «Турист»
Система содержит информацию о туристических маршрутах (страна, время пребывания, цена, условия проживания и др.). Система должна обеспечивать просмотр маршрутов, подбор по ряду условий.
Вариант 6
Система «Справочник предприятий города»
Система содержит информацию о предприятиях. Поиск можно осуществлять по специализации предприятия (торговые, производственные и др). Предусмотреть возможность выбора предприятия по признаку местоположения, времени работы и т.д.
Вариант 7
Система «Поликлиника»
Данные организовать в виде сведений о пациентах и медперсонале. У одного врача может быть несколько пациентов. В системе должна быть обеспечена фильтрация пациентов по видам заболеваний.
Вариант 8
Система «Подписка»
Данные организовать в виде сведений о подписчике и переодических изданиях. В системе реализовать поиск по фамилии, адресу подписчика, фильтрация подписчикав по конкретному переодическому изданию.
Вариант 9
Система «Агенство занятости населения»
Система должна содержать сведенгия о предприятиях и безработных. В системе обеспечить редактирование параметров безработного и предприятия. Поиск предприятия по условиям безработного.
Вариант 10
Система «Фильмотека»
Система предназначена для хранения и выдачи информации о видеофильмах: название, жанр, продолжительность, страна-производитель и др. Система должна обеспечить поиск фильма по заданному ключу, выдачу списка фильмов.