Розробка і впровадження інформаційного забезпечення магазину

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    613,03 Кб
  • Опубликовано:
    2017-01-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка і впровадження інформаційного забезпечення магазину

Зміст

Вступ

Розділ 1. Опис задачі

.1 Постановка задачі

.2 Опис предметної області

Розділ 2. Проектування бази даних

.1 Проектування логічної моделі БД

.2 Вибір СУБД

.3 Реалізація БД та створення таблиць

.4 Встановлення зв’язків між таблицями

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

.1 Вибір мови та середовища програмування

.2 Опис функціональних елементів

.3 Реалізація програми

.4 Опис та тестовий приклад програми

Висновок

Список використаної літератури

Додатки

Вступ


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

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

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

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

В процесі розробки інформаційного забезпечення визначається:

·        склад інформації (перелік інформаційних одиниць, необхідних для розв'язання комплексу задач);

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

·        характеристики руху інформації (обсяг та інтенсивність потоків, маршрути руху, часові характеристики);

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

·        способи перетворення інформації;

·        уніфіковану систему первинної документації;

·        масиви інформації, що використовуються для розв'язання задач управління;

·        методичні й інструктивні матеріали для ведення документів.

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

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

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

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

На четвертому етапі здійснюється розробка програмного забезпечення у відповідності з проектною документацією. Результатом цього етапу є готовий програмний продукт.

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

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

Всі етапи розробки і впровадження ІС повинні бути обумовлені у відповідних угодах між замовником і розробником, а також у технічному завданні.

Розділ 1. Опис задачі

 

.1 Постановка задачі


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

.        Видача то облік чеків

.        Облік персоналу

.        Облік товарів

.        Нарахування заробітної плати

.        Формування запитів на закупи.

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

.        Простий то зручний інтерфейс.

.        Зрозумілість команд.

.        Швидкодія роботи на слабких комп’ютерах

.        Мінімізація паперообігу та здійснення безпаперової звітності

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

 

.2 Опис предметної області


. Техніко-економічна характеристика магазина

Діяльність магазину «Продукти» пов'язана з реалізацією продукції через роздрібну торговельну мережу.

Режим роботи магазину з 8-19 годин без вихідних і без перерви на обід.

Усього в магазині «Продукти» працює 9 чоловік.

Загальна площа магазина - 74,6 м 2, з них 50% - площа торгового залу.

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

Співвідношення чисельності персоналу по категоріях функціонального поділу праці:

а) управлінський персонал (генеральний директор, бухгалтер, ст. продавець) - 3 чол.

б) основний (торгово-оперативний) персонал (працівники, зайняті обслуговуванням покупців в торговому залі - продавці, касири) - 5 чол.

в) допоміжний персонал - прибиральниця.

В обов'язки директора входять: розробка стратегії і тактики фірми, маркетингові дослідження <#"896976.files/image001.gif">

Рисунок 1 - Функціональна взаємозв'язок приміщень магазина

база логічний таблиця програма

4. Торгово-технологічне обладнання магазину

Види торгово-технологічного обладнання

Існує кілька видів торгово-технологічного обладнання магазинів:

меблі, яка класифікується за:

місцем застосування (для торгових залів, підсобних приміщень);

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

товарному профілю (універсальна, спеціалізована);

конструкції (нерозбірна, збірно-розбірна).

До меблів пред'являються такі вимоги:

експлуатаційно-технічні (стандартна, універсальна, ємна, з великою площею експозиції, міцна, стійка, надійна),

економічні (недорога, економічна в експлуатації, можливість масового виробництва на основі сучасної технології),

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

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

санітарно-гігієнічні (пристрій меблів, матеріали, використовувані для виготовлення, не повинні ускладнювати її чистку);

торговельний інвентар - пристосування, інструменти, прилади, застосовувані для показу і обробки товарів в процесі обслуговування покупців, а також різних допоміжних і господарських операцій

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

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

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

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

Існують наступні види обладнання:

холодильні камери - мають збірно-розбірну конструкцію, призначені для складських приміщень магазину,

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

холодильні вітрини - використовуються для показу та продажу охолоджених і заморожених продуктів,

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

торгове вимірювальне обладнання - ваги, гирі, міри довжини та об'єму.

Ваги класифікуються за:

принципом дії (важільні, електромеханічні);

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

