ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Алгоритмізація і програмування процесів на Fox
         

     

    Інформатика, програмування
    1. Введення
    Реляційні системи управління базами даних (СУБД), такі як FoxBase, FoxBase plus, FoxPro, Visual FoxPro відносяться до нового покоління СУБД реляційного типу з сімейства dBase - подібних СУБД. Пакети цього сімейства одержали широке поширення, і багато з них були русифіковані.
    СУБД типу Fox зберігає спадкоємність по відношенню до більш ранніх представникам dBase - подібних СУБД, щодо структури баз даних, команд створення та обробки даних, основних типів даних. У той же час кожна наступна СУБД володіє великими можливостями в порівнянні з попередніми. Так, наприклад, Visual FoxPro в порівнянні з 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.
    Додавання даних у файл даних
    5.8.






    5.9.
    Друк відомостей про сумарної вартості продукції заданого виду по кожному підприємству та про середню випуску цієї продукції одним підприємством.
    5.10.






    5.11.
    Друк відомостей про сумарної вартості і сумарному випуску кожної продукції.
    5.12.






    5.13.
    Друк упорядкованого за сумарною вартістю списку продукції п'яти видів




    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 'Для повернення в меню натисніть будь-яку клавішу ...'< br /> @ 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 записів ...'< br /> EndIf
    EndDo
    Close DataBases & & Закриття ФД
    EndIf

    * Кінець роботи
    @ 24,0
    Wait 'Для повернення в меню натисніть будь-яку клавішу ...'< br /> @ 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 'Для повернення в меню натисніть будь-яку клавішу ...'< br /> @ 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 ='+-----------------+---------------+--------+--- --------+'< br /> @ 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 '# ###'< br /> @ Row, 46 Say '|'
    @ Row, 48 Say Price Picture'###.##'< br /> @ Row, 55 Say '|'
    @ Row, 57 Say Volum * Price Picture '# # ###.##'< br /> @ 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 '# # # ###.##'< br /> @ Row +1,21 Say 'Середній випуск одним підприємством:'
    @ Row +1,58 Say AvVol Picture '# ###'< br /> Close DataBases & & Закриття ФД
    EndIf

    * Кінець роботи
    @ 24,0
    Wait 'Для повернення в меню натисніть будь-яку клавішу ...'< br /> @ 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 ='+---------------------+---------------+-------- -------------+'< br /> @ 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 '# # # ###'< br /> @ Row, 48 Say '|'
    @ Row, 55 Say AllPrice Picture '# # # ###.##'< br /> @ 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 'Для повернення в меню натисніть будь-яку клавішу ...'< br /> @ 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 ='+---------------------+---------------------+'< br /> @ 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 '# # # ###.##'< br /> @ 9 + I, 61 Say '|'
    LastAP = MinAP & & Попереднє мінімальне значення
    & & (Нижня межа мінімальних значень)
    MinAP = 0
    GoTo Top & & Відновити перегляд з перших рядків
    Next
    * Формування підсумковій частині таблиці
    @ 15,17 Say L
    Close DataBases & & Закриття ФД
    EndIf
    * Кінець роботи
    @ 24,0
    Wait 'Для повернення в меню натисніть будь-яку клавішу ...'< br /> @ 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.
    - 28 -






         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status