Державний Університет Управління b> p>
Інститут заочного навчання b> p>
Спеціальність - менеджмент b> p>
Пояснювальна записка до
курсового проекту b> p>
з дисципліни «Комп'ютерна підготовка» b> p>
за темою: «Алгоритмізація та програмування процесів p>
обробки даних у середовищі СУБД типу Fox » p>
Виконав студент
Студентський квиток № p>
Група № УП4-1-98/2 p>
Варіант № 2 p>
Адреса: p>
Москва, 1999 р. p>
b>
Зміст. b> p>
1. Введеніе_______________________________________________ 3 b> p>
2. Завдання на курсовій проект______________________________ 4 b> p>
3. Аналіз і постановка задачі______________________________ 4 b> p>
4. Формалізація задачі___________________________________ 5 b> p>
5. Алгорітми____________________________________________ 6 b> p>
5.1. Створення дворівневого світлового меню_____________________________ 6 p>
5.2. Створення файлу данних_____________________________________________ 7 p>
5.3. Читання файлу данних_______________________________________________ 8 p>
5.4. Додавання даних у файл данних___________________________________ 9 p>
5.5. Друк відомостей про сумарної вартості продукції заданого виду по кожному підприємству та про середню
випуск цієї продукції одним предпріятіем.____________________ 10 p>
5.6. Друк відомостей про сумарної вартості і сумарному випуску кожної продукції. 11 p>
5.7. Друк упорядкованого за сумарною вартістю списку продукції п'яти видів 12 p>
6. Программи___________________________________________ 13 b> p>
6.1. Створення дворівневого світлового меню____________________________ 13 p>
6.2. Створення файлу данних____________________________________________ 15 p>
6.3. Читання файлу данних______________________________________________ 16 p>
6.4. Додавання даних у файл данних__________________________________ 17 p>
6.5. Друк відомостей про сумарної вартості продукції заданого виду по кожному підприємству та про середню
випуск цієї продукції одним предпріятіем.____________________ 18 p>
6.6. Друк відомостей про сумарної вартості і сумарному випуску кожної продукції. 20 p>
6.7. Друк упорядкованого за сумарною вартістю списку продукції п'яти видів 21 p>
7. Результати решеній__________________________________ 22 b> p>
8. Заключеніе___________________________________________ 29 b> p>
9. Список літератури___________________________________ 30 b> p>
b>
1.
Введення
Реляційні системи управління базами даних (СУБД), такі як FoxBase, FoxBaseplus, FoxPro, Visual FoxPro відносяться до нового покоління СУБД реляційного типу
з сімейства dBase - подібних СУБД. Пакети цього сімейства одержали широке поширення, і багато з них були
русифіковані. p>
СУБД типу Fox зберігає спадкоємність по відношенню до більш ранніх представникам dBase - подібних СУБД, щодо
структури баз даних, команд створення та обробки даних, основних типів даних. У той же час кожна наступна СУБД володіє великими можливостями по
порівняно з попередніми. Так, наприклад, VisualFoxPro в порівнянні з FoxPro володіє значними образотворчими
можливостями. p>
Дана робота використовує мову команд СУБД сімейства Fox. Використовувані команди, в
основному, застосовуються в усіх СУБД цього типу, але налагодження велася на русифікованою СУБД FoxPro для Windows версії 2.5b. p>
b>
2.
Завдання на курсовий проект
Структура ЗАПИСИ вихідного ДОКУМЕНТА: p>
Код підприємства
Вид продукції
Обсяг випуску
Ціна одиниці продукції
Необхідно: p>
1. Визначити сумарну вартість продукції заданого виду і її середній випуск одним підприємством. P>
2. Для кожного з п'яти видів продукції визначити сумарну вартість і сумарний випуск. P>
3. Видати на друк у порядку зростання сумарної вартості продукцію п'яти видів. P>
3.
Аналіз і постановка задачі
Вихідні дані завдання є записи заданої структури, які повинні вводитися з клавіатури, а потім
у який файл даних на магнітний диск. Отже, однією з підзадач повинна бути задача створення файла даних на магнітному диску. P>
Створений файл даних необхідно переглянути на екрані або вивести на друк у вигляді таблиці з печаткою заголовка
і шапки цієї таблиці. Для цього наступного підзадачі повинна бути завдання переглянути файл даних. Також повинна бути можливість додавання записів у
створений файл даних. p>
Потім необхідні ще три підзадачі, вирішення яких дозволяє виконати три пункти курсової роботи: p>
1. Видача відомостей про сумарної вартості продукції заданого виду по кожному підприємству та про середню
випуск цієї продукції одним підприємством. p>
2. Видача відомостей про сумарної вартості і сумарному випуску кожної продукції. P>
3. Видача на друк продукції п'яти видів у порядку зростання її сумарної вартості. P>
Крім того, для діалогу користувача з системою необхідно створити так зване, «Меню». p>
b>
4.
Формалізація завдання
У середовищі СУБД типу Fox кожна підзадача може оформлятися у вигляді окремого командного файлу з розширенням. prg і
закінчуватися оператором повернення в викликає командний файл. p>
У даному випадку основним командним файлом є файл MainMenu.prg, який формує повне екранне меню і
здійснює виклик інших командних файлів, залежно від обраного пункту меню: p>
CreateFd.prg
- Створення файлу даних;
ReadFd.prg
- Читання створеного файлу даних;
AddFd.prg
- Додавання даних в створений файл даних;
Zad1.prg
-Видача відомостей про сумарної вартості продукції заданого виду по кожному підприємству та про середню випуску цієї продукції одним підприємством;
Zad2.prg
-Видача відомостей про сумарної вартості і сумарному випуску кожної продукції;
Zad3.prg
-Видача на друк продукції п'яти видів у порядку зростання її сумарної вартості.
Крім того, необхідно надати користувачеві можливість полегшити процес створення файла даних,
тобто передбачити створення файлу даних із структурою заданої в програмі, а не вибирається самим користувачем, що повністю виключить можливі помилки
користувача в завданні імен полів файлу даних, що в сою чергу може позначитися на коректній роботі всієї програми. p>
b>
5.
Алгоритми
5.1. Створення дворівневого світлового меню
p>
b>
5.2. Створення файлу даних
p>
b>
5.3. Читання файлу даних
p>
b>
5.4. Додавання даних у файл даних
p>
b>
5.5.
Друк відомостей про
сумарної вартості продукції заданого виду по кожному підприємству та про середню
випуск цієї продукції одним підприємством.
p>
b>
5.6.
Друк відомостей про
сумарної вартості і сумарному випуску кожної продукції.
p>
b>
5.7. Друк упорядкованого за сумарною вартістю списку
продукції п'яти видів
p>
b>
6.
Програми
6.1. Створення дворівневого світлового меню
* Командний файл ієрархічного меню MainMenu p>
set Talk off p>
set Color to n/W * & & Вибір кольору екрана p>
Clear p>
* Опис масивів даних меню p>
Declare GenMenu (3,2), menuFile (3), menuZad (3), menuExit (2) p>
* Завдання значень елементів масивів p>
GenMenu (1,1) = "Файл даних" p>
GenMenu (1,2) = "Робота з файлом даних" p>
GenMenu (2,1) = "Завдання" p>
GenMenu (2,2) = "Завдання на курсовий проект" p>
GenMenu (3,1) = "Вихід" p>
GenMenu (3,2) = "Вихід з програми" p>
menuFile (1) = "Створення" p>
menuFile (2) = "Читання" p>
menuFile (3) = "Додавання" p>
menuZad (1) = "Завдання № 1" p>
menuZad (2) = "Завдання № 2" p>
menuZad (3) = "Завдання № 3" p>
menuExit (1) = "Вихід в Fox" p>
menuExit (2) = "Вихід з Fox" p>
* Форміровніе головного меню p>
Do While. T. p>
set Color to gr +/g, gr +/b & & Установка кольору меню p>
Menu Bar GenMenu, 3 p>
Read Menu Bar to L1, L2 & & Висновок головного меню на екран p>
Do While L1> 0 & & відкрити підменю, якщо вибраний p>
& & будь-який пункт головного меню p>
* Формування підменю p>
set Color to gr +/g, gr +/b & & Установка кольору підменю p>
Menu 1, menuFile, 3,3 p>
Menu 2, menuZad, 3,3 p>
Menu 3, menuExit, 2,2 p>
Read Menu Bar to L1, L2 & & Висновок меню на екран p>
set Color to n/W * & & Повернення до кольору екрана p>
p>
* Обробка вибраного пункту меню p>
Do Case p>
Case L1 = 0 p>
Exit & & Вихід до панелі головного меню p>
Case L1 = 1 p>
Do Case p>
Case L2 = 1 & & Обрано дію 'Створення нового ФД' p>
Do CreateFd p>
Case L2 = 2 & & Обрано дію 'Читання даних' p>
Do ReadFd p>
Case L2 = 3 & & Обрано дію 'Додавання нових даних' p>
Do AddFd p>
EndCase p>
Case L1 = 2 p>
Do Case p>
Case L2 = 1 & & Обрано завдання № 1 з курсового проекту p>
Do Zad1 p>
Case L2 = 2 & & Обрано завдання № 2 з курсового проекту p>
Do Zad2 p>
Case L2 = 3 & & Обрано завдання № 3 з курсового проекту p>
Do Zad3 p>
EndCase p>
Case L1 = 3 p>
Do Case p>
Case L2 = 1 & & Обрано пункт 'Вихід в Fox' p>
Return p>
Case L2 = 2 & & Обрано пункт 'Вихід з Fox' p>
Quit p>
EndCase p>
EndCase p>
EndDo p>
EndDo p>
b>
6.2. Створення файлу даних
* Командний файл CreateFd - створення нового файлу даних p>
set Talk off p>
set Status off p>
set Escape off p>
Clear p>
Zag = 'Процес створення нового файлу даних' p>
@ 4,22 to 4,58 Color u/w * p>
@ 3,22 Say Zag Color u/w * p>
@ 12,0 p>
Accept 'Вкажіть ім'я створюваного файла даних:' to NameFd p>
If Len (NameFd)> 0 & & Якщо ім'я файлу не ввели, то робити нічого p>
p>
* Зміна заголовка p>
Zag = Zag + ':' + NameFd + '. dbf' p>
LenZag = Int (Len (Zag)) p>
@ 4, Int ((80-lenZag)/2) to 4, Int ((80-lenZag)/2) + LenZag Color u/w * p>
@ 3, Int ((80-LenZag)/2) Say Zag Color u/w * p>
@ 14,0 p>
Text p>
Хочете автоматично створити порожню структуру p>
з вказаним ім'ям, за завданням курсового проекту (Д/Н)? p>
EndText p>
* Відповідь на поставлене питання p>
Do While. T. p>
@ 16,57 p>
Wait''to ABC & & Очікування натискання клавіші p>
If ABC = 'н' Or ABC = 'д' p>
ABC = Chr (Asc (ABC) -32) & & Зміна регістра p>
EndIf p>
If ABC = 'Н' Or ABC = 'Д' p>
Exit p>
EndIf p>
EndDo p>
* Створення ФД p>
If ABC = 'Д' & & Автоматичне створення ФД p>
Create Table & NameFd; p>
(KodOrg N (3,0), VidProd C (20), Volum N (4,0), Price N (6,2)) p>
@ 8,0 p>
set Talk on p>
Display Structure & & Висновок створеної структури p>
set Talk off p>
Else & & Створення ФД з можливістю заповнення полів p>
Create & NameFd p>
EndIf p>
EndIf p>
* Кінець роботи p>
@ 24,0 p>
Wait 'Для повернення в меню натисніть будь-яку клавішу ...' p>
@ 24,0 Clear p>
Return p>
b>
6.3.
Читання файлу даних
* Командний файл ReadFd - читання файлу даних p>
set Talk off p>
set Status off p>
set Escape off p>
Clear p>
@ 4,27 to 4,54 Color u/w * p>
@ 3,27 Say 'Процес читання файлу даних' Color u/w * p>
@ 12,0 p>
Accept 'Введіть ім'я зчитує файла даних:' to NameFd p>
If Len (NameFd)> 0 & & Якщо ім'я файлу не ввели, то робити нічого p>
* Зміна заголовка p>
@ 3,0 Clear to 5,79 p>
Zag = 'Вміст файлу даних:' + NameFd + '. dbf' p>
LenZag = Int (Len (Zag)) p>
@ 4, Int ((80-lenZag)/2) to 4, Int ((80-lenZag)/2) + LenZag Color u/w * p>
@ 3, Int ((80-LenZag)/2) Say Zag Color u/w * p>
p>
* Висновок вмісту файлу p>
Use & NameFd p>
Do While. Not.EOF () & & Цикл виведення порцій записів ФД p>
& & У певну область екрану p>
@ 7,0 p>
Display Next 15 p>
If EOF () =. F. & & В останньому циклі не треба перекладати p>
& & покажчик і тримати паузу p>
Skip & & Переклад покажчика, щоб новий екран не починався p>
& & з останнього запису попереднього екрану p>
@ 24,0 p>
Wait 'Натисніть будь-яку клавішу для перегляду наступних 15 записів ...' p>
EndIf p>
EndDo p>
Close DataBases & & Закриття ФД p>
EndIf p>
* Кінець роботи p>
@ 24,0 p>
Wait 'Для повернення в меню натисніть будь-яку клавішу ...' p>
@ 24,0 Clear p>
Return p>
b>
6.4.
Додавання даних у файл
даних
* Командний файл AddFd - додавання файлу даних p>
set Talk off p>
set Status off p>
set Escape off p>
Clear p>
@ 4,25 to 4,56 Color u/w * p>
@ 3,25 Say 'Процес додати файл даних' Color u/w * p>
@ 12,0 p>
Accept 'Введіть ім'я файлу даних для додавання даних:' to NameFd p>
If Len (NameFd)> 0 & & Якщо ім'я файлу не ввели, то робити нічого p>
* Зміна заголовка p>
@ 3,0 Clear p>
Zag = 'Додавання даних у файл даних:' + NameFd + '. dbf' p>
LenZag = Int (Len (Zag)) p>
@ 4, Int ((80-lenZag)/2) to 4, Int ((80-lenZag)/2) + LenZag Color u/w * p>
@ 3, Int ((80-LenZag)/2) Say Zag Color u/w * p>
* Додавання даних у ФД p>
Use & NameFd p>
Append p>
Close DataBases & & Закриття ФД p>
EndIf p>
* Кінець роботи p>
@ 24,0 p>
Wait 'Для повернення в меню натисніть будь-яку клавішу ...' p>
@ 24,0 Clear p>
Return p>
b>
6.5.
Друк відомостей про
сумарної вартості продукції заданого виду по кожному підприємству та про середню
випуск цієї продукції одним підприємством.
* Командний файл Zad1 - друк відомостей про заданої продукції p>
set Talk off p>
set Status off p>
set Escape off p>
Clear p>
@ 4,18 to 4,62 Color u/w * p>
@ 3,18 Say 'Процес друку відомостей про заданої продукції' Color u/w * p>
@ 12,0 p>
Accept 'Введіть ім'я файлу даних:' to NameFd p>
@ 12,0 Clear p>
@ 12,0 p>
Accept 'Введіть вид продукції:' to TypeProd p>
If Len (NameFd)> 0 And Len (TypeProd)> 0 & & Якщо ім'я файлу або p>
& & вид продукції не ввели, p>
& & то робити нічого p>
* Зміна заголовка p>
@ 3,0 Clear p>
Zag = 'Відомості про продукцію:' + TypeProd p>
LenZag = Int (Len (Zag)) p>
@ 4, Int ((80-lenZag)/2) to 4, Int ((80-lenZag)/2) + LenZag Color u/w * p>
@ 3, Int ((80-LenZag)/2) Say Zag Color u/w * p>
Use & NameFd p>
* Формування шапки p>
L ='+-----------------+---------------+--------+ -----------+' p>
@ 7,12 Say L p>
@ 8,12 Say '| Код підприємства | Обсяг випуску | Ціна | Вартість |' p>
@ 9,12 Say L p>
Row = 10 & & Поточний номер рядка для виводу даних p>
Do While. Not.EOF () p>
If VidProd = TypeProd p>
* Формування рядка p>
@ Row, 12 Say'|' p>
@ Row, 20 Say KodOrg p>
@ Row, 30 Say'|' p>
@ Row, 36 Say Volum Picture '# ###' p>
@ Row, 46 Say'|' p>
@ Row, 48 Say Price Picture'###.##' p>
@ Row, 55 Say'|' p>
@ Row, 57 Say Volum * Price Picture '# # ###.##' p>
@ Row, 67 Say'|' p>
Row Row = 1 p>
EndIf p>
Skip p>
EndDo p>
* Формування підсумковій частині таблиці p>
@ Row, 12 Say L p>
Row Row = 1 p>
* Розрахунок сумарної вартості p>
Sum Volum * Price For VidProd = TypeProd to AllPrice p>
* Розрахунок середнього випуску p>
Average Volum For VidProd = TypeProd to AvVol p>
@ Row, 29 Say 'Загальна сумарна вартість:' p>
@ Row, 56 Say AllPrice Picture '# # # ###.##' p>
@ Row +1,21 Say 'Середній випуск одним підприємством:' p>
@ Row +1,58 Say AvVol Picture '# ###' p>
Close DataBases & & Закриття ФД p>
EndIf p>
* Кінець роботи p>
@ 24,0 p>
Wait 'Для повернення в меню натисніть будь-яку клавішу ...' p>
@ 24,0 Clear p>
Return p>
b>
6.6. Друк відомостей про сумарної вартості і сумарному випуску
кожної продукції.
* Командний файл Zad2 - друк відомостей про обсяги та вартість продукції p>
set Talk off p>
set Status off p>
set Escape off p>
Clear p>
@ 4,15 to 4,64 Color u/w * p>
@ 3,15 Say 'Процес друку відомостей про обсяги всієї продукції' Color u/w * p>
@ 12,0 p>
Accept 'Введіть ім'я файлу даних:' to NameFd p>
@ 12,0 Clear p>
If Len (NameFd)> 0 & & Якщо ім'я файлу не ввели, то друкувати нічого p>
Use & NameFd p>
p>
* Формування шапки таблиці p>
L ='+---------------------+---------------+----- ----------------+' p>
@ 7,10 Say L p>
@ 8,10 Say '| Вид продукції | Загальний обсяг | Загальна вартість |' p>
@ 9,10 Say L p>
* Сортування даних за видом продукції p>
Index On VidProd to & NameFd & & Створення індексного файлу p>
Use & NameFd Index & NameFd p>
* Формування рядків таблиці p>
Row = 10 & & Поточний номер рядка для виводу даних p>
Do While. Not.EOF () p>
VP = VidProd p>
RNom = RecNo () & & Запам'ятати номер поточного запису p>
Sum Volum For VidProd = VP to AllVol & & Загальний обсяг p>
Sum Volum * Price For VidProd = VP to AllPrice & & Сумарна вартість p>
GoTo RNom & & Повернутися на поточний запис p>
@ Row, 10 Say'|' p>
@ Row, 12 Say VidProd p>
@ Row, 32 Say'|' p>
@ Row, 37 Say AllVol Picture '# # # ###' p>
@ Row, 48 Say'|' p>
@ Row, 55 Say AllPrice Picture '# # # ###.##' p>
@ Row, 70 Say'|' p>
* Пропуск записів з відпрацьованим видом продукції p>
Do While VidProd = VP And. Not.EOF () p>
Skip p>
EndDo p>
Row Row = 1 p>
EndDo p>
* Формування підсумковій частині таблиці p>
@ Row, 10 Say L p>
Close DataBases & & Закриття ФД p>
Delete File NameFd + '. idx' & & Видалення індексного файлу p>
EndIf p>
* Кінець роботи p>
@ 24,0 p>
Wait 'Для повернення в меню натисніть будь-яку к?? Авішая ...' p>
@ 24,0 Clear p>
Return p>
b>
6.7. Друк упорядкованого за сумарною вартістю списку
продукції п'яти видів
* Командний файл Zad3 - друк упорядкованих відомостей про вартість продукції p>
set Talk off p>
set Status off p>
set Escape off p>
Clear p>
@ 4,9 to 4,71 Color u/w * p>
@ 3,9 Say 'Друк відомостей про сумарної вартості продукції за зростанням' Color
u/w * p>
@ 12,0 p>
Accept 'Введіть ім'я файлу даних:' to NameFd p>
@ 12,0 Clear p>
If Len (NameFd)> 0 & & Якщо ім'я файлу не ввели, то друкувати нічого p>
Use & NameFd p>
p>
* Формування шапки таблиці p>
L ='+---------------------+--------------------- + ' p>
@ 7,17 Say L p>
@ 8,17 Say '| Вид продукції | Сумарна вартість |' p>
@ 9,17 Say L p>
* Пошук продукції з найменшим значенням вартості p>
Store 0 to MinAP, LastAP p>
For I = 1 to 5 & & Цикл для п'яти видів продукції p>
Do While. Not.EOF () & & Цикл пошуку нового мінімуму p>
VP = VidProd & & Поточний вид продукції p>
RNom = RecNo () & & Поточний запис p>
Sum Volum * Price For VidProd = VP to AllPrice p>
If AllPrice> LastAP p>
If AllPrice
MinAP = AllPrice p>
MinVP = VP p>
EndIf p>
EndIf p>
If RNom
GoTo RNom 1 & & Перехід на наступну запис p>
EndIf p>
EndDo p>
p>
* Формування рядки таблиці p>
@ 9 + I, 17 Say'|' p>
@ 9 + I, 19 Say MinVP p>
@ 9 + I, 39 Say'|' p>
@ 9 + I, 46 Say MinAP Picture '# # # ###.##' p>
@ 9 + I, 61 Say'|' p>
LastAP = MinAP & & Попереднє мінімальне значення p>
& & (нижня межа мінімальних значень) p>
MinAP = 0 p>
GoTo Top & & Відновити перегляд з першого рядка p>
Next p>
* Формування підсумковій частині таблиці p>
@ 15,17 Say L p>
Close DataBases & & Закриття ФД p>
EndIf p>
* Кінець роботи p>
@ 24,0 p>
Wait 'Для повернення в меню натисніть будь-яку клавішу ...' p>
@ 24,0 Clear p>
Return p>
b>
7.
Результати рішень
Вибір створення файлу даних p>
p>
p>
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
p>
Вибір читання файлу даних p>
p>
p>
p>