увазі вказівного пристрою (Гірне, шкальні, шкально-Гірне, циферблатні, цифрові, електронні);

виду відліку показань зважування (візуальний відлік, з документальною реєстрацією),

способом зняття показань (з місцевим і дистанційним способами зняття показань);

контрольно-касове обладнання - контрольно-касові машини, які класифікуються за:

кількості підсумкових лічильників;

кількості рядів для набору, суми, що вводиться в машину;

кількості операційних лічильників;

наявності знімних клавіш-ключів.

При розміщенні товарних груп в торговому залі враховують ряд факторів:

Частоту придбання окремих видів товарів і частоту поповнення товарних запасів на торгово-технологічному обладнанні за товарним зонам (зонам розміщення окремих товарних груп);

Комплексність покупок або кількість найменувань товарів, придбаних покупцями одночасно;

Розмір вантажообігу по товарних зонам;

Напруженість купівельного потоку, яка залежить від витрат часу на вибір товарів і кількості покупців, одночасно відбирають товари;

Форму і планування торгового залу, архітектурні особливості приміщення, розміщення розрахункових вузлів;

Товарні особливості окремих груп товарів і можливість їх товарного сусідства, вимоги гігієни;

Ступінь готовності товарів до продажу.

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

При розміщенні асортиментних комплексів поряд розміщують товари, які відносяться до однієї товарної групи, доповнюють один одного, відповідають попиту певного кола покупців, а також товари, які з міркувань організації торгового процесу з дотриманням правил товарного сусідства можуть бути розташовані поруч. У комплексних покупках переважають поєднання товарів чотирьох груп: хлібобулочні вироби <#"896976.files/image002.jpg">

Рис. 2.1.1 Діаграма БД

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

.        ID_Goods-штрих-код товари, ключове поле

.        Name - назва товару

.        Count- кількість одиниць товару на складі

.        Price - ціна за одиницю продукції

.        Propeties - властивості товару

Таблиця Emploee призначена для обліку працівників. Таблиця має такі поля:

.        ID_Emploee - персональний номер працівника

.        PIB - прізвище, ім’я, по-батьккові

.        Address - адреса проживання

.        ZP - заробітна плата (взалежності від поля Stavka показує фіксовану заробітну плату чи відсоток від продажей)

.        Stavka - логічне поле, що вказує чи працівник отримує фіксовану заробітну плати чи буде отримувати відсоток від продажу.

.        Passport - серія та номер паспорта.

Таблиця ZP зберігає інформацію про нарахування заробітної платні і має наступні поля:

.        ID - ідентифікатор

.        Emploee - персональний номер працівника

.        Date - дата нарахування платні

.        ZP - сума виплати

.        Premium - преміальні гроші

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

.        ID_Checks - номер чеку

.        Emploee - персональний номер працівника, який видав чек

.        Costs - загальна сума чеку

.        Date - дата видачі чеку.

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

2.2 Вибір СУБД


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

