Смекни!
smekni.com

Програма для отримання відомості відвантаження готової продукції (стр. 2 из 3)

- з середовища операційної оболонки Norton Commander шляхом запуску KURS414.EXE (попередньо програма повинна буди відкомпільована з опцією Destination To Memory).

Програма виводить на дисплей головного меню, котре пропонує користувачеві вибір однієї з опцій:

- запис даних на диск;

- вивiд файлу на дисплей;

- вивiд вихідного зведення на дисплей;

- завершення роботи.

При виборі деякого пункту меню викликається відповідна процедура. Завершення роботи програми і повернення в середовище системи програмування Turbo Pascal здійснюється при натисканні клавіші Esc, що відповідає вибору опції «Завершення роботи». Програма формує на ТМД файл послідовного доступу OPER.DAT і формує на основі цього файлу відомість зведеної трудомісткості і розцінок на виріб в розрізі номерів цехів і кодів дільниць.

Процедур програми KURS414.PAS має таке призначення.

Процедура ZAPYS_NA_DYSK. Призначення - ввід даних з первинних документів і запис їх на диск у файл OPER.DAT. Процедура викликається з головного меню програми при виборі пункту «Запис даних на диск» (функціональна клавіша F4). Процедура виводить на дисплей екранну форму для вводу даних з первинних документів. Ввід даних здійснюється в такій послідовності:

- код цеху;

- код дільниці;

- код операції;

- норма часу штучно-калькуляційного;

- розцінка часу штучно-калькуляційного.

Після вводу запису користувачеві пропонується продовжити ввід даних, натиснувши клавішу Enter, або завершити ввід, натиснувши комбінацію клавіш CTRL+Z. В останньому випадку процедура припиняє роботу і повертає керування в програму.

Процедура VYVID_Z_DYSKA. Призначення - читання вхідних даних з дискового файлу OPER.DAT та вивід їх на дисплей. Процедура викликається з головного меню програми при виборі пункту «Вивід файлу на дисплей» (функціональна клавіша F5). При ініціалізації процедури на екран виводиться екранна форма и відкривається вхідний файл OPER.DAT для читання. Записи файлу зчитуються з диска один за одним і виводяться на дисплей (див. додаток 4). Процедура завершує роботу при досягненні кінця файлу OPER.DAT і передає керування у викликаючу її програму.

Процедура DRUK_VIDOMOSTI. Призначення - вивід вихідного зведення на друкуючий пристрій ПК. Вхідна інформація для жаної процедури зберігається у файлі OPER.DAT. Виклик процедури здійснюється з головного меню програми при натисканні функціональної клавіші F6, тобто при виборі пункту «Вивід таблиці на дисплей». Процедура в свою чергу викликає процедури DRSUM1, DRSUM2.

Дана процедура здійснює ввід записів вхідного файлу OPER.DAT та форматований вивід їх на друк з одночасним підрахунком підсумків по коду дільниці, коду складу та загальних підсумків по відомості. При досягненні кінця файлу OPER.DAT процедура завершує свою роботу і передає керування в програму.

Блок-схема процедури представлена в додатку 3.

Процедура DRSUM1. Призначення - вивід підсумків по коду дільниці та підрахунок підсумків по коду складу. Викликається з процедури DRUK_VIDOMOSTI. Повертає керування у викликаючу процедуру автоматично після підрахунку підсумків.

Процедура DRSUM2. Призначення - вивід підсумків по коду отримувача та підрахунок загальних підсумків по відомості. Викликається з процедури DRUK_VIODMOSTI. Повертає керування у викликаючу процедуру автоматично після підрахунку підсумків.

2.2Опис програми

Програма складена і відладжена в середовищі Turbo Pascal 6.0. На початку програми згідно вимог технології програмування розміщується вступний коментар, а решта операторів програми мають таке призначення:

001 заголовок програми

