Автор работы: Пользователь скрыл имя, 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
- -
Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ
Кафедра компьютерных технологий
ПО ДИСЦИПЛИНЕ: КОМПЬЮТЕРНАЯ ПОДГОТОВКА
по теме: «Алгоритмизация и программирование процессов
обработки данных в среде СУБД типа Fox»
Выполнил
заочной формы обучения
специальности:
специализации:
_____курса, группы
№ студенческого билета
Проверил преподаватель
Несмеянов И.А.
Москва - 2006
Содержание
Реляционные системы управления базами данных (СУБД), такие как FoxBase, FoxBase plus, FoxPro, Visual FoxPro относятся к новому поколению СУБД реляционного типа из семейства dBase – подобных СУБД. Пакеты этого семейства получили широкое распространение, и многие из них были русифицированы.
СУБД типа Fox сохраняет преемственность по отношению к более ранним представителям dBase – подобных СУБД, в отношении структуры баз данных, команд создания и обработки данных, основных типов данных. В тоже время каждая последующая СУБД обладает большими возможностями по сравнению с предыдущими. Так, например, Visual FoxPro по сравнению с FoxPro обладает более значительными изобразительными возможностями.
Данная работа использует язык команд СУБД семейства Fox. Используемые команды, в основном, применимы во всех СУБД этого типа, но работа производилась на русифицированной СУБД Microsoft FoxPro для Windows версии 2.5b.
Структура ЗАПИСИ исходного ДОКУМЕНТА:
Номер цеха |
Табельный номер |
Фамилия |
Профессия |
Разряд |
НЕОБХОДИМО:
1. Дать сведения о количестве работников каждого из пяти цехов заданного разряда.
2. Подсчитать и напечатать количество работников каждой профессии по заданному разряду заданного цеха.
3. Распечатать списки работников каждой профессии, упорядочив их по алфавиту.
Исходные данные задачи представляют собой записи заданной структуры, которые должны вводиться с клавиатуры, а затем выводиться в файл данных на магнитный диск. Следовательно, одной из подзадач должна быть задача создания файла данных на магнитном диске.
Созданный файл данных необходимо просмотреть на экране или вывести на печать в виде таблицы с печатью заголовка и шапки этой таблицы. Для этого следующей подзадачей должна являться задача просмотра файла данных. Также должна быть возможность добавления записей в созданный файл данных.
Затем необходимы еще три подзадачи, решение которых позволяет выполнить три пункта курсовой работы:
Кроме того, для диалога пользователя с системой необходимо создать так называемое «Меню».
В среде СУБД типа Fox каждая подзадача может оформляться в виде отдельного командного файла с расширением .prg и заканчиваться оператором возврата в вызывающий командный файл.
В данном случае основным командным файлом является файл MainMenu.prg, который формирует полное экранное меню и осуществляет вызов других командных файлов, в зависимости от выбранного пункта меню:
CreateFd.prg |
– создание файла данных; |
ReadFd.prg |
– чтение созданного файла данных; |
AddFd.prg |
– добавление данных в созданный файл данных; |
Zad1.prg |
– выдача сведений о количестве работников каждого из пяти цехов заданного разряда; |
Zad2.prg |
– подсчет и выдача на печать сведений о количестве работников каждой профессии по заданному разряду заданного цеха; |
Zad3.prg |
– выдача на печать упорядоченных по алфавиту списков работников каждой профессии. |
Кроме того, необходимо предоставить пользователю возможность облегчить процесс создания файла данных, т.е. предусмотреть создание файла данных со структурой заданной в программе, а не выбираемой самим пользователем, что полностью исключит возможные ошибки пользователя в задании имен полей файла данных, что, в свою очередь, может сказаться на корректной работе всей программы.
* Командный файл иерархического меню MainMenu
set Talk off
set Color to n/W*
Clear
Declare GenMenu(3,2), menuFile(3), menuZad(3), menuExit(2)
GenMenu(1,1)=" Файл данных "
GenMenu(1,2)="Работа с файлом
GenMenu(2,1)=" Задание "
GenMenu(2,2)="Задания на
GenMenu(3,1)=" Выход "
GenMenu(3,2)="Выход из
menuFile(1)="Создание"
menuFile(2)="Чтение"
menuFile(3)="Добавление"
menuZad(1)="Задание №1"
menuZad(2)="Задание №2"
menuZad(3)="Задание №3"
menuExit(1)="Выход в Fox"
menuExit(2)="Выход из Fox"
Do While .T.
set Color to gr+/g, gr+/b
Menu Bar GenMenu, 3
Read Menu Bar to L1, L2
Do While L1 > 0
set Color to gr+/g, gr+/b
Menu 1, menuFile, 3,3
Menu 2, menuZad, 3,3
Menu 3, menuExit, 2,2
Read Menu Bar to L1, L2
set Color to n/W*
Do Case
Case L1=0
Exit
Case L1=1
Do Case
Case L2=1
Do CreateFd
Case L2=2
Do ReadFd
Case L2=3
Do AddFd
EndCase
Case L1=2
Do Case
Case L2=1
Do Zad1
Case L2=2
Do Zad2
Case L2=3
Do Zad3
EndCase
Case L1=3
Do Case
Case L2=1
Return
Case L2=2
Quit
EndCase
EndCase
EndDo
EndDo
* Командный файл CreateFd - создание нового файла данных
set Talk off
set Status off
set Escape off
Clear
Zag='Процесс создания нового
@ 4,22 to 4,58 Color u/w*
@ 3,22 Say Zag Color u/w*
@ 12,0
Accept ' Укажите имя создаваемого файла данных: ' to NameFd
If Len(NameFd) > 0
Zag=Zag + ': ' + NameFd + '.dbf'
LenZag=Int(Len(Zag))
@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*
@ 3,Int((80-LenZag)/2) Say Zag Color u/w*
@ 14,0
Text
Вы хотите автоматически создать пустую структуру
с указанным именем, по заданию курсового проекта (Д/Н)?
EndText
Do While .T.
@ 16,57
Wait '' to ABC
If ABC='н' Or ABC='д'
ABC=Chr(Asc(ABC)-32)
EndIf
If ABC='Н' Or ABC='Д'
Exit
EndIf
EndDo
If ABC='Д'
Create Table &NameFd ;
(NomCex N(1,0), TabNom N(4,0), Fam C(20), Prof C(20), Razr N(1,0))
@ 8,0
set Talk on
Display Structure
set Talk off
Else
Create &NameFd
EndIf
EndIf
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return
* Командный файл ReadFd - чтение файла данных
set Talk off
set Status off
set Escape off
Clear
@ 4,27 to 4,54 Color u/w*
@ 3,27 Say 'Процесс чтения файла данных' Color u/w*
@ 12,0
Accept ' Введите имя считываемого файла данных: ' to NameFd
If Len(NameFd) >0
@ 3,0 Clear to 5,79
Zag='Содержимое файла данных: ' + NameFd + '.dbf'
LenZag=Int(Len(Zag))
@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*
@ 3,Int((80-LenZag)/2) Say Zag Color u/w*
Use &NameFd
Do While .Not.EOF()
@ 7,0
Display Next 15
If EOF()=.F.
Skip
@ 24,0
Wait 'Нажмите любую клавишу для просмотра следующих 15 записей ...'
EndIf
EndDo
Close DataBases
EndIf
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return
* Командный файл AddFd - добавление файла данных
set Talk off
set Status off
set Escape off
Clear
@ 4,25 to 4,56 Color u/w*
@ 3,25 Say 'Процесс добавления файла данных' Color u/w*
@ 12,0
Accept ' Введите имя файла данных для добавления данных: ' to NameFd
If Len(NameFd) >0
@ 3,0 Clear
Zag='Добавление данных в файл данных: ' + NameFd + '.dbf'
LenZag=Int(Len(Zag))
@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*
@ 3,Int((80-LenZag)/2) Say Zag Color u/w*
Use &NameFd
Append
Close DataBases
EndIf
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return
* командный файл печати сведений о работниках заданного разряда Zad1
clear
set talk off
@ 5,25 say ' Командный файл печати
сведений о работниках
accept 'Введите имя файла данных: ' to NameFd
use &NameFd
input 'Введите номер разряда: ' to RazrNom
clear
@ 5,10 say 'Сведения о работниках цеха, имеющих разряд '+STR(RazrNom,1)
@ 6,5 say '-----------------------------
@ 7,15 say 'Цех'
@ 7,40 say 'Количество'
@ 8,5 say '-----------------------------
store 1 to Kk
store 5 to Nn
store 0 to Kol
store 9 to Ss
do while (Kk<=Nn)
Scan
if Razr=RazrNom
if NomCex=Kk
store Kol+1 to Kol
endif
endif
EndScan
@ Ss,7 say Kk
@ Ss,35 say Kol
store 0 to Kol
store Kk+1 to Kk
store Ss+1 to Ss
enddo
@ Ss+1,5 say'--------------------------
wait 'Для возврата в меню нажмите любую клавишу ...'
return
* командный файл печати
clear
set talk off
@ 5,25 say ' Командный файл печати
сведений о работниках