База даних - це сумісно використовуваний набір логічно зв’язаних даних (та опис <#"896976.files/image003.jpg">

Рис. 2.3.1. Підключення до сервера БД

Рис.2.3.2. Створення БД.

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

Рис.2.3.3. Створення таблиці Goods.

Рис.2.3.4. Створення таблиці Checks.

Рис.2.3.5. Створення таблиці ChkGoods.

Рис.2.3.6. Створення таблиці Emploee.

Рис.2.3.7. Створення таблиці ZP.

2.4 Встановлення зв’язків між таблицями


Для роботи з створеними таблицями та БД необхідно забезпечити нормальний зв’язок між таблицями.

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

Рис.2.4.1. Встановлення зв’язків між таблицями

Для рішення поставленого завдання прийнята схема бази даних, представлена на рис. 2.4.1 Для відкриття схеми даних необхідно вибрати команду «Инструменты» в меню «Дизайнер БД». У даній схемі представлений взаємозв'язок всіх таблиць бази даних і відношення між ними.

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

 

.1 Вибір мови та середовища програмування


Для створення програмного додатку ми використаємо мову високого програмува с#, оскільки вона є простою і зрозумілою мовою програмування та має досить великі можливості для створення клієнт-сервверних застосувань.

C# (вимовляється Сі-шарп) - об'єктно-орієнтована <https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%E2%80%99%D1%94%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D1%96%D1%94%D0%BD%D1%82%D0%BE%D0%B2%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F> мова програмування <https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F> з безпечною системою типізації <https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%82%D0%B8%D0%BF%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%97> для платформи .NET <https://uk.wikipedia.org/wiki/.NET>. Розроблена Андерсом Гейлсбергом <https://uk.wikipedia.org/wiki/%D0%90%D0%BD%D0%B4%D0%B5%D1%80%D1%81_%D0%93%D0%B5%D0%B9%D0%BB%D1%81%D0%B1%D0%B5%D1%80%D0%B3>, Скотом Вілтамутом <https://uk.wikipedia.org/w/index.php?title=%D0%92%D1%96%D0%BB%D1%82%D0%B0%D0%BC%D1%83%D1%82_%D0%A1%D0%BA%D0%BE%D1%82&action=edit&redlink=1> та Пітером Гольде <https://uk.wikipedia.org/w/index.php?title=%D0%93%D0%BE%D0%BB%D1%8C%D0%B4%D0%B5_%D0%9F%D1%96%D1%82%D0%B5%D1%80&action=edit&redlink=1> під егідою Microsoft Research <https://uk.wikipedia.org/wiki/Microsoft_Research> (при фірмі Microsoft <https://uk.wikipedia.org/wiki/Microsoft>).

Синтаксис <https://uk.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81> C# близький до С++ <https://uk.wikipedia.org/wiki/%D0%A1%2B%2B> і Java <https://uk.wikipedia.org/wiki/Java>. Мова <https://uk.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B2%D0%B0> має строгу статичну типізацію, підтримує поліморфізм <https://uk.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%96%D0%BC%D0%BE%D1%80%D1%84%D1%96%D0%B7%D0%BC_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>, перевантаження операторів, вказівники на функції-члени класів, атрибути, події, властивості, винятки <https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%BE%D0%B1%D0%BA%D0%B0_%D0%B2%D0%B8%D0%BD%D1%8F%D1%82%D0%BA%D1%96%D0%B2>, коментарі у форматі XML <https://uk.wikipedia.org/wiki/XML>. Перейнявши багато що від своїх попередників - мов С++ <https://uk.wikipedia.org/wiki/%D0%A1%2B%2B>, Delphi <https://uk.wikipedia.org/wiki/Delphi_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)>, Модула <https://uk.wikipedia.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B0&action=edit&redlink=1> і Smalltalk <https://uk.wikipedia.org/wiki/Smalltalk> - С#, спираючись на практику їхнього використання <https://uk.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BD%D0%BD%D1%8F>, виключає деякі моделі, що зарекомендували себе як проблематичні при розробці програмних систем, наприклад множинне спадкування <https://uk.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B6%D0%B8%D0%BD%D0%BD%D0%B5_%D1%81%D0%BF%D0%B0%D0%B4%D0%BA%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F> класів (на відміну від C++).# розроблялась як мова програмування прикладного рівня для CLR <https://uk.wikipedia.org/wiki/CLR> і тому вона залежить, перш за все, від можливостей самої CLR. Це стосується, перш за все, системи типів C#. Присутність або відсутність тих або інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатився і сам C#; подібної взаємодії слід чекати і надалі. (Проте ця закономірність буде порушена з виходом C# 3.0, що є розширеннями мови, що не спираються на розширення платформи .NET.) CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а проводиться CLR для програм, написаних на C# точно так, як і це робиться для програм на VB.NET, J# тощо.

Титульним компілятором <https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%96%D0%BB%D1%8F%D1%82%D0%BE%D1%80> C# є Microsoft Visual C# <https://uk.wikipedia.org/w/index.php?title=Microsoft_Visual_C&action=edit&redlink=1>.

Існують інші компілятори C#, часто вони включають реалізації Common Language Infrastructure і бібліотеки класів .NET:

Проект Microsoft Rotor (який тепер зветься Shared Source Common Language Infrastructure, ліцензований тільки для навчального і дослідницького використання) забезпечує реалізації CLR <https://uk.wikipedia.org/wiki/CLR> runtime і компілятор C#, і підмножину бібліотек фреймворка Common Language Infrastructure, відповідно до специфікації ECMA (до C# 2.0, і з підтримкою тільки Windows XP <https://uk.wikipedia.org/wiki/Windows_XP>).

Проект SharpDevelop <#"896976.files/image011.jpg">

Рис. 3.3.1. Створення нового проекту.

Після створення нового проекту створимо головне вікно даного програмного продукту. Так як даний додаток складатиметься з трьох основних функціональних блоків (магазин, склад, відділ кадрів) то на головному вікні розмістимо три однойменні кнопки (див. рис. 3.3.2)

Рис. 3.3.2. Проектування головного вікна

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

Спроектувавши всі необхідні форми необхідно також надати певним об’єктам управління деяких функціональних можливостей. Зокрема, запрограмувати функції системи. Отже для того щоб наш проект взаємодіяв з БД нам необхідно її підключити. Це здійснюється за допомогою наступної стрічки коду:conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

Тут ми вказуємо ім’я нашого SQL Server-а, ім’я бази даних, права доступу і т.і.

Взаємодіяти з БД програма буде завдяки виконанню sql запитів. При роботі з SQl Server використовується бібліотека класів С# SqlClient, яка підключається наступним чином:System.Data.SqlClient;

За виконання sql запитів відповідає об’єкт, який входить до даної бібліотеки - SqlCommand.

Приклад коду, який здійснює вибірку товарів на складі з БД наведеней нижче.conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select * from Goods";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.DataSource = dt;.Close();

}

