Розробка комплексу програм автоматизації праці менеджера торгової фірми

Міністерство освіти і науки України Вінницький державний технічний університет

Інститут автоматики; електроніки та комп’ютерних систем управління

Факультет автоматики та комп'ютерних систем управління Кафедра комп'ютерних систем управління











КУРСОВА РОБОТА

з дисципліни “Алгоритмічні мови та програмування.”

на тему «Розробка комплексу програм автоматизації праці менеджера торгової фірми „ТІМІ”»

			Курсова робота допущена до захисту

			

			

			

			

			Керівник _______________

2007 р. к.т.н.,доц. Міщенко С.М.

Курсова робота захищена з оцінкою ____________

	Підписи членів комісії _______________________

	Студентка гр. 4АС-04 Петровська Т.М.











2007


Зміст



Вступ

1 Варіантний аналіз та вибір методів розв’язування

1.1 Основі поняття та визначення

1.2 Особливості розробки баз даних

1.3 Особливості розробки багатоієрархічного меню

1.4 Опис об’єкта дослідження

Алгоритм рішення задачі

2.1 Планування вхідних та вихідних даних

2.2 Описовий алгоритм головної програми та її структури

2.3 Схема алгоритму управляючої програми

2.4 Опис авторської заставки

2.5 Структура модулів та опис функцій

2.6 Опис файлів та розробка структур запису файлів

3 Лістинг керуючої програми

3.1 Лістинг головної програми TIMIDlg

3.2 Лістинг програми StockFrm.Cpp

3.3 Лістинг програми ClientFrm.cpp

3.4 Лістинг програми TIMI.cpp

4 Тестування програми

4.1 Опис тестів

4.2 Аналіз результатів тестування

5 Дослідження ефективності програми

6 Інструкція системному програмісту

7. струкція користувачеві

Висновки по роботі

Література

Додаток А


Анотація



В данній курсовій роботі знаходяться розробки програмного забезпечення для розробки комплексу програм автоматизації праці менеджера торгової фірми „ТІМІ” по замовленню зі складу фірми списку ліків і виконаних замовлень покупців.

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

Розробленно авторську аставку. Розглянуто розробку структури запису файлу. Показано лістинг всієї програми.

Проведено тестування: меню, та всієї програми в цілому. Тести показали, що програма готова до використання. Проведено дослідження на ефективність програми, що дало змогу визначити швидкодію програми.

Даний проект розробленно для менеджерів в магазинах, лікарнях, аптеках в цілях зменшення робочого часу та збільшення швидкості обробки інформації. Даний проект допоможе їм у виданні інформації клієнту-покупцю, про наявність товару на складі, їх кількість та ціну; менеджер при постачанні нового товару може дописувати його в склад, або ж навпаки видаляти його зі списку. Тобто ефективність за допомогою даного проекту робота менеджерів набагато покращиться!!!


Вступ



Стрімкий розвиток компютерної техніки і її різноманітного програмного забезпечення – це одна з характерних прикмет сучасного періоду розвитку суспільства. Технології , основним компонентом яких є компюткр,проникають практично в усі сфери людської діяльності. те, що недавно вважалось фантастикою, тепер, завдяки науково-технічному прогресу,особливо прогресу в області компютерних технологій,стало реальністю.

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

Інформаційно-довідкові системи - це програми-оболонки, службовці для керування масивами і базами даних. У наше століття загальної комп'ютеризації інформаційно-довідкові системи значно полегшують працю людини у всіх галузях народного господарства. Бухгалтерам підприємств і фірм тепер не потрібно перебирати гори паперів, щоб одержати всі дані про співробітника: досить завантажити інформаційно-довідкову систему і вона в зручній формі видасть усю необхідну інформацію.

Області застосування інформаційно-довідкових систем по-істині безмежні: це ведення статистики удою худоби на фермі, складання каталогів книг у бібліотеках і творів мистецтва в музеях, збір даних про наявність робочих вакансій у даному регіоні і багато чого іншого.

Метою данної курсової роботи є набрання навичок професіонального програмування саме на прикладі прогнрамування довідкової системи.

Найменування та галузь застосування об'єкта розробки

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

	Підстава для проведення робіт:

	Підставою для розробки такого програмного забезпечення є навчальний план спеціальності _______ , робота програм дисципліни "Алгоритмічні мови та програмування", індивідуальне завдання.

			Дата початку роботи: "	" "	" 2007 р.

			Дата закінчення роботи: "	" "	" 2007 р.

	Мета призначення розробки: Метою даної роботи є розробити програмне забезпечення автоматизованої системи обробки результатів змагань по футболу в ВДТУ та дослідити роботуцього програмного забезпечення.

	Вимоги до надійності: Надійність даного проекту забезпечується використанням структурного програмування; тим, що програма працює під керівництвом єдиного меню; в ній передбачені переривання, тобто програма реагує на невірні дії користувача, вказуючи на дії, які необхідно виконати.

Все програмне забезпечення та супроводжуюча технічна документація повинні задовольняти наступним ГОСТам:

ГОСТІ 9.701-90

ИСО 5807 - 85 ГОСТ на розробку програмних документів, схем алгоритмів програм, даних та систем.

ГОСТ 19.781 - 74 - Вимоги до розробки програмного забезпечення.

ГОСТ 19.101 - 77 (СТ СЗВ 1626 - 79) - Держстандарт на розробку програмної документації, видів програм та програмних документів.

ГОСТ 29.401 - 78 - Текст програми. Вимоги до змісту та оформлення.

ГОСТ 19.106 - 78 - Вимоги до програмної документації.

