Алгоритмизация и программирование процессов на Fox
Рефераты >> Программирование и компьютеры >> Алгоритмизация и программирование процессов на Fox

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

6.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

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

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

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


Страница: