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