{.Show("Неможливо відкрити склад", "Помилка");.Close();

}

Даний код здійсню підключення до БД, виконує запит на вибірку і передає отримані дані в компонент dataGridView.

Повні лістинги програми наведені в додатках.

3.4 Опис та тестовий приклад програми

база логічний таблиця програма

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

Тестування програмного забезпечення (англ. <https://uk.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0> Software Testing) - це процес технічного дослідження, призначений для виявлення інформації про якість продукту відносно контексту, в якому він має використовуватись. Техніка тестування також включає як процес пошуку помилок <https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D2%91> або інших дефектів, так і випробування програмних складових з метою оцінки. Може оцінюватись:

·              відповідність вимогам, якими керувалися проектувальники та розробники

·              правильна відповідь для усіх можливих вхідних даних

·              виконання функцій за прийнятний час

·              практичність

·              сумісність з програмним забезпеченням та операційними системами

·              відповідність задачам замовника.

Оскільки число можливих тестів навіть для нескладних програмних компонент практично нескінченне, тому стратегія тестування полягає в тому, щоб провести всі можливі тести з урахуванням наявного часу та ресурсів. Як результат програмне забезпечення (ПЗ) тестується стандартним виконанням програми з метою виявлення баґів <https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D2%91> (помилок або інших дефектів).

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

Тестування може проводитись, як тільки створено виконуваний код (навіть частково завершено). Процес розробки <https://uk.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F> зазвичай передбачає коли та як буде відбуватися тестування. Наприклад, при поетапному процесі, більшість тестів відбувається після визначення системних вимог і тоді вони реалізуються в тестових програмах. На противагу цьому, відповідно до вимог гнучкої розробки ПЗ <https://uk.wikipedia.org/wiki/%D0%93%D0%BD%D1%83%D1%87%D0%BA%D0%B0_%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F>, програмування і тестування часто відбувається одночасно.

Тестування - це одна з технік контролю якості, що включає в себе

·              Планування робіт (Test Management)

·              Проектування тестів (Test Design)

·              Виконання тестування (Test Execution)

·              Аналіз отриманих результатів (Test Analysis).

Верифікація (Verification) <https://uk.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F> - це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту, визначені на початку поточної фази. Валідація (Validation) <https://uk.wikipedia.org/wiki/%D0%92%D0%B0%D0%BB%D1%96%D0%B4%D0%B0%D1%86%D1%96%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F> - це визначення відповідності розроблюваного програмного забезпечення між очікуваннями і потребами користувача, вимогам до системи.

План Тестування (Test Plan) - це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.

Тест дизайн (Test Design) - це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.

Тестовий випадок (Test Case) - це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тестованої функції або її частини.

Баг/Дефект Репорт (Bug Report) - це документ, що описує ситуацію або послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування (Misbehavior), із зазначенням причин та очікуваного результату (Expected Result).

Тестове Покриття (Test Coverage) - це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами вимог або коду, що виконується.

Деталізація Тест Кейсів (Test Case Specification) - це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття.

Час Проходження Тест Кейса (Test Case Pass Time) - це час від початку проходження кроків тест кейса до отримання результату тесту.

Отже перейдемо до безпосередньої перевірки нашої програми на працездатність.

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

Рис. 3.4.1. Головне меню

Як видно з рисунка вище, модулями програми є: модуль «Магазин», модуль «Склад» та модуль «Відділ кадрів».

Модуль «Магазин» вміщає собою засоби здійснення обліку проданих товарів. При натисненні на однойменну кнопку відкриється нове вікно, в якому продавець зможе автоматизувати роботу магазину. При виборі опції Магазин продавцеві потрібно в спеціальному вікні ввести свій персональний номер (див. рис. 3.4.2) і ввійти в програму Магазин. Після входу в БД робиться запис про те що працівник приступив до виконання своїх обов’язків. Відповідно до цих записів буде нараховувати заробітна плата відповідному продавцю.

Рис. 3.4.2. Вікно авторизації

Якщо авторизація пройшла успішно то відкривається нове вікно де безпосередньо ведеться продаж товарів продавце (див. рис. 3.4.4) в іншому випадку з’явиться помилку про помилку авторизації (див. рис. 3.4.3)

Рис. 3.4.3. Повідомлення про помилку авторизації.

Рис. 3.4.4. Вікно ведення продажів

В даному вікні в лівому верхньому куті розміщено інформацію про прізвище ім'я по-батькові працівника (див. рис. 3.4.5)

Рис. 3.4.5. Інофрмація про працівника

Нище в combobox поміщено інформацію про чек (див. рис. 3.4.6).

Рис. 3.4.6. Інформація про чек

Справа біля інформації про чек розміщено елементи вводу штрих-коду товара та кількості купленого товару (див. рис. 3.4.7).

Рис. 3.4.7. Форма вводу штрих-коду

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

Рис.3.4.8. Введення штрих коду.

Рис.3.4.9. Відображення товару в чекові.

Внизу вікна розміщено дві кнопки: «Оплатити чек», «Видалити чек». Кнопка «Видалити чек» знищує записи даного чеку у разі, якщо покупець не оплачує чек. Кнопка «Оплатити чек» здійсню відкриття нового вікна, де продавець вводить суму отриману від продавця, а програма автоматично визначає решту, яку потрібно повернути покупцеві (див. рис. 3.4.10). Після оплати чек заноситься до БД.

Рис. 3.4.10. Форма оплати

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

Рис. 3.4.11. Меню складу

Отже, що додати новий товар на склад працівникові потрібно натиснути на однойменну кнопку і заповнити форму.

Рис.3.4.12. Форма заповнення нового товару на склад.

Після заповнення даної форми користувач натискає на кнопку «Далі». Якщо користувач ввів всі дані правильно то товар добавиться в БД складу (див. рис. 3.4.13). В іншому випадку він отримає повідомлення про помилку (див. рис. 3.4.14.)

Рис. 3.4.13. Повідомлення про успішне додання товару

Рис. 3.4.14. Повідомлення про помилку

Іншою функцією, яку може виконувати користувач на складі є перегляд наявного товару. Здійснюється це шляхом натиснення на кнопку «Товари на складі». Після натиснення користувач бачить перелік товарі у табличному поданні

Рис. 3.4.15. Перелік товарів на складі

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

Рис.3.4.16. Товари, які потрібно закупити

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

Рис. 3.4.17. Меню відділу кадрів.

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

Рис. 3.4.18. Форма прийняття працівника

Після заповнення форми користувач натискає далі і отримує повідомлення, що працівника прийнято на роботу. Якщо дані були введені неправильно то з’явиться повідомлення про помилку.

Рис. 3.4.19. повідомлення про помилку

Якщо ж користувач хоче звільнити працівника тоді він натискає на кнопку «Звільнити працівника». В новому вікні вводить табельний номер працівника і натискає на «Звільнити».

Рис. 3.4.20. Вікно звільнення працівника

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

Рис.3.4.21. Повідомлення про звільнення працівника.

Для перегляду списку персоналу магазина, необхідно натиснути на кнопку «Працівники». З’явиться вікно, де у вигляді таблиці показано перелік працівників і їхні персональні дані.

Рис. 3.4.22. Перелік працівників

Висновок


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

.        Магазин

.        Склад

.        Відділ кадрів

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

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

.        нараховувати заробітну плату

.        стежити за товарами на складі

.        формувати запити на закупку товарів, які закінчуються

.        приймати на роботу нових працівників

.        звільняти працівників з роботи

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

Список використаної літератури


1.      <http://bukvar.su/marketing/137513-Organizaciya-raboty-magazina-Produkty.html>

.        <http://pidruchniki.com/11570718/bankivska_sprava/proektuvannya_baz_danih>

.        2013-Oct 17 Release Notes | Visual Studio <https://www.visualstudio.com/en-us/news/2013-oct-17-vs.aspx>. www.visualstudio.com. Процитовано 2016-03-27.

.        What's New in Visual Studio 2015 <https://msdn.microsoft.com/en-us/library/bb386063.aspx>. msdn.microsoft.com. Процитовано 2016-03-27.

.        Visual Studio 2015 Update 2 | Release Notes <https://www.visualstudio.com/en-us/news/vs2015-update2-vs.aspx>. www.visualstudio.com. Процитовано 2016-04-01.

Додатки


Лістинг головного ВікнаSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;Shop

{partial class MainMenu : Form

{MainMenu()

{();

}void button1_Click(object sender, EventArgs e)

{shop = new Shoping();.ShowDialog();

}void button2_Click(object sender, EventArgs e)

{_store = new Store();

_store.ShowDialog();

}void button3_Click(object sender, EventArgs e)

{_menuPersonal = new menuPersonal();

_menuPersonal.ShowDialog();

}

}

}

Лістинг форми здійснення продажів.System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class Shoping : Form

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");Shoping()

{();.KeyPreview = true;

}string seller;string ID_seller;sum=0;void Shoping_Load(object sender, EventArgs e)

{auth = new Auth(this);.ShowDialog();.Text = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select top 1 ID_Checks from Checks order by ID_Checks desc";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.Text = (Convert.ToInt32(dt.Rows[0][0].ToString())+1).ToString();.Close();

}void button2_Click(object sender, EventArgs e)

{.Rows.Clear();

}void button1_Click(object sender, EventArgs e)

{

{_pmnt = new Payment(this);

_pmnt.ShowDialog();

}

{

}

}void textBox2_KeyUp(object sender, KeyEventArgs e)

{(e.KeyCode == Keys.Up || e.KeyCode == Keys.Down).Focus();(e.KeyCode == Keys.Enter)

{

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select ID_Goods,Name,Price from Goods where ID_Goods='" + textBox1.Text+"'";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.Rows.Add(dt.Rows[0][0], dt.Rows[0][1], textBox2.Text, dt.Rows[0][2]);+= Convert.ToDouble(dt.Rows[0][2]) * Convert.ToInt32(textBox2.Text);.Text = Convert.ToString(sum);.Close();.Text = "";.Text = "";.Focus();

}

{.Show("Даного товару не існує","Помилка");.Focus();.Close();

}

}

}void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{((e.KeyChar <= 47 || e.KeyChar >= 58) && e.KeyChar != 8)

{.Handled = true;

}

}void textBox2_KeyPress(object sender, KeyPressEventArgs e)

