Учебная работа. Реферат: Алгоритмизация и программирование процессов на 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. Печать упорядоченного по суммарной цены перечня продукции 5 видов 12
6. Программы___________________________________________ 13
6.1. Создание двухуровневого светового меню___________________________ 13
6.2. Создание файла данных___________________________________________ 15
6.3. Чтение файла данных_____________________________________________ 16
6.4. Добавление данных в файл данных__________________________________ 17
6.5. Печать сведений о суммарной цены продукции данного вида по любому предприятию и о среднем выпуске данной для нас продукции одним предприятием._________________ 18
6.6. Печать сведений о суммарной цены и суммарном выпуске каждой продукции. 20
6.7. Печать упорядоченного по суммарной цены перечня продукции 5 видов 21
7. Результаты решений___________________________________ 22
8. Заключение___________________________________________ 29
9. Перечень литературы____________________________________ 30
1. Введение
Реляционные системы управления базами данных (СУБД), такие как FoxBase, FoxBase plus, FoxPro, Visual FoxPro относятся к новенькому поколению СУБД реляционного типа из семейства dBase – схожих СУБД. Пакеты этого семейства получили обширное распространение, и почти все из их были русифицированы.
СУБД типа Fox сохраняет преемственность по отношению к наиболее ранешным представителям dBase – схожих СУБД, в отношении структуры баз данных, установок сотворения и обработки данных, главных типов данных. В тоже время любая следующая СУБД владеет большенными способностями по сопоставлению с прошлыми. Так, к примеру, Visual FoxPro по сопоставлению с FoxPro владеет наиболее значительными изобразительными способностями.
Данная работа употребляет язык установок СУБД семейства Fox. Применяемые команды, в главном, применимы во всех СУБД этого типа, но отладка велась на русифицированной СУБД FoxPro для Windows версии 2.5b.
2. Задание на курсовой проект
структура ЗАПИСИ начального ДОКУМЕНТА:
Код компании
Вид продукции
Размер выпуска
Стоимость единицы продукции
нужно:
1. Найти суммарную стоимость продукции данного вида и ее средний выпуск одним предприятием.
2. Для всякого из 5 видов продукции найти суммарную стоимость и суммарный выпуск.
3. Выдать на печать в порядке возрастания суммарной цены продукцию 5 видов.
4. анализ и постановка задачки
Начальные данные задачки представляют собой записи данной структуры, которые должны вводиться с клавиатуры, а потом выводиться в файл данных на магнитный диск. Как следует, одной из подзадач обязана быть задачка сотворения файла данных на магнитном диске.
Сделанный файл данных нужно просмотреть на дисплее либо вывести на печать в виде таблицы с печатью заголовка и шапки данной для нас таблицы. Для этого последующей подзадачей обязана являться задачка просмотра файла данных. Также обязана быть возможность прибавления записей в сделанный файл данных.
Потом нужны еще три подзадачи, решение которых дозволяет выполнить три пт курсовой работы:
1. Выдача сведений о суммарной цены продукции данного вида по любому предприятию и о среднем выпуске данной для нас продукции одним предприятием.
2. Выдача сведений о суммарной цены и суммарном выпуске каждой продукции.
3. Выдача на печать продукции 5 видов в порядке возрастания ее суммарной цены.
Не считая того, для диалога юзера с системой нужно сделать так называемое, «Меню».
4. Формализация задачки
В среде СУБД типа Fox любая подзадача может оформляться в виде отдельного командного файла с расширением .prg и заканчиваться оператором возврата в вызывающий командный файл.
В этом случае главным командным файлом является файл MainMenu.prg, который сформировывает полное экранное меню и производит вызов остальных командных файлов, зависимо от избранного пт меню:
CreateFd.prg
– создание файла данных;
ReadFd.prg
– чтение сделанного файла данных;
AddFd.prg
– добавление данных в сделанный файл данных;
Zad1.prg
– выдача сведений о суммарной цены продукции данного вида по любому предприятию и о среднем выпуске данной для нас продукции одним предприятием;
Zad2.prg
– выдача сведений о суммарной цены и суммарном выпуске каждой продукции;
Zad3.prg
– выдача на печать продукции 5 видов в порядке возрастания ее суммарной цены.
Не считая того, нужно предоставить юзеру возможность облегчить процесс сотворения файла данных, т.е. предугадать создание файла данных со структурой данной в программке, а не избираемой самим юзером, что на сто процентов исключит вероятные ошибки юзера в задании имен полей файла данных, что в сою очередь может сказаться на корректной работе всей программки.
5. методы
1.1. Создание двухуровневого светового меню
1. Создание файла данных
1.2. Чтение файла данных
1. Добавление данных в файл данных
1.3. Печать сведений о суммарной цены продукции данного вида по любому предприятию и о среднем выпуске данной для нас продукции одним предприятием.
1.4. Печать сведений о суммарной цены и суммарном выпуске каждой продукции.
1.5. Печать упорядоченного по суммарной цены перечня продукции 5 видов
6. Программки
1.6. Создание двухуровневого светового меню
* Командный файл иерархического меню 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
1. Создание файла данных
* Командный файл 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
1.7. Чтение файла данных
* Командный файл 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
1.8. Добавление данных в файл данных
* Командный файл 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
1.9. Печать сведений о суммарной цены продукции данного вида по любому предприятию и о среднем выпуске данной для нас продукции одним предприятием.
* Командный файл 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
1.10. Печать сведений о суммарной цены и суммарном выпуске каждой продукции.
* Командный файл 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
1.11. Печать упорядоченного по суммарной цены перечня продукции 5 видов
* Командный файл 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 && Цикл для 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
Выбор чтения файла данных
Выбор прибавления данных в файл данных
6
Ластик
600
1,55
6
Чернила
800
3,10
6
Карандаш
1000
1,55
Выбор выполнения Задания №1
Выбор выполнения Задания №2
Выбор выполнения Задания №3
Выход из СУБД
8. Заключение
Реляционные СУБД, такие как FoxPro вправду являются массивным средством управления огромным объемом данных. СУБД этого типа разрешают создавать резвую сортировку огромного массива данных, производить резвый переход по записям в случайном порядке, создавать резвую подборку огромного количества данных из всего массива данных по данным аспектам. В таковых реляционных СУБД любой файл данных рассматривается как двумерная таблица, столбцы которой соответствуют полям записей, а строчки соответствуют отдельным записям файла и воззвание к данным идет через указание номера записи имени поля. При всем этом работа с отдельным полем таблицы данных припоминает работу с переменными – воззвание к данным очень облегчено, и юзеру не необходимо знать всю иерархическую структуру данных.
язык установок СУБД семейства Fox содержит широкий набор установок, выполняющих деяния сложных конструкций, к примеру, сортировка записей файла сводится лишь к двум командам. Кроме этого в СУБД предусмотрены команды сотворения светового меню для организации прямого диалога с юзером. Все это очень упрощают написание программ и подтверждает, что реляционные СУБД семейства Fox вправду являются массивным инвентарем для сотворения и обработки баз данных огромного размера.
9. Перечень литературы
1. Лемашко Е.В., Романчуков В.Г. Программирование в системе установок СУБД семейства
Fox: учебное пособие / ГАУ, М., 1998.
2. Компьютерный практикум. Программирование в среде Турбо-Паскаль и СУБД типа Fox. Методические указания к выполнению курсового проекта. /Сост.: О.Н. Леонова, И.А. Несмеянов; ГАУ, М.,1998.
]]>