Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


Алгоритмизация и программирование процессов обработки данных в среде СУБД типа FoxPro

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное чреждение

высшего профессионального образования

ГОСУДАРСТВЕННЫЙ НИВЕРСИТЕТ ПРАВЛЕНИЯ

Кафедра компьютерных технологий

КУРСОВОЙ ПРОЕКТ

ПО ДИСЦИПЛИНЕ: КОМПЬЮТЕРНАЯ ПОДГОТОВКА

по теме: Алгоритмизация и программирование процессов

обработки данных в среде СУБД типа Fox

Выполнил

заочной формы обучения

специальности: а

специализации:

курса, группы

№ студенческого билета

а

Проверил преподаватель

Несмеянов И.А.

Москва - 2006

Содержание

TOC \o "1-3" Введение

2. Задание на курсовой проект

3. Анализ и постановка задачи

4. Формализация задачи

5. Алгоритмы

5.1. Создание двухуровневого светового меню

5.2. Создание файла данных

5.3. Чтение файла данных

5.4. Добавление данных в файл данных

5.5. Выдача сведений о количестве работников каждого из пяти цехов заданного разряда.

5.6. Выдача сведений о количестве работников каждой профессии по заданному разряду заданного цеха.

5.7. Выдача упорядоченного по алфавиту списка работников каждой профессии.

6. Программы

6.1. Создание двухуровневого светового меню

6.2. Создание файла данных

6.3. Чтение файла данных

6.4. Добавление данных в файл данных

6.5. Печать сведений о количестве работников каждого из пяти цехов заданного разряда.

6.6. Печать сведений о количестве работников каждой профессии по заданному разряду заданного цеха.

6.7. Печать упорядоченного по алфавиту списка работников каждой профессии.

7. Результаты решений

8. Заключение

9. Список литературы


Выдача порядоченного по алфавиту списка работников каждой профессии.

Начало

Очистка экрана

Запрет вывода реакции команд

Формирование заголовка

Ввод имени файла данных, NameFd

Index on PROF+FAM to Name FD

store 0 to Kol

store 1 to N, Nm

scan

If ASCAN R,PROF)=0

Вывод строки таблицы

store Nm+1 to Nm

Удаление индексного файла

return

1

Count to Col

Dimension PR (col)

Store PROF to PR (N)

Store N+1 to N

1

Doа while Nm < N

Scan for PROF = PR (Nm)

Открытие ФД с использованием индексного файла

Вывод шапка таблицы

wait

6.   Программы

* Командный файл иерархического меню 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


6.2.

* Командный файл 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


6.3. Чтение файла данных

* Командный файл 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


6.4. Добавление данных в файл данных

* Командный файл 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


6.5. Печать сведений о количестве работников каждого из пяти цехов заданного разряда.

* командный файл печати сведений о работниках заданного разряд Zad1

clear

set talk off

@ 5,25 say ' Командный файл печати сведений о работниках заданного разряда Zad1'

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


6.6. Печать сведений о количестве работников каждой профессии по заданному разряду заданного цеха.

* командный файл печати сведений о работниках заданного разряд Zad2

clear

set talk off

@ 5,25 say ' Командный файл печати сведений о работниках заданного разряда Zad2'

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

6.7. Печать порядоченного по алфавиту списка работников каждой профессии.

* командный файл печати порядоченного списка работников каждой про-фессии Zad3

clear

set talk off

@ 5,5 say 'Командный файл печати порядоченно списка работников каждой профессии Zad3'

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

7.   Результаты решений

Выбор создания файла данных


Номер цеха

Табельный номер

Фамилия

Профессия

Разряд

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



Выход из СУБД


8.   Заключение

Реляционные СУБД, такие как FoxPro действительно являются мощныма средством правления большим объемом данных. СУБД этого типа позволяют производить быструю сортировку большого массива данных, осуществлять быстрый переход по записям в произвольном порядке, производить быструю выборку большого количества данных из всего массива данных по заданным критериям. В таких реляционных СУБД каждый файл данных рассматривается как двумерная таблица, столбцы которой соответствуют полям записей, строки соответствуют отдельным записям файла и обращение к данным идет через казание номера записи имени поля. При этом работ с отдельным полем таблицы данных напоминает работу с переменными - обращение к данным максимально прощено, и пользователю не нужно знать всю иерархическую структуру данных.

Язык команд СУБД семейства Fox содержит широкий набор команд, выполняющих действия сложных конструкций, например, сортировка записей файла сводится только к двум командам. Помимо этого в СУБД предусмотрены команды создания светового меню для организации прямого диалога с пользователем. Все это максимально прощают написание программ и подтверждает, что реляционные СУБД семейства Fox действительно являются мощным инструментом для создания и обработки баз данных большого объема.


9.   Список литературы

1.   

Лемашко Е.В., Романчуков В.Г. Программирование в системе команд СУБД семейства Fox: учебное пособие / ГАУ, М., 1998.

2.    Компьютерный практикум. Программирование в среде Турбо-Паскаль и СУБД типа Fox. Методические казания к выполнению курсового проекта. /Сост.: О.Н. Леонова, И.А. Несмеянов; ГАУ, М.,1998.