Державний Університет Управління
Інститут заочного навчання
Спеціальність - менеджмент
Пояснювальна записка до курсового проекту
з дисципліни «Комп'ютерна підготовка»
по темі: «Алгоритмізація і програмування процесів
обробки даних у середовищі СУБД типу 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 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 |
Вибір читання файлу даних