Автор работы: Пользователь скрыл имя, 19 Ноября 2013 в 10:59, курсовая работа
Данная работа использует язык команд СУБД семейства Fox. Используемые команды, в основном, применимы во всех СУБД этого типа, но работа производилась на русифицированной СУБД Microsoft FoxPro для Windows версии 2.5b.
1. Введение 3
2. Задание на курсовой проект 4
3. Анализ и постановка задачи 4
4. Формализация задачи 5
5. Алгоритмы 6
5.1. Создание двухуровневого светового меню 6
5.2. Создание файла данных 7
5.3. Чтение файла данных 8
5.4. Добавление данных в файл данных 9
5.5. Выдача сведений о количестве работников каждого из пяти цехов заданного разряда. 10
5.6. Выдача сведений о количестве работников каждой профессии по заданному разряду заданного цеха. 12
5.7. Выдача упорядоченного по алфавиту списка работников каждой профессии. 12
6. Программы 13
6.1. Создание двухуровневого светового меню 13
6.2. Создание файла данных 15
6.3. Чтение файла данных 16
6.4. Добавление данных в файл данных 17
6.5. Печать сведений о количестве работников каждого из пяти цехов заданного разряда. 18
6.6. Печать сведений о количестве работников каждой профессии по заданному разряду заданного цеха. 19
6.7. Печать упорядоченного по алфавиту списка работников каждой профессии. 20
7. Результаты решений 21
8. Заключение 28
9. Список литературы 29
accept 'Введите имя файла данных: ' to NameFd
Use &NameFd
input 'Введите номер разряда: ' to RazrNom
input 'Введите номер цеха: ' to CexNom
clear
@ 5,10 say 'Количество работников цеха № '+STR(CexNom,1)+', имеющих '+STR(RazrNom,1)+' разряд'
@ 6,5 say '-----------------------------
@ 7,15 say 'Профессия'
@ 7,40 say 'Количество'
@ 8,5 say '-----------------------------
store 9 to Row
store 0 to Kol
store 1 to N,Nm
count to col
dimension PR(col)
scan
if ASCAN(PR,PROF)=0
store PROF to PR(N)
store N+1 to N
endif
endscan
do while Nm<N
scan for RAZR=RazrNom and NOMCEX=CexNom and PROF=PR(Nm)
store Kol+1 to Kol
endscan
@ Row,10 say PR(Nm)
@ Row,35 say Kol
store 0 to Kol
store Row+1 to Row
store Nm+1 to Nm
enddo
@ Row+1,5 say '-----------------------------
wait 'Для возврата в меню нажмите любую клавишу ...'
return
* командный файл печати упорядоч
clear
set talk off
@ 5,5 say 'Командный файл печати
упорядоченно списка
accept 'Введите имя файла данных: ' to NameFd
clear
use &NameFd
index On PROF+FAM to &NameFd
use &NameFd Index &NameFd
store 1 to Row
store 0 to Kol
store 1 to N,Nm
count to col
dimension PR(col)
scan
if ASCAN(PR,PROF)=0
store PROF to PR(N)
store N+1 to N
endif
endscan
do while Nm<N
@ Row,12 say 'Список работников професcии ' + PR(Nm)
@ Row+1,5 say '-----------------------------
@ Row+2,7 say 'Номер цеха Таб.номер Фамилия Разряд'
@ Row+3,5 say '-----------------------------
scan for PROF=PR(Nm)
@ Row+4,11 say NOMCEX
@ Row+4,25 say TABNOM
@ Row+4,40 say FAM
@ Row+4,58 say RAZR
store Row+1 to Row
endscan
@ Row+4,5 say '-----------------------------
store Nm+1 to Nm
store Row+6 to Row
if Row>=40
Row=1
wait 'Нажмите любую клавишу для вывода ннформации о работниках следующих профессий'
clear
endif
enddo
Close DataBases
Delete File NameFd + '.idx'
wait 'Для возврата в меню нажмите любую клавишу ...'
return
Выбор создания файла данных
Номер цеха |
Табельный номер |
Фамилия |
Профессия |
Разряд |
1 |
1001 |
Белов |
Механик |
4 |
1 |
1002 |
Маслов |
Шумоизоляторщик |
5 |
1 |
1003 |
Ситников |
Перегонщик |
3 |
1 |
1004 |
Чернов |
Помощник механика |
2 |
2 |
1005 |
Сорокин |
Автослесарь |
4 |
2 |
1006 |
Хохлов |
Сигнализаторщик |
5 |
2 |
1007 |
Сиротин |
Шиномонтажник |
4 |
2 |
1008 |
Смирнов |
Слесарь |
4 |
3 |
1009 |
Колосов |
Механик по тюнингу |
5 |
3 |
1010 |
Бобров |
Механик |
4 |
3 |
1011 |
Никулин |
Шумоизоляторщик |
5 |
3 |
1012 |
Малышев |
Механик |
4 |
4 |
1013 |
Брусков |
Помощник механика |
2 |
4 |
1014 |
Воробьев |
Автослесарь |
4 |
4 |
1015 |
Леонов |
Сигнализаторщик |
5 |
4 |
1016 |
Сиднев |
Механик |
4 |
5 |
1017 |
Ильин |
Автослесарь |
3 |
5 |
1018 |
Фадеев |
Шиномонтажник |
4 |
5 |
1019 |
Астахов |
Слесарь |
4 |
5 |
1020 |
Рублев |
Механик по тюнингу |
5 |
Выбор чтения файла данных
Выбор добавления данных
в файл данных
Табельный номер |
Фамилия |
Профессия |
Разряд | |
1 |
1021 |
Волков |
Шиномонтажник |
3 |
2 |
1022 |
Новиков |
Слесарь |
4 |
3 |
1023 |
Григорьев |
Механик |
5 |
4 |
1024 |
Журавлев |
Помощник механика |
2 |
5 |
1025 |
Дианов |
Автослесарь |
5 |
Выбор выполнения Задания №1
Выбор выполнения Задания №2
Выбор выполнения Задания № 3
Выход из СУБД
Реляционные СУБД, такие как FoxPro действительно являются мощным средством управления большим объемом данных. СУБД этого типа позволяют производить быструю сортировку большого массива данных, осуществлять быстрый переход по записям в произвольном порядке, производить быструю выборку большого количества данных из всего массива данных по заданным критериям. В таких реляционных СУБД каждый файл данных рассматривается как двумерная таблица, столбцы которой соответствуют полям записей, а строки соответствуют отдельным записям файла и обращение к данным идет через указание номера записи имени поля. При этом работа с отдельным полем таблицы данных напоминает работу с переменными – обращение к данным максимально упрощено, и пользователю не нужно знать всю иерархическую структуру данных.
Язык команд СУБД семейства Fox содержит широкий набор команд, выполняющих действия сложных конструкций, например, сортировка записей файла сводится только к двум командам. Помимо этого в СУБД предусмотрены команды создания светового меню для организации прямого диалога с пользователем. Все это максимально упрощают написание программ и подтверждает, что реляционные СУБД семейства Fox действительно являются мощным инструментом для создания и обработки баз данных большого объема.