{((e.KeyChar <= 47 || e.KeyChar >= 58) && e.KeyChar != 8)

{.Handled = true;

}

}void textBox1_KeyUp(object sender, KeyEventArgs e)

{(e.KeyCode == Keys.Up || e.KeyCode == Keys.Down).Focus();(e.KeyCode == Keys.Enter)

{(textBox1.Text != "")

{.Focus();.Text = "1";

}

}

}void Shoping_KeyDown(object sender, KeyEventArgs e)

{(e.KeyCode == Keys.F11)

{.PerformClick();// імітуємо натиснення кнопки button1

}(e.KeyCode == Keys.Delete)

{.PerformClick();// імітуємо натиснення кнопки button1

}

}

}

}

Лістинг форми авторизаціїSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class Auth : Form

{();= _shp;

}void button1_Click(object sender, EventArgs e)

{

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select ID_Emploee,PIB from Emploee where ID_Emploee=" + textBox1.Text;.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.seller = dt.Rows[0][1].ToString();.label1.Text += dt.Rows[0][1].ToString();.ID_seller= dt.Rows[0][0].ToString();.Close();.Close();

}(Exception)

{.Show("Проблема авторизації", "Помилка");.Close();

}

}void Auth_Load(object sender, EventArgs e)

{

}void button2_Click(object sender, EventArgs e)