002 підключення зовнішніх модулів управління дисплеєм (Crt) та друкуючим пристроєм (Printer)

003 опис типу даних vypusk для опису структури запису вхідного файлу

004 опис дискового файлу OPER

005-009 опис робочих змінних програми

010 заголовок процедури ZAPYS_NA_DYSK

011 початок процедури

012 очистка екрану

013 присвоєння системній змінній ChekEof істиного значення, що забезпечує переривання вводу даних з клавіатури з допомогою комбінації клавіш CTRL+Z

014 відкриття дискового файлу OPER для запису даних з первинних документів

015-023 вивід екранної форми для вводу даних з первинних документів

024 присвоєння змінній позиціонування курсора початкового значення 7

025 заголовок оператора присвоєння

026 початок циклу, котрий буде виконуватись поки змінна eof не набуде значення true ( цикл вводу даних з клавіатури)

027-031 ввід значень змінних ceh (код цеху), dil (код дільниці), nop (код операції), tst (норма часу штучно-калькуляційного), rst (розцінка часу штучно-калькуляційного)

032 запис даних у вхідний дисковий файл OPER.DAT

033 збільшення змінної позиціонування курсора на одиницю

034 кінець дії оператора приєднання

035 кінець циклу вводу даних

036 кінець тіла процедури

037 закриття дискового файлу OPER

038 кінець процедури ZAPYS_NA_DYSK

039 заголовок процедури VYVID_Z_DYSKA

040 початок процедури

041 відкриття дискового файлу OPER для читання записів

042 очистка екрану

043-048 вивід екранної форми для відображення вхідних даних

049 присвоєння змінній позиціонування курсора початкового значення 7

050 початок дії оператора приєднання

051 початок циклу вводу записів файлу OPER (поки не eof)

053 зчитування запису файлу OPER у змінну vps

054 форматований вивід полів ceh, dil, nop, tst, rst введеного запису на дисплей

055 збільшення змінної позиціонування курсора на одиницю

056 кінець циклу вводу записів файлу MVPR

057 кінець дії оператора приєднання

058 вивід останньої стрічки екранної форми

059 організація зупинки у виконанні програми (очікування вводу довільного символа з клавіатури)

060 закриття дискового файлу OPER

061 кінець процедури VYVID_Z_DYSKA

062 заголовок процедури DRSUM1

063 початок процедури

064-065 вивід на дисплей підсумків по дільниці - pd1,pd2

066-067 підрахунок пiдсумків по коду складу (pc1, pc2)

068 кінець процедури DRSUM1

069 заголовок процедури DRSUM2

070 початок процедури

071-072 вивід на дисплей підсумків по цеху - pc1,pc2

073-074 підрахунок загальних підсумків по відомості (pv1, pv2)

075 кінець процедури DRSUM2

076 заголовок процедури DRUK_VIDOMOSTI

077 опис локальної мітки pdsm

078 початок процедури

080 відкриття дискового файлу OPER для читання

081-088 вивід заголовку та шапки вихідного зведення на друк

089 читання запису файлу OPER в змінну vps

090 заголовок циклу по кінцю файла OPER

091 заголовок оператора приєднання

092 присвоєння початкових значень змінним pv1,pv2, призначених для підрахунку підсумків по відомості

093 запам’ятовування коду складу (ceh) введеного запису в змінній kod_ceh

094 присвоєння початкових значень змінним pc1, pc2, які призначені для підрахунку підсумків по коду цеху

095 заголовок циклу по цеху до тих пір поки kod_ceh = ceh

096 запам’ятовування коду дільниці (dil) в змінній kod_dil

097 присвоєння початкових значень змінним pd1, pd2, які призначені для підрахунку підсумків по коду дільниці

098 заголовок циклу по коду дільниціача (до тих пір поки kod_dil=dil

099 вивід показників введеного запису (ceh, dil, nop, tst, rst) на дисплей

100-101 підрахунок підсумків по дільниці за показниками норма часу (tst), та розцінка (rsr)

102 умовний оператор, котрий перевіряє, чи досягнуто кінець файлу OPER і в разі виконання цієї умови передає керування на мітку pdsm (оператор 109)

103 читання наступного запису дискового файлу OPER в змінну vps

104 кінець циклу по коду дільниці

105 виклик процедури DRSUM1

106 кінець циклу по коду цеху

107 виклик процедури DRSUM2

108 кінець циклу вводу з файлу MVPR

109-110 реалізація переходу по кінцю вхідного файлу - послідовний виклик процедур DRSUM1, DRSUM2

111-112 вивід загального підсумку по відомості (pv1,pv2)

113 закриття файлу OPER

114 організація паузи

115 кінець діє оператора присвоєння

116 кінець процедури DRUK_VIDOMOSTI

119 початок головного блоку програми

120 присвоєння дисковому файлу з логічним іменем OPER фізичного імені mvpr.dat

121 заговок циклу виводу меню програми

123 очистка екрану

124-125 встановлення основного та фонового кольорів

126-138 вивід головного меню програми та повідомлення «Виберіть режим роботи»

139 очікування натискання клавіші на клавіатурі та присвоєння коду натиснутої клавіші змінній vybir

140 заголовок оператора вибору, котрий аналізує код натиснутої клавіші

141 виклик процедури ZAPYS_NA_DYSK, якщо натиснуто клавішу F4 (код клавіші 6216)

142 виклик процедури VYVID_Z_DYSKA, якщо натиснуто клавішу F5 (код клавіші 6316)

143 виклик процедури DRUK_VIDOMOSTI, якщо натиснуто клавішу F6 (код клавіші 6416)

144 оператор виходу, завершення роботи програми при натисканні клавіші Esc (код 2716)

145 кінець оператора вибору

146 кінець циклу виводу меню

147 кінець програми

Блок-схема програми представлена в додатку 2, текст програми представлено в додатку 4.

2.3Контрольний приклад та результат машинного експерименту

Випробування будь-якої системи є набільш відповідальним і пов’язаний з найбільшими труднощами і найбільшими втратами часу. Відладка і тестування - найважливіші життєвого циклу програм. Не можна робити висновок про правильність програми лише на тій підставі, що програма повністю протрансльована (відкомпільована) і видала числові результати. Все, чого досягнуто в даному випалку - це отримання деякої вихідної інформації, необов’язково правильної. В програмі все ще можуть міститись логічні помилки. Тому необхідно здійснювати «ручну» перевірку мащинних результатів.

Існує кілька способів перевірки правильності машинних результатів:

1) обчислення результатів вручну;

2) отримання результатів з довідкової літератури, документації або сукупності таблиць;

3) отримання результату з допомогою іншої програми.

Для перевірки правильності створеної програми розроблено тестові дані, представлені таблиці 3.


Таблиця 3.

Тестові дані для перевірки правильності програми.

Номер Норма часу штучно-калькуляційного Розцінка часу штучно-калькуляційного
цеху дільниці операції на виріб на виріб
11 1 13 12,50 0,85
11 1 13 5,60 0,74
11 1 13 10,20 1,24
11 1 13 8,20 0,65
11 1 13 8,00 0,72
11 1 13 5,50 0,72
11 2 15 3,60 0,75
11 2 16 8,10 0,46
11 2 17 3,50 0,79
12 1 13 3,50 1,20
12 1 14 8,00 0,28
12 1 15 3,90 0,78
12 2 07 3,80 0,76
12 2 08 8,70 1,54
12 2 09 3,70 0,37
12 2 11 5,80 0,97

Після обробки процедурою ZAPYS_NA_DYSK вхідні дані записуються на диск і виводитись на дисплей процедурою VYVID_Z_DYSKA. Екранна копія роботи процедури представлена в додатку 5.