ГОСТ 7.1 - 84 та ДСТУ 3008 - 95 - Розробка технічної документації.

	Стадії та етапи розробки:

1.Уточнення постановки задачі та розробка технічного завдання на виконання розробки програмного забезпечення автоматизованої системи автоматизованої системи обробки результатів змагань по футболу в ВДТУ. (до	).

2. Варіантний аналіз існуючих методів поставленої задачі та вибір СУБД та програмного середовища для роботи з БД (до	).

3. Розробка структури програми та наповнення ключової бази даних (ДО 	).

		Розробка програмного забезпечення для автоматизованої системи
автоматизованої системи обробки результатів змагань по футболу в ВДТУ. (до	).

		Розробка інтерфейсу, планування, тестування розробленої програми
та створення бази даних (до	).

		Демонстрація програмного забезпечення (до	).

		Розробка пояснювальної записки (до	).

		Захист курсової роботи (до).

		1.8 Вимоги до безпеки: Розроблене програмне забезпечення повинно відповідати сучасним вимогам СНІП та ДЕСТів до робочого місця операторів ЕОМ.


1. Варіантний аналіз та вибір методів розв’язання комплексної програми автоматизації праці менеджера по замовленню зі складу фірми списку ліків і виконаних замовлень покупців



1.1 Основні поняття та визначення.



Використання сучасних персональних комп’ютерів охоплює майже всі сфери людської діяльності і поступово підпорядковує собі всі інформаційні технології.

Для того щоб комп’ютер міг виконати певні дії, необхідно скласти для комп’ютера програму, тобто точну послідовність інструкцій на зрозумілій комп’ютеру мові, як обробляти інформацію, тобто данні. Але довгий час для розв’язування задачі використовувалась тільки своя сукупність даних. Дані, що використовувалась в одній програмі, як правило не могли використовуватись в іншій. Ці обставини і були основною причиною розробки баз даних (БД).

База даних – це єдине, централізоване сховище даних певної предметної області, до якої мають доступ багато програм. Кожна програма має доступ до конкретних даних бази даних за допомогою спеціальних програм.

БД поділяють на такі 3 типи:

реляційна (РБД);

мережева;

ієрархічна.

Файл – це іменована область на диску або іншому носії інформації.. В файлах можуть зберігатися тексти, документи, готові до виконання програм і будь-які інші дані.

Розрізняють два типи файлів: фізичний та логічний. Для обробки інформації в більшості випадків використовують логічний файл.

Часто файли розділяють на дві групи: текстові та виконавчі. Текстові файли призначені для читання людиною. Вони, як правило, містять тексти програм, командні файли DOS і т.д. Кожна програма містить в своєму складі файл, який запускає цю програму. Такий файл називається керуючим файлом. По традиції керуючі файли мають розширення .EXE або .COM.

В практиці програмування доводиться мати справу з даними, які складаються з інших даних. Наприклад, данні про покупця складають прізвище, ім’я, домашню адресу, і т.д.