{.Close();.Close();

}void textBox1_KeyUp(object sender, KeyEventArgs e)

{(e.KeyCode == Keys.Enter)

{.PerformClick();

}

}

}

}

Лістинг форми видачі чекуSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class Payment : Form

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");Shoping shpng;Payment(Shoping _shp)

{();= _shp;

}void textBox1_KeyUp(object sender, KeyEventArgs e)

{costs=0.0;(e.KeyCode == Keys.Enter)

{

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "INSERT INTO Checks VALUES('"+shpng.checkLabel.Text+"'," +.ID_seller+ ","

+ shpng.moneyLabel.Text+ ",CONVERT(DATETIME,'" + shpng.dataLabel.Text+"',102))";.ExecuteNonQuery();(int i=0;i<shpng.dataGridView1.RowCount-1;i++)

{= Convert.ToInt32(shpng.dataGridView1.Rows[i].Cells[2].Value.ToString()) * Convert.ToDouble(shpng.dataGridView1.Rows[i].Cells[3].Value.ToString());.CommandText = "INSERT INTO ChkGoods VALUES('" + shpng.checkLabel.Text + "','" +.dataGridView1.Rows[i].Cells[0].Value + "',"+.dataGridView1.Rows[i].Cells[2].Value + "," +costs+ ")";.ExecuteNonQuery();.CommandText = "UPDATE Goods SET Count = Count - " +.dataGridView1.Rows[i].Cells[2].Value + "WHERE ID_Goods = '" +.dataGridView1.Rows[i].Cells[0].Value + "'";.ExecuteNonQuery();

}.Show("Чек успішно оплачено");.Close();.Close();

}(Exception)

{.Show("Неможливо оформити чек", "Помилка");.Close();.Close();

}

}

}void Payment_FormClosing(object sender, FormClosingEventArgs e)

{.dataLabel.Text = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select top 1 ID_Checks from Checks order by ID_Checks desc";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.checkLabel.Text = (Convert.ToInt32(dt.Rows[0][0].ToString()) + 1).ToString();.Close();.dataGridView1.Rows.Clear();.moneyLabel.Text = "0.00";

}void Payment_Load(object sender, EventArgs e)

{.Text = shpng.moneyLabel.Text;.Text = "0.00";

}void textBox1_TextChanged(object sender, EventArgs e)

{a = 0.0, b = 0.0, c = 0.0;(textBox1.Text != "")

{

{= Convert.ToDouble(label3.Text);= Convert.ToDouble(textBox1.Text);= b - a;(c > 0).Text = c.ToString();

}

{.Show("Неправильний ввід");

}

}

}

}

}

Лістинг форми меню складаSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;Shop

{partial class Store : Form

{Store()

{();

}void button1_Click(object sender, EventArgs e)

{_addGoods = new addGoods();

_addGoods.ShowDialog();

}void button2_Click(object sender, EventArgs e)

{_showGoods = new showGoods();

_showGoods.ShowDialog();

}void button3_Click(object sender, EventArgs e)

{_showOrder = new showOrder();

_showOrder.ShowDialog();

}

}

}

Лістинг форми додання товарів на складSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class addGoods : Form

{addGoods()

{();

}void button1_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "INSERT INTO Goods VALUES('" + textBox1.Text + "','" +.Text + "',"

+ textBox4.Text + "," + textBox5.Text + ",'" + textBox2.Text + "')";.ExecuteNonQuery();.Close();.Show("Товар успішно додано");.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";

}

{.Show("Неможливо додати товар","помилка");.Close();

}

}

}

}

Лістинг форми відображення товарів на складіSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class showGoods : Form

{showGoods()

{();

}void showGoods_Load(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select * from Goods";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.DataSource = dt;.Close();

}

{.Show("Неможливо відкрити склад", "Помилка");.Close();

}

}

}

}

Лістинг форми відображення товарів, які потрібно закупитиSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class showOrder : Form

{showOrder()

{();

}void showOrder_Load(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select * from Goods where Count<2";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.DataSource = dt;.Close();

}

{.Show("Неможливо відкрити склад", "Помилка");.Close();

}

}

}

}

Лістинг форми меню відділу кадрівSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;Shop

