Рефераты. Алгоритмизация и программирование процессов на Fox p> ...'

EndIf

EndDo

Close DataBases && Закрытие ФД
EndIf

* Конец работы
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return

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

5 Печать сведений о суммарной стоимости продукции заданного вида по каждому предприятию и о среднем выпуске этой продукции одним предприятием.

* Командный файл Zad1 - печать сведений о заданной продукции set Talk off set Status off set Escape off
Clear
@ 4,18 to 4,62 Color u/w*
@ 3,18 Say 'Процесс печати сведений о заданной продукции' Color u/w*
@ 12,0
Accept ' Введите имя файла данных: ' to NameFd
@ 12,0 Clear
@ 12,0
Accept ' Введите вид продукции: ' to TypeProd
If Len(NameFd) >0 And Len(TypeProd) > 0 && Если имя файла или

&& вид продукции не ввели,

&& то делать нечего

* Изменение заголовка

@ 3,0 Clear

Zag='Сведения о продукции: ' + TypeProd

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

* Формирование шапки

L='+-----------------+---------------+--------+-----------+'

@ 7,12 Say L

@ 8,12 Say '| Код предприятия | Объем выпуска | Цена | Стоимость |'

@ 9,12 Say L

Row=10 && Текущий номер строки для вывода данных

Do While .Not.EOF()

If VidProd=TypeProd

* Формирование строки

@ Row,12 Say '|'

@ Row,20 Say KodOrg

@ Row,30 Say '|'

@ Row,36 Say Volum Picture '# ###'

@ Row,46 Say '|'

@ Row,48 Say Price Picture '###.##'

@ Row,55 Say '|'

@ Row,57 Say Volum*Price Picture '## ###.##'

@ Row,67 Say '|'

Row=Row+1

EndIf

Skip

EndDo

* Формирование итоговой части таблицы

@ Row,12 Say L

Row=Row+1

* Расчет суммарной стоимости

Sum Volum*Price For VidProd=TypeProd to AllPrice

* Расчет среднего выпуска

Average Volum For VidProd=TypeProd to AvVol

@ Row,29 Say 'Общая суммарная стоимость:'

@ Row,56 Say AllPrice Picture '### ###.##'

@ Row+1,21 Say 'Средний выпуск одним предприятием:'

@ Row+1,58 Say AvVol Picture '# ###'

Close DataBases && Закрытие ФД
EndIf

* Конец работы
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return

6 Печать сведений о суммарной стоимости и суммарном выпуске каждой продукции.

* Командный файл Zad2 - печать сведений об объемах и стоимости продукции set Talk off set Status off set Escape off
Clear
@ 4,15 to 4,64 Color u/w*
@ 3,15 Say 'Процесс печати сведений об объемах всей продукции' Color u/w*
@ 12,0
Accept ' Введите имя файла данных: ' to NameFd
@ 12,0 Clear
If Len(NameFd) >0 && Если имя файла не ввели, то печатать нечего

Use &NameFd

* Формирование шапки таблицы

L='+---------------------+---------------+---------------------+'

@ 7,10 Say L

@ 8,10 Say '| Вид продукции | Общий объем | Суммарная стоимость |'

@ 9,10 Say L

* Сортировка данных по виду продукции

Index On VidProd to &NameFd && Создание индексного файла

Use &NameFd Index &NameFd

* Формирование строк таблицы

Row=10 && Текущий номер строки для вывода данных

Do While .Not.EOF()

VP=VidProd

RNom=RecNo() && Запомнить номер текущей записи

Sum Volum For VidProd=VP to AllVol && Общий объем

Sum Volum*Price For VidProd=VP to AllPrice && Суммарная стоимость

GoTo RNom && Вернуться на текущую запись

@ Row,10 Say '|'

@ Row,12 Say VidProd

@ Row,32 Say '|'

@ Row,37 Say AllVol Picture '### ###'

@ Row,48 Say '|'

@ Row,55 Say AllPrice Picture '### ###.##'

@ Row,70 Say '|'

* Пропуск записей с отработанным видом продукции

Do While VidProd = VP And .Not.EOF()

Skip

EndDo

Row=Row+1

EndDo

* Формирование итоговой части таблицы

@ Row,10 Say L

Close DataBases && Закрытие ФД

Delete File NameFd + '.idx' && Удаление индексного файла
EndIf

* Конец работы
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return

7 Печать упорядоченного по суммарной стоимости списка продукции пяти видов

* Командный файл Zad3 - печать упорядоченных сведений о стоимости продукции set Talk off set Status off set Escape off
Clear
@ 4,9 to 4,71 Color u/w*
@ 3,9 Say 'Печать сведений о суммарной стоимости продукции по возрастанию' Color u/w*
@ 12,0
Accept ' Введите имя файла данных: ' to NameFd
@ 12,0 Clear
If Len(NameFd) >0 && Если имя файла не ввели, то печатать нечего

Use &NameFd

* Формирование шапки таблицы

L='+---------------------+---------------------+'

@ 7,17 Say L

@ 8,17 Say '| Вид продукции | Суммарная стоимость |'

@ 9,17 Say L

* Поиск продукции с наименьшим значением стоимости

Store 0 to MinAP, LastAP

For I=1 to 5 && Цикл для пяти видов продукции

Do While .Not.EOF() && Цикл поиска нового минимума

VP=VidProd && Текущий вид продукции

RNom=RecNo() && Текущая запись

Sum Volum*Price For VidProd=VP to AllPrice