Запис (RECORD) – це структура даних, яка складається з окремих компонентів різного типу, що називаються полями. Запис можна порівняти з масивом, але на відміну від нього, в записові можуть зберігатись данні різних типів. Як і кожний тип, що задається програмою, тип “запис” повинен бути об’явлений в розділі “TYPE”. Цей тип даних дозволяє об’єднувати в одну структуру різні по типу елементи (поля), причому елементами записів можуть бути і структуровані типи даних (масиви, вкладені записи. В деяких програмах для економії пам’яті, а також щоб надати програмі коректного вигляду широко використовують варіантні записи. Записи є найкращим засобом для обробки інформації у базах даних.

За допомогою запису представляється деяка структура статистичних даних, яку можна роздивлятися як картку в каталозі або деякий бланк.



1.2 Особливості розробки багатоієрархічного меню



Меню – це інтерфейсний елемент або список об’єктів з якого необхідно зробити вибір. Для програми, що підтримує багатодокументний інтерфейс, присутність визначеного меню є обов’язковою.

Є такі види меню:

вертикальне:




Файл



Редактор

Справка

Замовлення

Пункт 1

Пункт 2

Пункт3

Файл

Редактор

Замовлення

Справка



горизонтальне:

Меню також поділяється на:

Однорівневе:

Двухрівневе:



Пункт 1



Пункт 2



Пункт 3



Підпункт 1.1



Підпункт 2.1



Підпункт 3.1

Головне меню

	

Підменю

	Багато ієрархічне:

1-й рівень

2-й рівень





Меню

Підменю 1

Підменю 2



Підменю 3



Підпідменю3.1



Підпідменю3.2



Підпідменю1.1

Підпідменю12



Підпідменю2.2




3-й рівень

Підменю – це випливаюче меню, що з’являється при виборі якого –небудь елемента з меню. Меню, що розгортається донизу, являє собою комбінацію стрічкового меню і декількох випливаючих меню.

Меню може працювати в:

—текстовому режимі;

—графічному режимі.

Існує ряд функцій, які дозволяють прикладній програмі працювати з меню. Ці функції призначені для:

- Дозволу /відміни ряду команд меню;

- Вставлення /зняття спеціальних відміток для коменд меню;

- Добавлення /змінення та видалення команд меню;

- Використання зображень в якості команд меню;

- Заміщення елементів меню;

- Створення та ініціалізація меню.

Функції для роботи з меню:

GetSubMenu – отримання посилання;

EnableMenuItem – зміна початкового стану меню;

CheckMenuItem – відміна команди меню;

AppendMenu – добавлення нових команд в кінець меню;

InsertMenu – добавлення нових команд в любе місце меню;

ModifyMenu – зміна існуючого меню або команд меню;

DeleteMenu – видалення команд з меню;

DrawMenuBar – перемалювання меню;

SetMenu – заміна меню;

RemoveMenu - знищення меню;

CreatePopupMenu – створення підменю;

CreateMenu – створення нового меню;

GetSistemMenu – зміна системного меню.

Контекстне меню потрібно вказувати мишею. Кожне системне меню не має ніякого відношення до конкретних функцій. Воно призначається для керування вікном даного типу.



1.3 Особливості розробки програм з базою даних



Файлова система – це сукупність програм, які забезпечують роботу з файлами та їх каталогами, а також сама сукупність файлів та каталогів, які зберігаються на зовнішніх пристроях.

Файл – це програма або організована сукупність цифрових, алфавітно-цифрових та інших даних. У зв’язку з цим відрізняють програмні файли та файли даних.

База даних - це набір записів і файлів, організованих спеціальною уявою. У комп'ютері, наприклад, можна берегти прізвища й адреси друзів або клієнтів. Один із типів баз даних - це документи, набрані за допомогою текстових редакторів і згруповані по темах. Інший тип - файли електронних таблиць, що об'єднуються в групи по характері їхній використання.

У загальному понятті база даних – це сукупність взаємопов’язаних данних, що зберігаються у зовнішній пам’яті ЕОМ організованих за певними правилами, що передбачають загальні принципи опису зберігання і опрацювання даних.

Інформація, що зберігається у базі даних, як правило, відноситься до певної предметної галузі.

Між елементами бази даних існують певні зв’язки. Залежно від характеру цих зв’язків розрізняють три типи організації баз даних:

		ієрархічний;

		мережний;

		реляційний.

До появи СУБД (системи управління базами даних) усі дані, що утримувалися в комп'ютерній системі постійно, зберігалися у виді окремих файлів. Система керування файлами, що звичайно є частиною операційної системи комп'ютера, стежила за іменами файлів і місцями їхній розташування. У системах керування файлами моделі даних, як правило, не використовувалися; ці системи нічого не знали про внутрішній уміст файлів.

Ієрархічні СУБД. Однієї з найбільш важливих сфер застосування перших СУБД було планування виробництва для компаній, що займаються випуском продукції.

Мережеві бази даних. Якщо структура даних надавалася складніше, чим звичайна ієрархія, простота структури ієрархічної бази даних ставала її хибою. Один запис міг бере участь у декількох відношеннях предок/нащадок. У мережній моделі такі відношення називалися множинами.

Мережні бази даних володіли такими перевагами:

Гнучкість. Множинні відношення предок/нащадок дозволяли мережній базі даних берегти дані, структура яких була складніше простої ієрархії.

Стандартизація. Поява стандарту CODASYL популярність мережної моделі, а великі постачальники міні-комп'ютерів реалізували мережні СУБД.

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

Як і ієрархічні бази даних, мережні базі даних були дуже жорсткими. Набори відношень і структуру записів припадало задавати наперед. Зміна структури бази даних звичайно означало перебудову всієї бази даних.

Реляційна модель даних. Концепція реляційної бази даних розроблена Е.Ф. Коддом у 1970 році. В основі цієї бази даних лежить математичне поняття відношення. Відношення представляються у вигляді двовимірних таблиць.

Реляційною називається база даних, у якій всі дані, доступні користувачу, організовані у вигляді таблиць, а всі операції над даними зводяться до операцій над цими таблицями. Кожен рядок таблиці містить інформацію про об’єкт системи, а кожен стовпчик – певні характеристики, властивості або атрібути цих об’єктів. Рядки такої таблиці називаються записом, а стовпці – полями.

Головна особливість: кожен запис повиннен відрізнятися за допомогою ключа певного поля або декількох ключів багатьох полів, що ідентифікують запис, тобто роблять його унікальним.



1.4 Опис об’єкту дослідження



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

	- вибір і розробку технічних засобів(оператна частина);

	- вибір, розробку і тестування програмного забезпечення.

В якості технічних засобів автоматизації аналізу роботи вибираємо персональний комп’ютер середнього класу з комплектом пристроїв найбільш розповсюджених:



Процесор 

Celeron 400 

AMD Duron 700

Intel Pentium III- 800

Оперативна

пам’ять

Накопичувач на

жорстких дисках

Накопичувач на м’яких дисках

DIMM 64 Mb PC 133

HDD 10.2 Gb



FDD 1.44 Mb



DIMM 128 Mb PC 133

HDD 20.4 Gb



FDD 1.44 Mb

DIMM 256 Mb PC 133

HDD 40.0 Gb



FDD 1.44 Mb



Монітор

15”Samsung 55B

15”Samsung 55S

15”Samsung 700NF



Із даної таблиці на основі вимог до ОП(>64 MB), процесору(166 MHz), монітору(15” SVGA), графіки (швидкість обміну, швидкість виклику ) складаємо структурну схему автоматизованого комплексу програм (мал.1).

Для автоматизованого робочого місця (АРМ) потрібно:

	Базу даних, яка містить інформацію про номер замовлення;

номер постачальника дата замовлення; клієнт (повна назва фірми, адреса, телефон); ім’я покупця (прізвище, ім’я, по-батькові, номер телефону); опис товару;

2. Комплекс програм по введенню БД (створення БД, до запис нових даних в базу);

	3. Комплекс програм по обробці БД;

4. Інтерфейс користувача;

5. Комплекс програм по обробці програмних переривань;

6. Комплекс програм по захисту БД

7. Операційна система Windows 9x, 2000

8. Керуюча програма, яка об’єднує весь комплекс програм



CELERON 400



Sven Slim300

15”Samsung55 S

Накопичувач на жорсткі диски ддискахдисках

EPSON LX

FCC 2

Контролер принтера

Контролер миші

 20.4 Gb

База даних

Програ-мне забезпе-чення

 монітор

Контролер миші

 Процесор 

		

		

		

		

		

		

		

		

																		


2. Алгоритми рішення задач



2.1 Планування вхідних та вихідних даних



В даній роботі вхідні та вихідні дані мають таку конфігурацію:



Таблиця 2.1.1 Таблиця вхідних даних

Тип параметра

Назва параметра

Ім’я параметра в програмі.

Тип даних

Призначення

Вхідний

глобальний

Дата

замовлення

Data

Int

Показує дату замовлення

Вхідний

глобальний

Номер

замовлення

NomZam

Int

Для введення

номера замовлення

Вхідний глобальний

Назва

клієнта

Klient

Char

містить дані про клієнта(повна назва фірми,)

Вхідний глобальний

Адреса

клієнта

Adress

Float

Відповідна адреса клієнта

Вхідний глобальний

Телефон

клієнта

Tel

Int

Відповідний телефон клієнта

Вхідний глобальний

Рахунок клієнта

Raxynok

Int

Відповідний рахунок клієнта

Вхідний глобальний

Номер постачальника

NomPost 

Int

Для введення номера постачальника

Вхідний глобальний

Покупець

Pokypech

Char

Для введення ім’я покупця

Вхідний глобальний

Опис

товару

Tovar

Char

Показує, який саме це товар

(назва)

Вхідний глобальний

Номер

товару

NumTovar

Int

Показує номер товару



Вхідний глобальний

Кількість

KolTovar 

Int

Показує кількість товару на складі



Вхідний глобальний

Ціна





Показує ціну товару за 1 одиницю

Вхідний глобальний

Оплата рахунку

Order

Float

Для введення оплати рахунку




При виведені, отримаємо такі дані:

Таблиця вихідних даних:



Таблиця 2.2.2

Тип параметра

Назва параметра

Ім’я параметра в T.П.

Тип даних

Призначення

Вихідний

глобальний

Дата

замовлення

Data

Int

Показує дату замовлення

Вихідний

глобальний

Номер

постачальника

NomPost

Int

Показує номер

постачальника

Вихідний

глобальний

Номер

замовлення

NomZam

Int

Показує номер замовлення

Вихідний глобальний

Клієнт

Klient

Char

містить дані про клієнта(повна назва фірми)

Вхідний глобальний

Адреса

клієнта

Adress

Float

Відповідна адреса клієнта

Вхідний глобальний

Телефон

клієнта

Tel

Int

Відповідний телефон клієнта

Вхідний глобальний

Номер постачальника

NomPost 

Int

Для введення номера постачальника

Вихідний глобальний

Покупець

Pokypech

Char

містить дані про покупця (ім’я покупця, номер телефону )

Вихідний глобальний

Назва

Tovar

Char

Показує, який саме це товар (назва)

Вхідний глобальний

Номер

товару

NumTovar

Int

Показує номер товару

Вхідний глобальний

Кількість

KolTovar 

Int

Показує кількість товару на складі

Вхідний глобальний

Ціна за 1





Показує ціну товару за 1 одиницю

Вхідний глобальний

Сума

Order

Float

Для введення оплати рахунку




2.2 Описовий алгоритм головної програми та її структура



Основна програма працює в режимі двухрівневого меню, яке розроблене в VisualC++. Головне меню містить такі пункти:

- “Файл”

“Редактор”

“Замовлення”

“Справка”

За допомогою пункту меню “Файл” можна вийти з даної програми.

“Редактор” може показати базу даних клієнта та товару, стерти, дописати або відредагувати стрічку.

За допомогою меню “Замовлення” можна вирішити слідуючі питання:

	перевірити наявність товару на складі (файл товарних запасів);

	оцінити платоспроможність клієнта (файл клієнта);

	якщо замовлення може бути виконаним, тоді складається наряд на продаж;

	в тому випадку, коли підсумок виплат за замовлення плюс непогашені текучі заборгованості клієнта фірми „ТІМІ ” перевищує встановлений для неї розмір кредиту, фірма повертає замовлення, повідомляючи, що останній може бути поданий знов після оплати раніше виставлених рахунків.

У пункті меню “Справка” можна побачити авторську заставку та весь виклад інформації про автора та програму.




2.3 Логічна схема керуючої програми







Рисунок 2.3.1 Логічна схема керуючої програми





Рисунок 2.3.2 Логічна схема підменю „Файл”




Рисунок 2.3.3 Логічна схема підменю „Редактор”





Рисунок 2.4.4 Логічна схема підменю „Справка” 



2.4 Опис авторської заставки



При запуску програми з’являється заставка на якій зображено Всесвіт та планету Земля, на якій зображені всі материки а також назву моєї фірми ТІМІ. Перша буква цієї фірми—це моє ім’я Тая, інші букви—імена моїх співробітників:

І—Іра, М—Марина, І—Інна, які насправді є моїми найкращими подругами.Ось чому саме я вибрала таку назву фірми та показала її в заставці. Також на планеті зображений знак медицини, адже моя фірма повинна виконувати замовлення покупців на ліки. Всесвіт та планета Земля характеризують те, що моя фірма „ТІМІ” відома всюди та діє у всіх куточках планети. Тобто кожна людина може користуватись послугами моєї фірми, незалежно від того, де вона знаходиться.

Програма написана на VisialС++ в Projects/ Win32 Console Application далі

Files/ C++Source File. Для написання програми використовуємо OpenJaly-бібліотеку для малювання графіки. Тому авторська заставка має такий вигляд:





Рисунок 2.3.1 Всесвіт





Рисунок 2.3.2 в якому планета в розгорнутому вигляді має такий вигляд:



2.5 Структура та алгоритм функції та класів програми.



Стуктура модуля ТIMIDLG має слідуючий вигляд:


Рисунок 2.5.1

	

ТIMIDLG

	

OnCloseupCombo1

OnRowColChangeMsflexgrid1



OnInitDialog

DOStockDialog

OnChangeEdit5

DoClientDialog

OnButton1



OnButton3

OnButton2

OnCloseupCombo2

OnPaint

OnQueryDragllon



OnMenuitemClients

OnMenuItemOrder

OnMenuitemStock







OnMenuitem32776

OnMenuitem32771

OnMenuitem32775





Опишемо кожну функцію окремо:

BOOL CTIMIDlg::OnInitDialog()

Дана функція запускається при ініціалізації форми для роботи з

списком товарів, виконує загрузку всіх товарів з файлів в таблиці.



Таблиця 2.5.2

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Стрічка з назвою товару

S[80]

Char

Буфер для зчитування рядка символів з файла

Локальний параметр

Кінець файла

Next

Char

Перевіряє досягнення кінця файла

Локальний параметр

Введення товару

File

ifstream

Файловий поток для вводу в програму

Параметри функції OnInitDialog

		void CTIMIDlg::DoStockDialog(void)

		Дана функція створює модальне вікно StockFrm (про склад товару)



Таблиця 2.5.3

	Параметри функції OnInitDialog

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Стрічка з назвою товару

S[80]

Char

Буфер для зчитування рядка символів з файла

Локальний параметр

Кінець файла

Next

Char

Перевіряє досягнення кінця файла

Локальний параметр

Введення товару

File

ifstream

Файловий поток для вводу в програму

		

		void CTIMIDlg::DoClientDialog(void)

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



Таблиця 2.5.4

Параметри функції DoClientDialog

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Стрічка з назвою товару

S[80]

Char

Буфер для зчитування рядка символів з файла

Локальний параметр

Кінець файла

Next

Char

Перевіряє досягнення кінця файла

Локальний параметр

Файл клієнтів

cfile

ifstream

Файловий поток для вводу в програму нових клієнтів

		

		void CTIMIDlg::OnCloseupCombo1()

		Це подія, яка виникає, коли користувач вибирає клієнта з випадаючого списку. Вона виконує пошук даних клієнта і відповідно автоматично заповнює поля списком клієнтів, виконує загрузку всіх клієнтів з файлів в таблиці.



Таблиця 2.5.5

Параметри функції OnCloseupCombo1

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Параметр

I

int

Для ітерації циклу

		

		void CTIMIDlg::OnCloseupCombo2()

		Функція, яка працює з товаром, автоматично шукає його ціну.



Таблиця 2.5.4

		Параметри функції OnCloseupCombo2

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Указателі

*S0, *S1 

Char

Тимчасові змінні

Локальний параметр

Змінна

Decimal

Int

Для зберігання розділового знака (для числа з плаваючою точкою)

Локальний параметр

Змінна

Sign

Int

Для зберігання знака числа

Локальний параметр

Указатель

*buffer

char

Приймає в себе результати конвертації числа з float в string

Локальний параметр

Стала

Precision=10

Int

Кількість значущих знаків після коми

		

		void CTIMIDlg::OnChangeEdit5()

		Виникає, коли користувач змінює кількість товару, виконує множення товару, що купляється, автоматично знаходить ціну товару, виконує множення на кількість і виводить результат у відповідне поле.



Таблиця 2.5.5

		Параметри функції OnCloseupCombo2

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Указателі

*S0, *S1 

Char

Тимчасові змінні

Локальний параметр

Змінна

Decimal

Int

Для зберігання розділового знака (для числа з плаваючою точкою)

Локальний параметр

Змінна

Sign

Int

Для зберігання знака числа

Локальний параметр

Указатель

*buffer

char

Приймає в себе результати конвертації числа з float в string

Локальний параметр

Стала

Precision=10

Int

Кількість значущих знаків після коми

		

		void CTIMIDlg::OnButton3()

		Виникає при спробі користувача вивести форму наряду. Спочатку перевіряє чи всі поля наряду правильно заповнені: чи є достатньою кількість заказаного товару на складі, провіряє борг (чи не перевищує він кредит 1000 грн.). Якщо всі попередні умови виконались, то виводиться форма наряду, автоматично зменшується кількість товару на складі на кількість замовлених одиниць товару, відповідно зменшується значення рахунку клієнта.




Таблиця 2.5.6

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Стрічка

S[80] 

Char

Для конвертації даних

(з int в string)

Локальний параметр

Повідомлення

S

CString

 Зберігає різні повідомлення

Локальний параметр

Параметр

i

Int

Для зберігання ітерації циклу

		

		void CTIMIDlg::OnMenuitem32775()

		Визиває зовнішній файл "logo.exe" з заставкою.

		void CTIMIDlg::OnMenuitem32776()

		Виводить діалогове вікно про автора.

		void CClientFrm::OnRowColChangeMsflexgrid1()

		Виникає, коли користувач вибирає якусь стрічку з таблиці клієнтів (товарв) і заповнює даними з виборної стрічки поле для редагування.

		void CClientFrm::OnButton3()

		товару, відповідно зменшується значення рахунку клієнта.



Таблиця 2.5.7

Тип параметра 

Назва параметра

Ім.’я параметра в програмі

Тип даних

Призначення

Локальний параметр

Стрічка

S[80] 

Char

Для конвертації даних

(з int в string)

Локальний параметр

Параметр

і

Int

 Для зберігання ітерації циклу 

		

		2.6 Структура файлів бази даних

		

		В програмі містяться файли, які представлені в таблиці 2.6.1:

		
Таблиця 2.6.1 Timi files:

		Clients

		Файл клієнта

		Font 

		Допоміжний файл, який допомогає роботі програми

		Msflexgrid 

		Допоміжний файл, який допомогає роботі програми

		Order

		Файл форми наряду (документу)

		Picture

		Допоміжний файл, який малює форму наряду та ін.

		Rowcursor

		Допоміжний файл, який підключає курсор до програми

		stdAfx

		Допоміжний файл, який допомогає роботі програми

		stockFrm

		Файл складу товару

		TimiDlg

		Містить головну частину програми

		

		Сама ж база даних складається з 2-х текстових файлів: Clients.txt та stock.txt.

		Файл Clients.txt—це файл клієнта.

		Аптека 32

		Келецька 10

		5432432

		-949

		Аптека 1

		келецька 1

		65653

		0

		Аптека 13

		Келецька 13

		654365

		-15

		Пилипенко

		705-А

		24849

		-32

		В даному файлі інформація та тип даних повторюється через кожні чотири стрічки. Перша стрічка—назва фірми-клієнта, має тип даних char[80],

		друга стрічка—адреса фірми-клієнта, тип даних char[80],

		третя—номер телефона фірми-клієнта, тип даних int,

		четверта—стан рахунку, тип даних int.

		Але розмір даного файла змінюється автоматично, коли ми дописуємо клієнтів в програмі.

		Представимо це у вигляді таблиці 2.6.2

		

		Таблиця 2.6.2 Структуру запису файла Clients.txt

		

		

		№

		(п.п )

		Фірма

		Адреса

		Телефон

		Рахунок

		Тип значень

		Int

		Char

		Char

		Int

		int

		Діапазон значень

		—

		[80]

		[80]

		1..8

		-1000..1000

		

		Файл stock.txt—це файл товарів

		Даний уривок програми ілюструє, як читається файл товарів:

ifstream sfile;

	sfile.open("stock.txt");

	char s[80],next;

	int i=0;

	do

{



m_StockList.SetRows(++i+1);

m_StockList.SetTextMatrix(i,0,_itoa(i,s,10));

for (int j=1; j<=3;j++)

{

sfile.getline(s,80);

m_StockList.SetTextMatrix(i,j,s);

}

	next=sfile.peek();

}

while (next!=EOF);

sfile.close();

		Наприклад частина файлу stock..txt клієнта має такий вигляд:

		Йод

		234

		1.12

		Бинт

		221

		0.13

		Аспирін

		17

		1

		Панадол

		32

		2.3

		Аскорбинова кислота

		2036

		3.6

		Новокаїн

		129

		2

		В даному файлі інформація та тип даних повторюється через кожні три стрічки. Перша стрічка—назва ліків, має тип даних char[80],

		друга стрічка—кількість товару на складі, тип даних int,

		третя—ціна товару, тип даних float

		Але розмір даного файла змінюється автоматично, коли ми дописуємо новий товар на складі.

		Представимо це у вигляді таблиці 2.6.3

		

		Таблиця 2.6.3 Структуру запису файла

		

		№

		(п.п)

		Назва товару

		Кількість

		Ціна

		Тип даних

		int

		char

		int

		float

		Діапазон значень

		50

		1..80

		—

		—

		

		Лістинг програми

		Лістинг головної програми TIMIDlg, яка з’єднує всі функції:

		// TIMIDlg.cpp : implementation file

		
4 Тестування програм



4.1 Опис тестів



При запуску програми запуститься заставка, потім з’явиться головне вікно програми.

Тест 1:

Відкриємо пункт меню Файл, за допомогою якого можна вийти з програми.

Тест 2:

Відкриємо пункт меню „Редактор”, в якому спочатку виберемо підменю Клієнти. Отримаємо всю інформацію про клієнтів.

Тест 3:

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

Тест 4:

Видалимо якихось клієнтів зі списку. Це робимо за допомогою кнопки видалити, попередньо натиснувши на той рядок, який хочемо видалити.

Тест 5:

Виправимо деяку інформацію про клієнта, наприклад, змінимо їхню адресу. Для цього натиснемо на відповідне поле, стираємо та виправляємо те що потрібно, потім натискуємо на кнопку застосувати.

Тест 6:

Відкриємо пункт меню „Редактор”, в якому спочатку виберемо підменю Товари. Отримаємо всю інформацію про товари.

Як із клієнтами, можемо виконувати аналогічні дії з товарами: дописувати нові товари, видаляти їх зі списку, змінювати їх кулькість, ціну.

Тест 7:

Виберемо пункт меню Справка та підменю Про автора, де можна дізнатись про самого автора програми.

Тест 8:

Правильно заповнимо всі поля програми. Це будуть такі поля:

Дата замовлення, номер замовлення, клієнт, номер постачальника, покупець, опис товару, оплата рахунку.

Тест 9:

Отримаємо документ покупцеві, в якому буде міститися інформація про весь придбаний товар.

Тест 10:

Залишемо одне поле незаповненим.

Тест 11:

Подивимось, скільки одиниць деякого товару є на складі та у полі кількості замовленого товару напишемо навмисно більше товару.

Тест 12:

У полі виплат клієнта перевищемо встановлений кредит, який становить 100 грн.



4.2 Аналіз результатів тестування



Дана программа реагує як на курсори та клавішу Tab, так і на мишу.

Якщо ми відкриємо пункт меню файл, то за допомогою нього ми можемо вийти з даної програми.





Рисунок 4.2.1

Якщо ми перейдемо на пункт меню редактор, то там ми можемо відкрити файл клієнтів або товарів, які відповідно матимуть такі вигляди:





Рисунок 4.2.2





Рисунок 4.2.2



Тест 3 : Дозапис клієнтів

Дописали 4-х нових клієнтів і отримали тепер уже такий вигляд файлу „Клієнтів”, який зображений на рисунку 4.2.3





Рисунок 4.2.3 Дозапис клієнтів

Тест 4: Видалення клієнтів

При видаленні зі списку 2-х клієнтів Лікарня 1 та Аптека 1 отримаємо відповідно такий файл клієнтів, який зображений на рисунку 4.2.4





Рисунок 4.2.4 Видалення клієнтів



Тест 5: Змінення інформації

Змінимо адресу Аптеки 13 Келецька 13 на Барське шоссе 56 та запишемо новий їхній телефон. Одержаний результат представлений на рисунку 4.2.5





Рисунок 4.2.5 Змінення інформації



А склад товарів матиме такий вигляд:




Якщо вибрати пункт меню „Справка”, то можемо обрати заставку під іменем Logo, або інформацію про автора. Про заставку було описано в пункті 2.4 даної курсової роботи, а „Про автора” матиме такий вигляд:





Рисунок 4.2.6



В головному вікні робочої програми им повинні заповнити такі поля:

Дата замовлення, номер замовлення, клієнт, номер постачальника, покупець, опис товару, оплата рахунку.

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

Наприклад, вікно програми матиме такий вигляд:




Рисунок 4.2.7



Якщо всі поля будуть правильно заповнені, то впункті меню „Замовлення” видасться наряд на продаж, тобто документ, який показуватиме хто, що, скільки чого купляє, скільки коштує одиниця даного товару та скільки за це потрібно заплатити. Результат буде, наприклад таким:





Рисунок 4.2.8



Тест 10

Якщо якесь поле не буде заповнене, то при виборі пункту «Замовлення», з’явиться інформація, яка предсталена на рисунку 4.2.10





Рисунок 4.2.10

Тест 11

Якщо кількість замовленого товару перевищує кількість товару на складі, то інформація видається такою:





Рисунок 4.2.11



Тест 12

Якщо обраний клієнт перевищив кількість встановленого кредиту, який становить 1000 грн., то на екрані з’явиться повідомлення, яке представлено на рисунку 4.2.12:





Рисунок 4.2.12




Дослідження ефективності програми



У даній курсовій роботі розроблено програму для операційної системи Windows 9x/NT/XP на мові С++ в середовищі Microsoft Visual C++ 6.0. Для створення заставки використано графічну бібліотеку OpenGL, яка дозволяє швидко зображувати на екрані тривимірні об’єкти і виконувати ряд функцій над ними. Для полегшення розробки програми використовувався вбудований в середовище MVC++ 6.0 MFC Application Wizard. За його допомогою було створено основний каркас програми який забезпечує високу швидкодію виконання програми. Структура ПЗ представлена у таблиці 5.1

Основний модуль програми займає всього 650 кілобайт пам’яті. Це досягнуто тим що програми використовує динамічно завантажувані бібліотеки (DLL), що завантажуються по мірі необхідності і вивантажуються з пам’яті коли потреба в них відпадає. Але основна причина швидкодії є те що програма написана в середовищі Visual C++, яке відрізняється високою швидкодією і компактністю программ написаних в ньому.

Середній час запуску програми на комп’ютері з процесором AMD Duron(tm), processor 999MГц 0,2 сек. В программы використовують багато локальних змінних, які відомі тільки в середині функції. Таким чином локальні змінні зберігаються в стекі пам’яті, допомогаючи ефективності програми за допомогою економї пам’яті.

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

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



Таблиця 5.1 Структура програмного забезпечення

Ім’я файла

Розширення

Призначення

Розмір

clients

.txt

Текстовий документ

1Кб

stock

.txt

Текстовий документ

1кб

OrderFrm

.срр

Функція програми

2Кб

ClientFrm

.срр

Функція програми

4Кб

Font

.срр

Функція програми

3Кб

msflexgrid

.срр

Функція програми

29Кб

StdAfx

.срр

Функція програми

1Кб

StockFrm

.срр

Функція програми

4Кб

Picture

.срр

Функція програми

2Кб

rowcursor

.срр

Функція програми

1Кб

picture

.h

Бібліотека

8Кб

Rowcursor

.h

Бібліотека

2Кб

TIMI

.h

Бібліотека

2Кб

OrderFrm

.h

Бібліотека

2Кб

Resource

.h

Бібліотека

2Кб

TIMIDlg

.h

Бібліотека

2кб

StdAfx

.h

Бібліотека

3кб

OrderFrm

.h

Бібліотека

2кб

Resource

.h

Бібліотека

3кб

TIMI

.ncb

Допоміжний файл

49кб

TIMI

.Aps

Допоміжний файл

30кб

TIMI

.opt

Допоміжний файл

52кб

TIMI

.dsp

Допоміжний файл

6кб

TIMI

.dsw

Головний файл

1кб

TIMI

.rc

Допоміжний файл

18кб




6 Інструкція програміста



Моя програма може дуже допомогти менеджерам аптекам магазинів, кіосків, в яких продаються ліки, Адже їм можуть робити замовлення, при цьому вони можуть заплатити не одразу за замовлений товар, а потім, при чому їх заборгованість не повинна перевищувати кредит 1000 грн. Ім. При цьому видається чек, де показується інформація про дане замовлення.

Дана програма складається з 6 файлів. Це є файли clients.txt, stock.txt, space.ipg, wall.ipg, logo, TIMI.

Файл clients.txt—це текстовий документ, в якому міститься вся інформація про клієнтів.

Файл stock.txt— це текстовий документ, в якому міститься вся інформація про склад товарів.

Файл space.bmp—це точковий малюнок для авторської заставки, який містить зображення космосу.

Файл wall.bmp— це точковий малюнок для авторської заставки, який містить зображення планети.

Файл logo—це додаток до програми (авторська заставка).

Файл TIMI—це файл запуску програми (TIMI MFC Application)

Щоб запустити програму, на комп’ютері потрібно мати середовище Microsoft Visual C++ 6.0, а для запуску авторської заставки графічну бібліотеку OpenGL.

		
7 Інстрікція користувачеві

		

		7.1 Дана програма може стати в пригоді менеджерам по замовленням товарів зі списку ліків.

7.2	До початку роботи з програмою потрібно всі файли, що знаходяться на дискеті скопіювати у папку на жорсткому диску.

7.3 Для запуску робочого файла натискуємо подвійним клацанням миші на TIMI.exe, або ж іншим чином:

Microsoft Visual C++ 6.0File\OpenWorkspace\A:\TIMI\TIMI.dsw

7.4 При запуску даного файла на екрані з’являється авторська заставка з всесвітом, в якому обертається Планета „Земля”, на якій є зображення назви моєї фірми та знак медицини, який символізує призначення моєї фірми.

7.5 При закритті заставки, автоматично запускається й сама програма. Для видання покупцеві наряду на продаж (документу про його покупку), потрібно поперед заповнити всі поля в програмі, а то програма не зможе видати необхідний покупцеві чек.

7.4 Для окремого запуску заставки потрібно запустити файл Logo

7.5	Перехід по пунктах меню відбувається за допомогою клавіш управління курсором або курсором або клацанням миші.

7.6	Програма працює в інтерактивному режимі, тобто реагує на кожну дію користувача.

7.6 Для виходу з програми потрібно в головному меню вибрати пункт “вихід” і натиснути <ENTER> або ліву кнопку миші.

		7.7 Стуктура дискети:

Clients.txt, OrderFrm.cpp, ClientFrm.cpp, Font.cpp, msflexgrid.cpp, StdAfx.cpp, StockFrm.cpp, Picture.cpp, rowcursor.cpp, picture.h, Rowcursor.h, TIMI.h, OrderFrm.h, Resource.h, TIMIDlg.h, StdAfx.h, OrderFrm.h, Resource.h, TIMI.ncb, TIMI. Aps, TIMI. Opt, TIMI. Dsp, TIMI. Dsw, TIMI. Rc, Wall.bmp, spase.bmp, Logo.exe.




Висновки по роботі



В першій главі було розглянуто рішення таких задач як розробка баз даних, багатоієрархічного меню, бібліотек та модулів користувача.

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

В третій главі подано лістинг всієї програми, а саме головної програми та лістинг двох фіукцій.

В четвертій главі проведенно тестування меню та тестування самої програми. Всього зроблено 9 тестів, з яких чотири – це тестування меню, а інші - тестування програми.

В п’ятій главі зроблено дослідження на ефективність програми.

В шостій главі подана інструкція системному програмісту, описані мінімальні характеристики комп’ютера для роботи даної курсової, зроблено перелік файлів без яких неможлива робота програми, які драйвера повинні бути на комп’ютері щоб програма працювала без збоїв.

Сьома глава присвячена інструкції користувачеві. В ній розказано: як установити програму на комп’ютер, як запустити програму з комп’ютера та як користуватися меню.

Отже, описано курсову роботу за допомогою семи глав, двох додатків, анотації та подано використану літературу. Розроблена програма допоможе менеджерам в магазинах, лікарнях, аптеках в цілях зменшення робочого часу та збільшення швидкості обробки інформації. За допомогою даного проекту вони приймати всі замовлення швидко та ефективно, а також автоматично видавати чек на їхнє замовлення. Це набато покращить працю менеджерів та допоможе їм у вирішенні інших проблем.


Використана література



Міщенко С.М. Конспект лекцій

В.В. Подбельский, С.С.Фомин Програмирование на Яыке СИ. –Москва. Финансы и статистика. 2001 г.

Адреса сайтів по Інтернету:

4. Microsoft Visual C++\Help


Додаток А



Структура дискети



Диск А

Programa

Clients.txt

Textov OrderFrm.cpp

ClientFrm.cpp

Dodatok _А.doc Font.cpp

Glava1.doc msflexgrid.cpp

Glava2_21.doc StdAfx.cpp

Glava3.doc StockFrm.cpp

Glava4.doc Picture.cpp

Glava5.doc rowcursor.cpp

Instr.doc picture.h

Literature.doc Rowcursor.h

TIMI.h

OrderFrm.h

Resource.h

TIMIDlg.h

StdAfx.h

OrderFrm.h

TIMI.ncb

	TIMI. Aps

	TIMI. Opt

	TIMI. Dsp

	TIMI. Dsw

	TIMI. Rc

	Wall.bmp

	spase.bmp

	Logo.exe