{partial class menuPersonal : Form

{menuPersonal()

{();

}void button1_Click(object sender, EventArgs e)

{_newEmploee = new newEmploee();

_newEmploee.ShowDialog();

}void button2_Click(object sender, EventArgs e)

{_dltEmploee = new deleteEmploee();

_dltEmploee.ShowDialog();

}void button4_Click(object sender, EventArgs e)

{_emploee = new Emploee();

_emploee.ShowDialog();

}void button3_Click(object sender, EventArgs e)

{_zp = new ZP();

_zp.ShowDialog();

}

}

}

Лістинг форми прийняття працівника на роботуSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class newEmploee : Form

{newEmploee()

{();

}flag=0;void button1_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{(radioButton1.Checked == true)

{= 1;

}= 0;.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "insert into Emploee values ("+textBox1.Text+",'"+textBox2.Text+

"','"+textBox3.Text+"',"+textBox5.Text+

","+flag+",'"+textBox4.Text+"')";.ExecuteNonQuery();.Show("Працівника прийнято на роботу");.Close();

}

{.Show("Неможливо найняти працівника. Перевірте коректність вводу всіх даних", "Помилка");.Close();

}

}

}

}

Лістинг форми звільнення працівникаSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class deleteEmploee : Form

{deleteEmploee()

{();

}void button1_Click(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "delete from Emploee where ID_Emploee = '"+textBox1.Text+"'";.ExecuteNonQuery();.Show("Працівника звільнено");.Close();

}

{.Show("Неможливо звільнити працівника. Можливо даного працівника не існує в базі", "Помилка");.Close();

}

}

}

}

Лістинг форми відображення переліку працівниківSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class Emploee : Form

{Emploee()

{();

}void Emploee_Load(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "select * from Emploee";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.DataSource = dt;.Close();

}

{.Show("Неможливо відкрити базу працівників", "Помилка");.Close();

}

}

}

}

Лістинг форми нарахування зарплатніSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.SqlClient;Shop

{partial class ZP : Form

{ZP()

{();

}day = "";date = "";sum;void ZP_Load(object sender, EventArgs e)

{conn = new SqlConnection(@"Data Source=DESKTOP-E468J7Q;Initial Catalog=Shop;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");= DateTime.Now.ToString("dd");(day == "01")

{= DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");

{.Open();cmd = conn.CreateCommand();.CommandType = CommandType.Text;.CommandText = "Select ID_Emploee, Stavka, ZP from Emploee";.ExecuteNonQuery();dt = new DataTable();da = new SqlDataAdapter(cmd);.Fill(dt);.DataSource = dt;(int i = 0; i < dataGridView1.RowCount - 1; i++)

{.Show(dataGridView1.Rows[i].Cells[1].Value.ToString());(dataGridView1.Rows[i].Cells[1].Value.ToString() == "False")

{.CommandType = CommandType.Text;.CommandText = "INSERT INTO ZP VALUES(" + dataGridView1.Rows[i].Cells[0].Value.ToString() + ",CONVERT(DATETIME,'" ++ "',102)," + Convert.ToDouble(dataGridView1.Rows[i].Cells[2].Value.ToString()) + ")";.ExecuteNonQuery();

}

{.CommandType = CommandType.Text;.CommandText = "Select Costs from Checks where Emploee =" + dataGridView1.Rows[i].Cells[0].Value.ToString();.ExecuteNonQuery();dt1 = new DataTable();da1 = new SqlDataAdapter(cmd);.Fill(dt1);.DataSource = dt1;= 1;(int j = 0; j < dataGridView2.RowCount - 1; j++)

{+= Convert.ToDouble(dataGridView2.Rows[j].Cells[0].Value);

}.CommandType = CommandType.Text;.CommandText = "INSERT INTO ZP VALUES(" + dataGridView1.Rows[i].Cells[0].Value.ToString() + ",CONVERT(DATETIME,'" ++ "',102)," + (Convert.ToInt16(dataGridView1.Rows[i].Cells[2].Value.ToString()) * sum / 100) + ")";.ExecuteNonQuery();

}

}.Show("Зарплата успішно нарахована");.CommandType = CommandType.Text;.CommandText = "Select * from ZP";.ExecuteNonQuery();dt2 = new DataTable();da2 = new SqlDataAdapter(cmd);.Fill(dt2);.DataSource = dt2;.Close();

}(Exception)

{.Show("Неможливо нарахувати зарплату", "Помилка");.Close();

}

}.Show("Заробітна плата нараховується тільки першого числа");

}

}

}

Похожие работы на - Розробка і впровадження інформаційного забезпечення магазину

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!