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

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

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

6. Программы

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

* Командный файл иерархического меню 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 && Выбрано задание №1 из курсового проекта

Do Zad1

Case L2=2 && Выбрано задание №2 из курсового проекта

Do Zad2

Case L2=3 && Выбрано задание №3 из курсового проекта

Do Zad3

EndCase

Case L1=3

Do Case

Case L2=1 && Выбран пункт 'Выход в Fox'

Return

Case L2=2 && Выбран пункт 'Выход из Fox'

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 ;

(KodOrg N(3,0), VidProd C(20), Volum N(4,0), Price N(6,2))

@ 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. Печать сведений о суммарной стоимости продукции заданного вида по каждому предприятию и о среднем выпуске этой продукции одним предприятием.


Страница: