Зміст
Вступ
1.Теоретична частина
1.1Постановка задачі
1.2Вхідна інформація
1.3Вихідна інформація
2.Практична частина
2.1Архітектура програми
2.2Опис програми
2.3Контрольний приклад та результат машинного експерименту
Висновки
Списоквикористаної літератури
Додатки
Вступ
Персональнікомп’ютери за призначенням фактично не мають обмежень, а їх можливостівизначаються програмами, які обробляють інформацію. Щоб отримати за допомогоюкомп’ютера бажаний результат, треба мати відповідну програму.
Сьогодніє дуже багато готових пакетів. Однак будь-який пакет чи програма з моментусвоєї появи морально старіє, тобто з’являються нові пропозиції щодо поліпшенняїхніх можливостей, а самі задачі трансформуються у нові, наперед непередбачені. Відповідно до цих змін програми модифікуються — з’являються їхнінові версії. Крім того, сучасні пакети прикладних програм тяжіють доуніверсалізму, їхні розробники намагаються забезпечити підтримку якомогаширшого кола задач. Само по собі це намагання є позитивним, однак коли потрібносьогодні розв’язати одну задачу, завтра — іншу, а післязавтра — ще іншу, і всівони неоднорідні, то виникає потреба використовувати кілька різних програм чипакетів. Це може виявитись досить складним.
Радикальнимвиходом з цієї ситуації є самостійна розробка програм для розв’язуванняконкретних задач. Важливим у цьому випадку є навики та досвід програміста, йоговміння складати надійні та ефективні програми. Не мале значення має і вибірмови програмування. Частовибір мови програмування зумовлюється даною обчислювальною системою абопідготовкою програміста. Слід протистояти бажанню писати програму на даній мовіпросто тому, що вона більше знайома. Якщо мова програмування не підходить дляданого класу задач, то можуть виникнути значні труднощі при програмуванні тавідладці програми. Якщо програмістові надається можливість вибору, то слідвибирати ту мову високого рівня, яка найбільш придатна для розв’язування задачданого типу.
Завданняна курсовий проект передбачає розробку програмного забезпечення длярозв’язування задачі економічного характеру, тому для створення програми буловибрано середовище TurboPascal 6.0.
Розробниксистеми програмування TurboPascal — фірма BorlandInternational виникла в 1984році і за порівняно короткий час неодноразово дивувала користувачівперсональних ЕОМ своїми Turboсистемами. Було випущено на ринок програмних продуктів декілька версій TurboPascal: 3.0, 4.0, 5.0, 5.5,6.0, 7.0, Pascalfor Windows,Borland Pascal.
Головніособливості мови TurboPascal:
- широкий спектр даних;
- можливість обробки стрічкових таструктурних даних;
- достатній набір операторів керуваннярозгалуженнями та циклами;
- відносно слабкі можливості вводу-виводуданих порівняно з іншими мовами високого рівня (TurboC та PL/1);
- добре розвинутий апарат підпрограм;
- зручні конструкції роботи з файлами;
- великі можливості керування всімаресурсами комп’ютера;
- різноманітні варіанти стикування з мовоюАсемблера;
- використання інтегрованого середовища,яке значно підвищує продуктивність праці програміста;
- підтримка ідей об’єктно-орієнтованогопрограмування (ООП).
Курсовийпроект складається зі вступу, двох розділів, висновків, списку використаноїлітератури, графічної частини та додатків. Текст пояснювальної записки набранота роздруковано з використанням текстового редактора Word.Графічначастина виконана з допомогою графічного редактора Visio.
1. Теоретичначастина
1.1 Постановказадачі
Розрахуноквитрат на виробництво і калькуляційної собівартості готової продукції єнайбільш трудомісткою і важливою ділянкою обліку, особливо на підприємствах,які випускають велику номенклатуру різних виробів. Облік затрат на виробництвоконцентрує інформацію, як авідноситься до всіх частин бухгалтерського обліку.При цьому кожне підприємство має свої характерні особливості обліку затрат навиробництво.
Обліквитрат на виробництво повинен забезпечити:
- розрахунок виконання виробничого плану;
- визначення фактичної собівартості івиявлення понаднормативних витрат;
- контроль за виконанням плановихпоказників;
- зниження самоцінності продукції за всімастаттями затрат;
- контроль за дисципліною і своєчаснимвиявленням нераціональних витрат матеріальних та фінансових ресурсів.
Витрати,які впливають на собівартість продукції, групуються відповідно до їхекономічного змісту за такими елементами:
1. матеріальні витрати
2. витрати на оплату праці
3. відрахування на соціальне страхування
4. амортизація основних фондів танематеріальних активів
5. інші витрати.
Напобудову обліку витрат на виробництво впливає організація виробничиго процесу,під якою розуміють розміщення устаткування і робітників, рух матеріалів інапівфабрикатів, взаємовідносини окремих структурних підрозділів підприємства.
Завданнямпередбачено розробку програмного забезпечення для отримання одного з головнихзвітів по обліку витрат на виробництво, а саме «Відомості зведеноїтрудомісткості і розцінок на виріб в розрізі номерів цехів і кодів дільниць».
Програмаповинна забезпечувати виконання таких операцій:
ввідданих з первинного документа та їх запис на магнітний диск у файл послідовногодоступу;
читаннязаписів з дискового файлу івивід їх на дисплей з метою візуального контролю введених даних;
сортуваннязаписів файлу по кодах дільниць і номерах цехів та вивід просортованих записівна диск;
формуваннята вивід вихідного зведення на дисплей.
Дляреалізації поставленого завдання в середовищі TurboPascal 6.0 розробленопрограму ZATRATY.PAS.Перелічені вище операції реалізуються в програмі за посередництвом процедур.Вхідні дані отримання вхідного зведення зберігаються на ТМД у файліпослідовного доступу з фізичеим іменем MVPR.DAT.Сортування записів вхідного файлу MVPR.DATздійснюється в оперативній пам’яті з використанням методу обмінного сортування[1]. Для збереження просортованих записів створення окремого файлу непередбачено.
1.2 Вхіднаінформація
Вхідноюдля даної задачі є інформація первинних документів. Дані з первинних документіввводяться з клавіатури ПК і записуються на ТМД в файли MVPR.DAT (оперативний)та MPD.DAT(довідковий). Структура запису вхідного оперативного файлу представлена втаблиці 1.
Таблиця1
Структуразапису файла MVPR.DATНазва реквізиту Ідентифікатор Значність Тип даних Код цеху CEH 2 Цілий Код дільниці DIL 2 Цілий Код деталі DET 7 Символьний Об'єм виробничої партії OPP 4 Дійсний Час підготовчо-заключний TPZ 4(1) Дійсний Час штучний TST 4(1) Дійсний Розцінка підготовчо-заключного часу RPZ 5(2) Дійсний Розцінка штучного часу RST 5(2) Дійсний
Файлмає логічне ім’я dov,фізичне ім’я файлу — mpd.dat,повне ім’я файлу d:\pascal\kurs\data\mpd.dat.
Організаціяфайлу — послідовна.
Ввідданих і запис їх у файл здійснює процедура IN_DOV.
Вивідзаписів файлу на дисплей здійснюється процедурою OUT_DOV.
Структуразапису вхідного довідкового файлу представлена в таблиці 2.
Таблиця2
Структуразапису файла MPD.DATНазва реквізиту Ідентифікатор Значність Тип даних Код виробу VYRIB 2 Довгий цілий Код деталі DET 7 Символьний Кількість деталей у виробі KILDET 4 Цілий
Файлмає логічне ім’я oper, фізичне ім’я файлу — mvpr.dat,повне ім’я файлу d:\pascal\kurs\data\mvpr.dat.
Організаціяфайлу — послідовна.
Ввідданих і запис їх у файл здійснює процедура IN_OPER.
Вивідзаписів файлу на дисплей здійснюється процедурою OUT_OPER.
1.3Вихідна інформація
Вихідноюінформацією при розв’язуванні даної задачі є вихідне зведення, форма якогопредставлена в таблиці 2.
Таблиця2. Відомість зведеноїтрудомісткості і розцінок на виріб в розрізі номерів дільниць і кодів виробів/>Номер дільниці Код деталі Кількість деталей Норма часу Розцінка часу на деталь на виріб на деталь на виріб DIL DET KILDET NORMA1 V1 NORMA2 V2 Всього по коду деталі PD1 PD2 Всього по дільниці PV1 PV2
ПоказникиDIL, DET, KILDET вибираються з вхідного оперативного файлу MVPR.DAT. Показники NORMA1,NORMA2, V1,V2розраховуються за формулами:
/>,
деі — кількість деталей у j-мувиробі.
Підсумковіпоказники PD1, PD2,PV1, PV2розраховуються за формулами:
/>‚
деj — кількість виробів до складу якихвходить деталь з кодом DET;
/>‚
деk- кількістьрізних виробів‚ що випускаються на дільниці.
Відомістьзведеної трудомісткості і розцінок на виріб в розрізі номерів дільниць і кодівдеталей використовується для списання сум з синтетичного рахунку №40 «Готовапродукція» на синтетичний рахунок № 45 «Товари відвантажені, виконані роботи тапослуги». Відомість також використовується відділом збуту підприємства дляконтролю за виконанням угод на постачання готової продукції.
Вихіднезведення «Відомість зведеної трудомісткості і розцінок на виріб в розрізіномерів дільниць і кодів деталей» формується на основі даних вхідного файлу MVPR.DAT,попередньо просортованого по номеру дільниці та коду деталі.
Формуваннята вивід зведення на дисплей здійснюється процедурою VIDOMІST.
2. Практична частина2.1 Архітектура програми
Поставленазадача реалізується програмою ZATRATY1.PAS.
Програмаскладається з головного блоку (блок-схему див. додаток 1) та п’яти процедур:
- IN_DOV;
- OUT_DOV;
- IN_OPER;
- OUT_OPER;
- VIDOMIST.
Длявиконання програми необхідно виконати такі дії:
1) увійти в середовище програмування TurboPascal;
2) завантажититекст програми — F10, File, Open, ZATRATY1.PAS);
3) відкомпілювати програму в довільномурежимі(наприклад Compile, Compile);
4) виконати програму (F10, Run).
Програматакож може бути завантажена і виконана з середовища операційної оболонки NortonCommander шляхом запуску ZATRATY1.EXE(попередньо програма повинна буди відкомпільована з опцією DestinationMemory).
Програмавиводить на дисплей головного меню, котре пропонує користувачеві вибір однієї зопцій:
— запис довідника на диск;
— вивiд довідника на дисплей;
— запис даних на диск;
— вивiд файлу на дисплей;
— вивiд вихідного зведення на дисплей;
— завершення роботи.
Привиборі деякого пункту меню викликаєтьсявідповідна процедура. Завершення роботи програми і повернення в середовищесистеми програмування TurboPascal здійснюється принатисканні клавіші Esc,що відповідає вибору опції «Завершення роботи». Програма формує на ТМД файлипослідовного доступу MVPR.DATі MPD/DATта формує на основі даних цих файлів відомість зведеної трудомісткості ірозцінок на виріб в розрізі номерів дільниць кодів деталей.
Процедурипрограми ZATRATY1.PASмає таке призначення.
Процедура In_Oper.Призначення — ввід даних з первинних документів ізапис їх на диск у файл MVPR.DAT.Процедура викликається з головного меню програми при виборі пункту «Запис данихна диск» (функціональна клавіша F4).Процедура виводить на дисплей екранну форму длявводу даних з первинних документів. Ввід даних здійснюється в такійпослідовності:
- номер дільниці;
- код деталі;
- об'єм виробничої партії;
- часу підготовчий;
- час штучний;
- розцінка підготовчого часу
- розцінка штучного часу.
Післявводу запису користувачеві пропонується продовжити ввід даних, натиснувшиклавішу Enter, або завершити ввід, натиснувши комбінаціюклавіш CTRL+Z.В останньому випадку процедура припиняє роботу і повертає керування в програму.
Процедура Out_Oper.Призначення — читання вхідних даних з дискового файлу MVPR.DATтавивід їх на дисплей. Процедуравикликається з головного меню програми при виборі пункту «Вивід файлу надисплей» (функціональна клавіша F5).При ініціалізації процедури на екран виводиться екранна форма и відкриваєтьсявхідний файл MVPR.DATдля читання. Записи файлу зчитуються з диска один за одним і виводяться надисплей (див. додаток 4). Процедуразавершує роботу при досягненні кінця файлу MVPR.DATі передає керування у викликаючу її програму.
Процедура Vidomist.Призначення — вивід вихідного зведення на друкуючий пристрій ПК. Вхіднаінформація для жаної процедури зберігається у файліMVPR.DAT. Виклик процедури здійснюється з головного меню програми принатисканні функціональної клавіші F6, тобто при виборі пункту «Вивід таблиці надисплей». Процедура в свою чергу викликає процедури DRSUM1,DRSUM2.
Данапроцедура здійснює ввід записів вхідного файлу MVPR.DATтаформатований вивід їх на друк з одночасним підрахунком підсумків покоду деталі та коду дільниці. При досягненні кінця файлу MVPR.DAT процедуразавершує свою роботу і передає керування в програму.
Блок-схемапроцедури представлена в додатку 3.
2.2 Опис програми
Програмаскладена і відладжена в середовищі TurboPascal 6.0.На початку програми згідно вимог технології програмування розміщується вступнийкоментар, а решта операторів програми мають таке призначення:
001 Заголовокпрограми
002 Підключеннязовнішніх модулів управління дисплеєм (Crt)та друкуючим пристроєм (Printer)
003 опистипу даних vypusk для описуструктури запису оперативного вхідного файлу
004 Опистипу даних vyroby для описуструктури довідкового вхідного файлу
005 описдискових файлів OPER та DOV‚робочих змінних програми
006 Заголовокпроцедури IN_DOV
007 Початокпроцедури
008 Очисткаекрану
009-015 Вивідекранної форми для вводу даних
016 Присвоєннясистемній змінній ChekEofістиного значення, що забезпечує переривання вводу даних з клавіатури здопомогою комбінації клавіш CTRL+Z
017 Відкриттядискового файлу DOV для записуданих з первинних документів
018 Заголовокоператора присвоєння
020 Початокциклу, котрий буде виконуватись поки змінна eofне набуде значення true ( цикл вводуданих з клавіатури)
021-023 Ввідпоказників код виробу (VYRIB)‚код деталі (DET)‚ кількість деталей (KILDET)
025 Записвведених даних у вхідний дисковий файл DOV
024 Збільшеннязмінної позиціонування курсора на одиницю
026 Кінецьдії оператора приєднання
027 Закриттядискового файлу DOV
028 Кінецьциклу вводу даних
029 Кінецьтіла процедури
030 Кінецьпроцедури In_Dov
031 Заголовокпроцедури Out_Dov
032 Початокпроцедури
033-039 Вивідекранної форми для відображення вхідних даних
040 Відкриттядискового файлу DOV для читаннязаписів
041 Присвоєннязмінній позиціонування курсора початкового значення 8
042 Початокциклу вводу записів файлу DOV(поки не eof)
045 Зчитуваннязапису файлу Dov у змінну vrb
046 Форматованийвивід полів введеного запису на дисплей
047 Збільшеннязмінної позиціонування курсора на одиницю
048 Кінецьциклу вводу записів файлу MVPR
049-050 Вивідостанньої стрічки екранної форми
051 Організаціязупинки у виконанні програми (очікування вводу довільного символа з клавіатури)
052 Закриттядискового файлу DOV
053 Кінецьпроцедури Out_Dov
054 Заголовокпроцедури In_Oper
055 Початокпроцедури
056 Очисткаекрану
057 Присвоєннясистемній змінній ChekEofістиного значення, що забезпечує переривання вводу даних з клавіатури здопомогою комбінації клавіш CTRL+Z
058 Відкриттядискового файлу OPER для записуданих з первинних документів
059 Заголовокоператора присвоєння
062-072 Вивідекранної форми для вводу даних
061 Початокциклу, котрий буде виконуватись поки змінна eofне набуде значення true ( цикл вводуданих з клавіатури)
063-069 Ввідпоказників номер дільниці (DIL)‚код деталі (DET)‚ об'єм виробничоїпартії (OPP)‚ час підготовчий (TPZ)та штучний (TST)‚ розцінкапідготовчого (RPZ) та штучного часу (RST)
070 Записвведених даних у вхідний дисковий файл OPER
073 Кінецьдії оператора приєднання
074 Кінецьциклу вводу даних
075 Закриттядискового файлу OPER
076 Кінецьпроцедури In_Oper
077 Заголовокпроцедури Out_Oper
078 Початокпроцедури
079 Відкриттядискового файлу Oper для читаннязаписів
080-086 Вивідекранної форми для відображення вхідних даних
087 Присвоєннязмінній позиціонування курсора початкового значення 10
088 Початокциклу вводу записів файлу Oper(поки не eof)
090 Зчитуваннязапису файлу OPER у змінну vps
091-093 Форматованийвивід полів введеного запису на дисплей
094 Збільшеннязмінної позиціонування курсора на одиницю
095 Кінецьциклу вводу записів файлу Oper
096-097 Вивідостанньої стрічки екранної форми
098 Організаціязупинки у виконанні програми (очікування вводу довільного символа з клавіатури)
099 Закриттядискового файлу Oper
100 Кінецьпроцедури Out_Dov
101 Заголовокпроцедури VIDOMIST
102 опислокальної мітки pdd
103 Початокпроцедури
105 Відкриттядискового файлу OPER для читання
106-113 Вивідзаголовку та шапки вихідного зведення на друк
114 Читаннязапису файлу OPER в змінну vps
115 Ініціалізаціязмінних для підрахунку підсумків по коду дільниці
116 Заголовокоператора приєднання
117 Заголовокциклу по кінцю файла OPER
118 Запам’ятовуваннякоду деталі введеного запису в змінній koddet
119 Присвоєнняпочаткових значень змінним pd1,pd2,призначених для підрахунку підсумків по коду деталі
121 Заголовокциклу по коду деталі
122 Підготовкафайлу Dov до читання записыв
123 Вивідкоду дільниці та коду деталі
124 Заголовокциклу по кінцю файла DOV
125 Ввідзапису файла DOV
126-129 Підрахунокпоказників norma1, norma2,v1, v2
130 Умовнийоператор, котрий перевіряє, чи змінився код деталі і випадку істинного значеннязабороняє повторний вивід коду дільниці та коду деталі
131 Вивід показників norma1, norma2, v1, v2
132-133 Підрахунокпідсумків по коду деталі
135 Кінецьциклу обробки запису довідкового файлу
136 Ввіднаступного запису оперативного файлу
137 Перевіркаумови‚ чи досягнуто кінець файлу і у випадку істинного значення перехід намітку pdd (оператор 138)
139 Вивідпідсумків по коду деталі
140-141 Підрахунокпідсумків по коду дільниці
142 Завершенняциклу по кінцю файлу Oper
143-145 Вивідпідсумків по дільниці
146 Закриттяфайлу Oper
147 Закриттяфайлу Dov
148 Організаціяпаузи у виконанні програми
149 Кінецьдії оператора приєднання
150 Кінецьпроцедури VIDOMIST
151 Початокголовного блоку програми
152-153 Асигнуванняфайлів OPER (фізичне ім'я mvpr.dat)та DOV (фізичне ім'я mpd.dat)
154 Заговокциклу виводу меню програми
156 Очисткаекрану
157-158 Встановленняосновного та фонового кольорів
159-172 Вивідголовного меню програми та повідомлення «Виберіть режим роботи»
173 Очікуваннянатискання клавіщі на клавіатурі та присвоєння коду натиснутої клавіші змінній vybir
174 Заголовокоператора вибору, котрий аналізує код натиснутої клавіші
175 Викликпроцедури IN_DOV,якщо натиснуто клавішу F2(код клавіші 6016)
176 Викликпроцедури OUT_DOV,якщо натиснуто клавішу F3(код клавіші 6116)
177 Викликпроцедури IN_OPER,якщо натиснуто клавішу F4(код клавіші 6216)
178 Викликпроцедури OUT_OPER,якщо натиснуто клавішу F5(код клавіші 6316)
179 Викликпроцедури VIDOMIST, якщо натиснутоклавішу F6 (код клавіші 6416)
180 Операторвиходу, завершення роботи програми при натисканні клавіші Esc(код 2716)
181 Кінецьоператора вибору
182 Кінецьциклу виводу меню
183 Кінець програми
Блок-схемапрограми представлена в додатку 1,текст програми представлено в додатку 3.
2.3 Контрольний приклад та результатмашинного експерименту
Випробуваннябудь-якої системи є набільш відповідальним і пов’язаний з найбільшимитруднощами і найбільшими втратами часу. Відладка і тестування — найважливішіжиттєвого циклу програм. Не можна робити висновок про правильність програмилише на тій підставі, що програма повністю протрансльована (відкомпільована) івидала числові результати. Все, чого досягнуто в даному випалку — це отриманнядеякої вихідної інформації, необов’язково правильної. В програмі все ще можутьміститись логічні помилки. Тому необхідно здійснювати «ручну» перевіркумащинних результатів.
Існуєкілька способів перевірки правильності машинних результатів:
1) обчислення результатіввручну;
2) отримання результатів здовідкової літератури, документації або сукупності таблиць;
3) отримання результату здопомогою іншої програми.
Дляперевірки правильності створеної програми розроблено тестові дані, представленітаблиці 3.
Таблиця3.
Тестовідані для перевірки правильності програми.
Довідковийфайл Оперативний файлКод виробу Код деталі Кількість деталей у виробі Код дільниці Код деталі Норма часу на одну деталь Розцінка за одну деталь 54 540001 12 17 540001 2,29 5,72 55 540001 10 17 540003 5,28 6,65 56 540001 8 17 540017 2,75 3,96 57 540001 15 58 540003 20
Продовженнятаблиці 3.59 540003 18 61 540003 25 71 540017 10 72 540017 10 73 540017 12 74 541003 24 84 541003 23 87 571003 12
Післяобробки процедурою IN_OPERвхіднідані записуються на диск і виводитись на дисплей процедурою OUT_OPER.Екраннакопія роботи процедури представлена в додатку 4.
Длярозробки контрольного прикладу використано табличний процесор Excelінтегрованогопакету MicrosoftOffice 97.Контрольний приклад представлено в таблиці 4.
Таблиця4.
/>
Дані,представлені в таблицях 3 і 4 співпадають з результатами роботи програми,представленими на екранних копіях (додатки 4, 5), що свідчить про те, щопроцедури вводу даних та формування і друку відомості працюють вірно.
Такимчином, можна стверджувати, що програма дає правильні результати для розробленихтестових даних. Однак висновок про правильність програми можна зробити тількипісля тривалої експлуатації.
Висновки
Розв’язуванняекономічних задач з використанням персональних комп’ютерів в умовах ринковоїекономіки набуває великого практичного значення, оскільки дає можливістьотримати оперативну та достовірну інформацію. Використання з цією метою готовихпакетів прикладних програм має певні вади, найважливішими серед яких є високавартість фірмових пакетів та складність їх прив’язки для розв’язку конкретних,особливо нескладних задач. Тому надзвичайно важливо вміти самостійно складатипрості програми для розв’язування задач економічного характеру.
Вданому курсовому проекті розроблено і описано програму для отримання відомостітрудомісткості і розцінок на виріб в розрізі дільниць та кодів деталей. Длярозробки програми вибрано мову Паскаль (середовище TurboPascal 6.0).Програма розроблена із застосуванням методики процедурного програмування.
Програмавідкомпільована з отриманням незалежного ехе-файла та відладжена звикористанням набору тестових даних. Контрольний приклад для перевіркироботоздатності програми розроблено з використанням табличного процесора Excelз інтегрованого пакету MicrosoftOffice97. Результатмашинного експерименту та контрольний приклад повністю співпали, тому можназробити висновок про можливість використання розробленої програми на практиці.Дана програма може бути використана також при розробці пакету програм дляавтоматизованої системи обробки інформації по обліку нормування праці та затратна виробництво для конкретного замовника.
Списоквикористаної літератури
1. В.Я.Сердюченко.Розробка алгоритмів та прграмування мовою TurboPascal. — Х.: «Паритет»,1995. — 349 с.
2. М.С.Пушкар, Г.П. Журавель, Ю.Я.Литвин,В.Г. Мельник. «Теоретичніоснови бухгалтерського обліку», видання друге, перероблене і доповнене.Тернопіль, 1998.
3. Н.М.Ткачнко.«Бухгалтерський облік на птдприємствах України з різними формами власності».Навчальний посібник. Видання 4-е, доповнене. К.: «А.С.К.», 1998.
4. Д.ВанТассел. Стиль, разработка, эффективность, отладка и испытание программ. М.:«Мир», 1985. — 332 с.