RSS    

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

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

* Командный файл 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    && Если имя файла не ввели, то печатать нечего

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


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.