If AllPrice > LastAP

If AllPrice < MinAP Or MinAP=0

MinAP=AllPrice

MinVP=VP

EndIf

EndIf

If RNom < RecCount()

GoTo RNom+1 && Переход на следующую запись

EndIf

EndDo

* Формирование строки таблицы

@ 9+I,17 Say '|'

@ 9+I,19 Say MinVP

@ 9+I,39 Say '|'

@ 9+I,46 Say MinAP Picture '### ###.##'

@ 9+I,61 Say '|'

LastAP=MinAP && Предыдущее минимальное значение

&& (нижняя граница минимальных значений)

MinAP=0

GoTo Top && Возобновить просмотр с первой строки

Next

* Формирование итоговой части таблицы

@ 15,17 Say L

Close DataBases && Закрытие ФД
EndIf
* Конец работы
@ 24,0
Wait 'Для возврата в меню нажмите любую клавишу ...'
@ 24,0 Clear
Return

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

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

|1 |Ручка |1000 |2,00 |
|1 |Карандаш |500 |1,50 |
|1 |Фломастер |1000 |4,70 |
|1 |Чернила |500 |3,00 |
|2 |Ручка |1200 |1,85 |
|2 |Фломастер |750 |5,00 |
|2 |Ластик |5000 |1,20 |
|2 |Карандаш |1500 |1,35 |
|3 |Чернила |400 |3,20 |
|3 |Ручка |800 |1,90 |
|3 |Карандаш |1200 |1,40 |
|3 |Фломастер |2000 |4,50 |
|4 |Ручка |900 |1,85 |
|4 |Ластик |200 |2,00 |
|4 |Фломастер |1400 |4,70 |
|4 |Чернила |500 |3,05 |
|5 |Карандаш |700 |1,45 |
|5 |Чернила |1100 |2,60 |
|5 |Ластик |1400 |1,65 |
|5 |Фломастер |500 |5,30 |


Выбор чтения файла данных

Выбор добавления данных в файл данных


|6 |Ластик |600 |1,55 |
|6 |Чернила |800 |3,10 |
|6 |Карандаш |1000 |1,55 |


Выбор выполнения Задания №1

Выбор выполнения Задания №2

Выбор выполнения Задания №3

Выход из СУБД

Заключение

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

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

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

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

2. Компьютерный практикум. Программирование в среде Турбо-Паскаль и СУБД типа Fox. Методические указания к выполнению курсового проекта.

/Сост.: О.Н. Леонова, И.А. Несмеянов; ГАУ, М.,1998.

-----------------------

Do While .Not.EOF()

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

Задание цвета экрана

Len(NameFd) >0

Len(NameFd) >0

Wait

Формирование главного меню

Выбор пункта главного меню

Выбор пункта подменю

Do While .T.

Формирование подменю

Case

L1=0

Exit

L1=1

L1=2

L1=3

Case

L2=3

L2=2

L2=1

AddFd

ReadFd

CreateFd

VidProd=TypeProd

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

Zad3

Zad2

Zad1

L2=3

L2=2

L2=1

Case

True

Ввод вида продукции, TypeProd

Quit

Return

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

L2=2

L2=1

Case

Конец

False

Do While .T.

Начало

True

Wait

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

Запрет изменения строки состояния

Запрет прерывания выполнения программы

Ввод имени ФД, NameFd

Wait

Return

Do While .Not.EOF()

False

False

Return

Wait

Return

Начало

Wait

False

True

Вывод вопроса

Чтение 15 записей из ФД

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

Запрет изменения строки состояния

Запрет прерывания выполнения программы

Изменение заголовка

Изменение заголовка

ABC=’Д’

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

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

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

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

Create &NameFd

False

Create Table &NameFd ()

True

Ввод имени ФД, NameFd

Append

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

Ввод ответа (Д/Н) to ABC

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

Запрет изменения строки состояния

Запрет прерывания выполнения программы

Начало

Изменение заголовка

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

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

Len(NameFd) >0

Начало

True

False

Return

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

Запрет изменения строки состояния

Запрет прерывания выполнения программы

Ввод имени ФД, NameFd

Переход на следующую запись

Изменение заголовка

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

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

Len(NameFd) >0 And

Len(TypeProd)>0

Начало

True

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

2

1

1

2

Вывод заключения таблицы

AvVol=Average(Volum)

AllPrice=Sum(Volum*Price)

Вывод

AllPrice

AvVol

Wait

False

Return

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

Запрет изменения строки состояния

Запрет прерывания выполнения программы

Ввод имени ФД, NameFd

2

1

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

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

Len(NameFd) >0

Начало

True

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

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

Вывод заключения таблицы

Сортировка по полю VidProd с помощью индексного файла

Do While .Not.EOF()

AllVol=Sum(Volum)

Вывод заключения таблицы

AllPrice=Sum(Volum*Price)

Переход на запись с новым видом продукции

1

2

1

2

Wait

Return

1

[pic]

Переход на следующую запись

AllPrice=Sum(Volum*Price)

Store 0 to MinAP, LastAP

Начало

Do While .Not.EOF()

For I=1 to 5

Вывод в строке таблицы MinVP, MinAP

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

False

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

Ввод имени ФД, NameFd

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

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

Len(NameFd) >0

True

Переход к первой записи

LastAP=MinAP

[pic]

Запрет прерывания выполнения программы

Запрет изменения строки состояния

2

VP=VidProd

AllPrice>LastAP

AllPrice


Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.