Реферат: Алгоритмизация и программирование процессов обработки данных в среде СУБД типа Fox

Государственный Университет Управления

Институт заочного обучения

Специальность – менеджмент

Объяснительная записка к курсовому проекту

по дисциплине «Компьютерная подготовка»

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

обработки данных в среде СУБД типа Fox»

/>Выполнил студент

Студенческий билет №

Группа №УП4-1-98/2

Вариант №2

Адрес:

Москва, 1999 г.



Содержание.

1.  Введение_______________________________________________ 3

2.  Задание на курсовой проект______________________________ 4

3.  Анализ и постановка задачи______________________________ 4

4.  Формализация задачи___________________________________ 5

5.  Алгоритмы____________________________________________ 6

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

5.2.   Создание файла данных_____________________________________________ 7

5.3.   Чтение файла данных_______________________________________________ 8

5.4.   Добавление данных в файл данных___________________________________ 9

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

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

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

6.  Программы___________________________________________ 13

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

6.2.   Создание файла данных____________________________________________ 15

6.3.   Чтение файла данных______________________________________________ 16

6.4.   Добавление данных в файл данных__________________________________ 17

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

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

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

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

8.  Заключение___________________________________________ 29

9.  Список литературы___________________________________ 30


1. Введение

Реляционные системы управления базами данных (СУБД), такие как FoxBase, FoxBaseplus, FoxPro, Visual FoxPro относятся к новому поколению СУБД реляционного типа из семейства dBase – подобных СУБД. Пакеты этого семейства получили широкое распространение, и многие из них были русифицированы.

СУБД типа Fox сохраняет преемственность по отношению к более ранним представителям dBase – подобных СУБД, в отношении структуры баз данных, команд создания и обработки данных, основных типов данных. В тоже время каждая последующая СУБД обладает большими возможностями по сравнению с предыдущими. Так, например, VisualFoxPro по сравнению с FoxPro обладает более значительными изобразительными возможностями.

Данная работа использует язык команд СУБД семейства Fox. Используемые команды, в основном, применимы во всех СУБД этого типа, но отладка велась на русифицированной СУБД FoxPro для Windows версии 2.5b.


2. Задание на курсовой проект

Структура ЗАПИСИ исходного ДОКУМЕНТА:

Код предприятия Вид продукции Объем выпуска Цена единицы продукции

Необходимо:

1. Определить суммарную стоимость продукции заданного вида и ее средний выпуск одним предприятием.

2. Для каждого из пяти видов продукции определить суммарную стоимость и суммарный выпуск.

3. Выдать на печать в порядке возрастания суммарной стоимости продукцию пяти видов.

3. Анализ и постановка задачи

Исходные данные задачи представляют собой записи заданной структуры, которые должны вводиться с клавиатуры, а затем выводиться в файл данных на магнитный диск. Следовательно, одной из подзадач должна быть задача создания файла данных на магнитном диске.

Созданный файл данных необходимо просмотреть на экране или вывести на печать в виде таблицы с печатью заголовка и шапки этой таблицы. Для этого следующей подзадачей должна являться задача просмотра файла данных. Также должна быть возможность добавления записей в созданный файл данных.

Затем необходимы еще три подзадачи, решение которых позволяет выполнить три пункта курсовой работы:

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

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

3. Выдача на печать продукции пяти видов в порядке возрастания ее суммарной стоимости.

Кроме того, для диалога пользователя с системой необходимо создать так называемое, «Меню».


4. Формализация задачи

В среде СУБД типа Fox каждая подзадача может оформляться в виде отдельного командного файла с расширением .prg и заканчиваться оператором возврата в вызывающий командный файл.

В данном случае основным командным файлом является файл MainMenu.prg,  который формирует полное экранное меню и осуществляет вызов других командных файлов, в зависимости от выбранного пункта меню:

CreateFd.prg

– создание файла данных;

ReadFd.prg

– чтение созданного файла данных;

AddFd.prg

– добавление данных в созданный файл данных;

Zad1.prg

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

Zad2.prg

–выдача сведений о суммарной стоимости и суммарном выпуске каждой продукции;

Zad3.prg

–выдача на печать продукции пяти видов в порядке возрастания ее суммарной стоимости.

Кроме того, необходимо предоставить пользователю возможность облегчить процесс создания файла данных, т.е. предусмотреть создание файла данных со структурой заданной в программе, а не выбираемой самим пользователем, что полностью исключит возможные ошибки пользователя в задании имен полей файла данных, что в сою очередь может сказаться на корректной работе всей программы.


5. Алгоритмы 5.1. Создание двухуровневого светового меню />

5.2. Создание файла данных />

5.3. Чтение файла данных />

5.4. Добавление данных в файл данных />

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

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

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

            MinVP=VP

          EndIf

       EndIf

       If RNom

          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

/>

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

/>
/> />

еще рефераты
Еще работы по информатике