Автоматизація магазину комп’ютерів

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

Автоматизація магазину комп’ютерів

Вступ

програма автоматизація комп'ютер

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

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

Основною метою курсового проектування є:

–       навчання та набуття навиків практичного застосування теоретичних знань для вирішення конкретних практичних задач;

–       розвиток творчого мислення, виявлення та формування професійних навиків студентів;

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

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

–       набуття навиків узагальнення та аналізу результатів, отриманих іншими розробниками та дослідниками;

–       навчання та набуття студентами досвіду користування довідковою літературою і нормативними документами.

Мета курсового проектування з дисципліни «Основи програмування та алгоритмічні мови»:

–       закріпити знання, одержані під час вивчення дисципліни «Основи програмування та алгоритмічні мови;

–       засвоїти основні етапи розробки програмних виробів;

–       набути навиків при оформлення документів на програмні вироби;

одержати практичні навички з розробки програм і програмних документів.

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


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

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

·        ID - унікальний код продукту

·        Name - назва моделі продукту

·        Type - тип продукту

·        Cost - ціна за одиницю продукції

·        Count - кількість штук продукції на складі.

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

·        ID - унікльний код постачальника

·        Name - найменування фірми постачальника

·        Type - тип постачальної продукції

·        Adress - юридична адреса постачальника

·        Tell - номер телефона фірми постачальника

.        Замовлення - містить інформацію про здійснені замовлення на купівлю товару. Поля:

·        ID - унікальний код замовника

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

·        Adress - адреса замовлення

·        Tell - контактний номер телефона

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

·        Виводить на екран записи БД;

·        Дадавання нових записів;

·        Видаленя вибараних записів з бази;

·        Збереження оновлених даних

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

 

. Математична модель та метод розв'язання задачі


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

Щоб вирішити дане завдання нам необхідно створити початкову базу даних і змоделювати вищеописані таблиці. Початкову БД ми створемо за допомогою СКБД РostgreSQL.

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

Перелічені функції реалізовуватимуться за допомогою SQL-запитів/

SQL (Structured query language - мова структурованих запитів) - декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керуванняреляційними БД, створення схеми бази даних і її модифікація, система контролю за доступом до бази даних. Сам по собі SQL не є ні системою керування базами даних, ні окремим програмним продуктом.- це діалогова мова програмування для здійснення запиту і внесення змін до бази даних, а також управління базами даних. Багато баз даних підтримує SQL з розширеннями до стандартної мови. Ядро SQL формує командна мова, яка дозволяє здійснювати пошук, вставку, обновлення, і вилучення даних, використовуючи систему управління і адміністративні функції. SQL також включає CLI (Call Level Interface) для доступу і управління базами даних дистанційно/

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

1.      SELECT

Оператор SELECT дозволяє вибирати дані з бази. Загалом оператор SELECT виглядає так:

SELECT імена_полів

FROM імена_таблиць

WHERE умова;

Імена полів записуються через кому. Якщо потрібно вибрати всі поля, пишуть зірочку («*»). При потребі можна уточнити з якої таблиці брати поле, додавши перед його іменем.може видати нам рядки що повторюються. Якщо ми хочемо мати тільки унікальні значення, то можемо уникнути повторень командою DISTINCT.

SELECT DISTINCT поля FROM таблиці;

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


Оператор

Опис

Приклад

=

Рівність

surname='Іванов'

<> (можливо також!=)

Нерівність

surname!='Іванов'

<, >, <=, >=

Менше, більше, менше рівно, більше рівно

age>=18

BETWEEN

Всі значення що знаходяться між даними двома включно

BETWEEN 'Іванов' AND 'Петров'

LIKE

Порівняння з шаблоном

surname LIKE 'І % '

IN

Приймає одне з перелічених значень

faculty IN ('Кубик', 'Радіофак', 'Мехмат')


В шаблоні для LIKE можна використовувати ' % ' як замінник для будь-якого числа будь-яких символів, та '_' як замінник для довільного одного символа.

Також в умові можна використовувати оператори OR, AND та NOT, та дужки.

Також до запиту SELECT можна додати команду ORDER BY, що дозволяє впорядкувати результат за заданими стовпцями. Щоб сортувати в зворотньому порядку після стовпців за якими сортують пишуть DESC:

SELECT name FROM students ORDER BY name DESC;

Варто також зауважити, що ORDER BY не може стояти перед WHERE інакше будуть помилки.

2.      INSERT

Оператор INSERT додає до таблиці рядок. Має такий синтаксис:

INSERT INTO назва_таблиці VALUES (список_значень);

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

INSERT INTO students(name) VALUES ('Іван');

Всі інші поля отримають значення за замовчуванням.

3.      DELETE

Найпростіший оператор:

DELETE FROM назва_таблиці WHERE умова;

Знову ж таки, не варто забувати, що немає команди «Відмінити».

Для видаленя всіх даних використовують оператор truncate table

Отже для виконання курсового проекту нам цілком вистачить ПК з наступними параметрами

.        Процесор - Intel Celeron 1,9 ГГц

.        ОЗУ - 128 Мб

.        Об’єм вільної пам’яті - 50 Мб

.        Об’єм графічної пам’яті - 128Мб

 

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


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

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

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

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

.        Завантажити дані

.        Додати запис

.        Видалити

.        Зберегти

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

Функція 1 відповідає за завантаження даних із зовнішньої БД в таблицю вікна програми.

Функція 2 відповідає за додавання нового запису в таблицю

Функція 3 відповідає за видалення вибраного запису з таблиці

Функція 4 відповідає за збереження даних в зовнішню базу даних

Отже інтерфейс програми не буде складним і кінцевий споживач зможе легко керувати нашим програмним продуктом

 

. Опис компонентів програми і створення проекту

 

Опис компонентів програми

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

Наша програма буде створюватись на основі мви програмування високого рівня JAVA, використовуючи компоненти Java SWING/

Java (вимовляється Джава; інколи - Ява) - об'єктно-орієнтованамова програмування, випущена компанією Sun Microsystems у1995 році як основний компонент платформи Java. Зараз мовою займається компанія Oracle, яка придбала Sun Microsystems у2009 році. Синтаксис мови багато в чому схожий на C та C++. У офіційній реалізації Java-програми компілюються у байт-код, який при виконанні інтерпретується віртуальною машиною для конкретної платформи.надає компілятор Java та віртуальну машину Java, які задовольняють специфікації Java Community Process, під ліцензією GNU General Public License.

Мова значно запозичила синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати програмісти, доручено віртуальній машині. Передусім Java розроблялась як платформо-незалежна мова, тому вона має менше низькорівневих можливостей для роботи з апаратним забезпеченням. За необхідності таких дій java дозволяє викликати підпрограми, написані іншими мовами програмування

Swing - інструментарій для створення графічного інтерфейсу користувача (GUI) мовою програмування Java. Це частина бібліотеки базових класів Java (JFC, Java Foundation Classes).розробляли для забезпечення функціональнішого набору програмних компонентів для створення графічного інтерфейсу користувача, ніж у ранішого інструментарію AWT. Компоненти Swing підтримують специфічні look-and-feelмодулі, що динамічно підключаються. Завдяки ним можлива емуляція графічного інтерфейсу платформи (тобто до компоненту можна динамічно підключити інші, специфічні для даної операційної системи вигляд і поведінку). Основним недоліком таких компонентів є відносно повільна робота, хоча останнім часом це не вдалося підтвердити через зростання потужності персональних комп'ютерів. Позитивна сторона - універсальність інтерфейсу створених програм на всіх платформах

Опишемо основні компоненти Java Swing, що будуть використовуватись в нашій програмі:

1.      Мітки

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

Наступний код демонструє різноманітні способи створення міток.

import javax.swing. Icon;

import javax.swing. ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing. SwingConstants;

public class Labels {

public static void main (String[] args) {frame = new LabelFrame();.setSize (150, 200);.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);.setVisible(true);

}

}

class LabelFrame extends JFrame {

// створюємо панельpanel=new JPanel();

() {

// вирівнювання за замовчуванням (CENTER)label1 = new JLabel («Багато левів,»);

// вирівнювання влівоlabel2 = new JLabel («тигрів з тигрицями», SwingConstants.LEFT);

// мітка без тексту, вирівнювання за замовчуваннямlabel3 = new JLabel();

// створюємо іконкуicon = new ImageIcon («icon.gif»);

// створюємо мітку із зображеннямlabel4 = new JLabel(icon);

// задаємо текст для label3.setText («і ведмедів»);

// встановлюємо вирівнювання.setHorizontalAlignment (SwingConstants.RIGHT);

// додаємо мітки в панель.add(label1);.add(label2);.add(label3);.add(label4);

// додаємо панель у фрейм

this.add(panel);

}

}

2.      Кнопки

Кнопки вже застосовувалися раніше у прикладах. У Swing їх реалізовує компонент JButton. Кнопка генерує подію ActionEvent, коли на неї натискають. Щоб обробити цю подію в програмі реєструється відповідний обробник ActionListener, який повинен реалізовувати метод actionPerformed(). Метод actionPerformed отримує в якості аргумента подію, що відбулася. Крім мітки на кнопці може бути розміщене зображення. Клас JButton має відповідний конструктор для задання напису, зображення або обох зразу. Завантаження зображення здійснює зручний у використанні клас ImageIcon. Наступний приклад демонструє створення кнопки із зображенням та обробки події натиснення кнопки.

 java.awt. FlowLayout;

import java.awt.event. ActionEvent;

import java.awt.event. ActionListener;

import javax.swing. Icon;

import javax.swing. ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class PictureButton {

public static void main (String[] args) {frame = new ButtonFrame();.setSize (300, 100);.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);.setVisible(true);

}

}

class ButtonFrame extends JFrame {

label=new JLabel();i=0;

() {icon = new ImageIcon («icon.gif»);button = new JButton(icon);

// додаємо обробник подій, що визначається у внутрішньому класі.addActionListener (new ActionListener() {

public void actionPerformed (ActionEvent ae) {++;.setText («Натиснуто разів: «+ i);

}

});

// встанолюємо менеджер розташування(new FlowLayout());(button);(label);

}

}

3.      Таблиця

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

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

Існує кілька способів того, як сказати JTable, які дані і стовпці відображувати. Тут ми розглянемо найпростіший спосіб. Для початку визначимо, які стобци ми хочемо показувати в таблиці. Для прикладу я взяв стовпці провідника Windows - Name (Ім'я файлу або папки), Last modified (Дата останньої модифікації), Type (Тип) і Size (Розмір).

Створення проекту

Розібравшись з основними компонентами нашої майбутньої програми можна приступити до її програмування. Як було сказано вище програма буде створюватись за допомогою мови програмування Java. Середовище для програмування ми використовуватимемо NetBeans IDE 8.1. Для початку програмування потрібно запустити дане середовище і за допомогою вкладок Файл-> Cоздать проекти, створити новий прект. Пысля вибраних дій перед нами з'явиться вікно де ми вибираєм Приложение Java. Пысля цього перед нами выдкриэться середовище програмуваня де ми можемо вводити код програми. Лістинг програми наведений у додатку А, B, C, D

Вікно середовища програмування NetBeans IDE 8.1

 

. Опис програми і тестування програми


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

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

Головне вікно програми

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

Вікно програми таблиці Продукції

На даному вікні в таблиці відсутня інформація. Щоб отримати дані про продукцію з зовнішньої бази даних необхідно натиснути на кнопку «Завантажити дані». Після цього наша таблиця заповниться інформацією. На рисунку зображено вікно із завантаженими даними

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

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

Вікно програми таблиці Продукції видалення даних

Як ми бачимо у нас зник перший рядок. Отже видалення даних спрацювало. Тепер додамо в нашу таблицю новий запис. Для цього потрыбно натиснути кнопку «Додати запис». Перед нами з'явиться вікно куди потрібно ввести дані.

Вікно введення даних

Після введення нових даних вони відображатимуться в нашій таблиці.

Вікно з введеними даними

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

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

 


Висновок


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

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

·        ID - унікальний код продукту

·        Name - назва моделі продукту

·        Type - тип продукту

·        Cost - ціна за одиницю продукції

·        Count - кількість штук продукції на складі.

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

·        ID - унікльний код постачальника

·        Name - найменування фірми постачальника

·        Type - тип постачальної продукції

·        Adress - юридична адреса постачальника

·        Tell - номер телефона фірми постачальника

.        Замовлення - містить інформацію про здійснені замовлення на купівлю товару. Поля:

·        ID - унікальний код замовника

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

·        Adress - адреса замовлення

·        Tell - контактний номер телефона

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

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


1.      Matthew Robinson, Pavel Vorobiev: Swing, Second Edition, Manning, ISBN 1-930110-88-X

2.      David M. Geary: Graphic Java 2, Volume 2: Swing, Prentice Hall, ISBN 0-13-079667-0

.        John Zukowski: The Definitive Guide to Java Swing, Third Edition, Apress, ISBN 1-59059-447-9

.        James Elliott, Robert Eckstein, Marc Loy, David Wood, Brian Cole: Java Swing, O'Reilly, ISBN 0-596-00408-7

.        Kathy Walrath, Mary Campione, Alison Huml, Sharon Zakhour: The JFC Swing Tutorial: A Guide to Constructing GUIs, Addison-Wesley Professional, ISBN 0-201-91467-0

.        Joshua Marinacci, Chris Adamson: Swing Hacks, O'Reilly, ISBN 0-596-00907-0

.        Герберт Шилдт: SWING: руководство для начинающих. - М.: «Вильямс», 2007. - С. 704. - ISBN 0-07-226314-8

.        Иван Портянкин: Swing: Эффектные пользовательские интерфейсы, Санкт-Петербург ISBN 5-469-00005-2

Додаток А


Лістинг Main форми

javaapplication2;

class Main extends javax.swing.JFrame {

/**

* Creates new form Main

*/Main() {();

}

@SuppressWarnings («unchecked»)

// <editor-fold defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {

= new javax.swing.JLabel();= new javax.swing.JPanel();= new javax.swing.JLabel();= new javax.swing.JLabel();= new javax.swing.JLabel();

(javax.swing. WindowConstants.EXIT_ON_CLOSE);

.setFont (new java.awt. Font («Times New Roman», 1, 24)); // NOI18N.setText («Фірма комп'ютерних комплектуючих»);

.setFont (new java.awt. Font («Times New Roman», 0, 18)); // NOI18N.setText («Замовники»);.addMouseListener (new java.awt.event. MouseAdapter() {void mouseClicked (java.awt.event. MouseEvent evt) {(evt);

}

});

.setFont (new java.awt. Font («Times New Roman», 0, 18)); // NOI18N.setText («Продукція»);.addMouseListener (new java.awt.event. MouseAdapter() {void mouseClicked (java.awt.event. MouseEvent evt) {click(evt);

}

});

.setFont (new java.awt. Font («Times New Roman», 0, 18)); // NOI18N.setText («Постачальники»);.addMouseListener (new java.awt.event. MouseAdapter() {void mouseClicked (java.awt.event. MouseEvent evt) {click(evt);

}

});

javax.swing. GroupLayout jPanel1Layout = new javax.swing. GroupLayout(jPanel1);.setLayout(jPanel1Layout);Layout.setHorizontalGroup (Layout.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(jPanel1Layout.createSequentialGroup()(109, 109, 109)(jPanel1Layout.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(javax.swing. GroupLayout. Alignment.TRAILING, jPanel1Layout.createSequentialGroup()(javax.swing. LayoutStyle. ComponentPlacement.RELATED, 17, javax.swing. GroupLayout.PREFERRED_SIZE)(jPanel1Layout.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(jLabel3)(jLabel2))(17, 17, 17))(jLabel4))(115, Short.MAX_VALUE))

);Layout.setVerticalGroup (Layout.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(jPanel1Layout.createSequentialGroup()()(jLabel2)(18, 18, 18)(jLabel3)(18, 18, 18)(jLabel4)(20, Short.MAX_VALUE))

);

.swing. GroupLayout layout = new javax.swing. GroupLayout (getContentPane());().setLayout(layout);.setHorizontalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(layout.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(29, 29, 29)(jLabel1))(layout.createSequentialGroup()(62, 62, 62)(jPanel1, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE)))(25, Short.MAX_VALUE))

);.setVerticalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()()(jLabel1)(34, 34, 34)(jPanel1, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE)(34, Short.MAX_VALUE))

);

();

} // </editor-fold>

void click (java.awt.event. MouseEvent evt) {NewJFrame1 ().setVisible(true); // TODO add your handling code here:

}

void jLabel3click (java.awt.event. MouseEvent evt) {NewJFrame().setVisible(true); // TODO add your handling code here:

}

void jLabel4click (java.awt.event. MouseEvent evt) {NewJFrame2 ().setVisible(true); // TODO add your handling code here:

}

/**

* @param args the command line arguments

*/static void main (String args[]) {

/* Set the Nimbus look and feel */

// <editor-fold defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/{(javax.swing.UIManager. LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels()) {(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel (info.getClassName());;

}

}

} catch (ClassNotFoundException ex) {.util.logging. Logger.getLogger (Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (InstantiationException ex) {.util.logging. Logger.getLogger (Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {.util.logging. Logger.getLogger (Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (javax.swing. UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger (Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

}

// </editor-fold>

/* Create and display the form */.awt. EventQueue.invokeLater (new Runnable() {void run() {Main().setVisible(true);

}

});

}

// Variables declaration - do not modifyjavax.swing.JLabel jLabel1;javax.swing.JLabel jLabel2;javax.swing.JLabel jLabel3;javax.swing.JLabel jLabel4;javax.swing.JPanel jPanel1;

// End of variables declaration

}


Додаток Б


Лістинг NewJFrame форми

package javaapplication2;

java.sql. Connection;java.sql. DriverManager;java.sql. ResultSet;java.sql.SQLException;java.sql. Statement;javax.swing.table. DefaultTableModel;javax.swing.JOptionPane;

class NewJFrame extends javax.swing.JFrame {

connection;stmt;rs;model = new DefaultTableModel();[] row = new Object[5];

NewJFrame() {();

}

@SuppressWarnings («unchecked»)

// <editor-fold defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {= new javax.swing.JScrollPane();= new javax.swing.JTable();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();

(javax.swing. WindowConstants.EXIT_ON_CLOSE);

.setModel (new javax.swing.table. DefaultTableModel (Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},String [] {

«Title 1», «Title 2», «Title 3», «Title 4»

}

));.setViewportView(jTable1);

.setText («Завантажити дані»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

jButton2.setText («Видалити»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText (» Додати запис»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Зберегти»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Закрити»);

.swing. GroupLayout layout = new javax.swing. GroupLayout (getContentPane());().setLayout(layout);.setHorizontalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(jButton1)(18, 18, 18)(jButton2)(18, 18, 18)(jButton3)(18, 18, 18)(jButton4)(18, 18, 18)(jButton5))(jScrollPane1)

);.setVerticalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(5, 5, 5)(jScrollPane1, javax.swing. GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)(javax.swing. LayoutStyle. ComponentPlacement.RELATED)(layout.createParallelGroup (javax.swing. GroupLayout. Alignment.BASELINE)(jButton1)(jButton2)(jButton3)(jButton4)(jButton5))())

);

pack();

} // </editor-fold>

void jButton1ActionPerformed (java.awt.event. ActionEvent evt) {

{

errMessage = null;{.forName («org.postgresql. Driver»).newInstance();= DriverManager.getConnection (

«jdbc:postgresql://localhost:5432/new1», «postgres», «123321»);query = «select * from prod»;= connection.createStatement();= stmt.executeQuery(query);{i=-1;[] columns ={«ID», «Назва», «Тип», «Ціна», «Кількість»};

.setColumnIdentifiers(columns);.jTable1.setModel(model);

(rs.next())

{+=1;[0]=rs.getString («ID»);[1]=rs.getString («name»);[2]=rs.getString («type»);[3]=rs.getString («cost»);[4]=rs.getString («count»);.addRow(row);.out.println (rs.getString(1)

+ «\t» + rs.getString(2)

+ «\t»);

}.close();

} catch (SQLException e) {= e.getMessage();.out.println(errMessage);

}

} catch (Exception e) {= e.getMessage();.out.println(errMessage);

}

}

}

void jButton2ActionPerformed (java.awt.event. ActionEvent evt) {sel= this.jTable1.getSelectedRow();(sel>=0)

{.removeRow(sel);

}

}

void jButton3ActionPerformed (java.awt.event. ActionEvent evt) {[0]=JOptionPane.showInputDialog («Введіть ID товару»);[1]=JOptionPane.showInputDialog («Введіть назву товару»);[2]=JOptionPane.showInputDialog («Введітьтип товару»);[3]=JOptionPane.showInputDialog («Введіть ціну товару»);[4]=JOptionPane.showInputDialog («Введіть к-сть товару»);.addRow(row);

}

void jButton4ActionPerformed (java.awt.event. ActionEvent evt) {errMessage = null;{.forName («org.postgresql. Driver»).newInstance();= DriverManager.getConnection («jdbc:postgresql://localhost:5432/new1», «postgres», «123321»);= connection.createStatement();{i=0;end = this.jTable1.getRowCount();query = «truncate table prod»;.execute(query);(i<=end)

{= «INSERT INTO prod (\ «ID\», \ «Name\», \ «Type\», \ «Cost\», \ «Count\») VALUES ('»+this.jTable1.getValueAt (i, 0)+» ', '»

+this.jTable1.getValueAt (i, 1)+» ', ' «+this.jTable1.getValueAt (i, 2)+» ', ' «+this.jTable1.getValueAt (i, 3)+» ', '»

+this.jTable1.getValueAt (i, 4)+ «')»;.out.println(query);.execute(query);+=1;

}.close();

// stmt.close();

} catch (SQLException e) {= e.getMessage();.out.println(errMessage);

}

}

}

/**

* @param args the command line arguments

*/static void main (String args[]) {

/* Set the Nimbus look and feel */

// <editor-fold defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/{(javax.swing.UIManager. LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels()) {(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel (info.getClassName());;

}

}

} catch (ClassNotFoundException ex) {.util.logging. Logger.getLogger (NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (InstantiationException ex) {.util.logging. Logger.getLogger (NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {.util.logging. Logger.getLogger (NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (javax.swing. UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger (NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

}

// </editor-fold>

/* Create and display the form */.awt. EventQueue.invokeLater (new Runnable() {void run() {

// new NewJFrame().setVisible(true);Main().setVisible(true);

}

});

}

// Variables declaration - do not modifyjavax.swing.JButton jButton1;javax.swing.JButton jButton2;javax.swing.JButton jButton3;javax.swing.JButton jButton4;javax.swing.JButton jButton5;javax.swing.JScrollPane jScrollPane1;javax.swing.JTable jTable1;

// End of variables declaration

}

 


Додаток В


Лістинг NewJFrame1 форми

package javaapplication2;

java.sql. Connection;java.sql. DriverManager;java.sql. ResultSet;java.sql.SQLException;java.sql. Statement;javax.swing.table. DefaultTableModel;javax.swing.JOptionPane;

class NewJFrame1 extends javax.swing.JFrame {

connection;stmt;rs;model = new DefaultTableModel();[] row = new Object[4];

NewJFrame1 () {();

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

@SuppressWarnings («unchecked»)

// <editor-fold defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {

= new javax.swing.JScrollPane();= new javax.swing.JTable();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();

(javax.swing. WindowConstants.EXIT_ON_CLOSE);

.setModel (new javax.swing.table. DefaultTableModel (Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},String [] {

«Title 1», «Title 2», «Title 3», «Title 4»

}

));.setViewportView(jTable1);

jButton5.setText («Закрити»);

.setText («Зберегти»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText (» Додати запис»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Видалити»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Завантажити дані»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

javax.swing. GroupLayout layout = new javax.swing. GroupLayout (getContentPane());().setLayout(layout);.setHorizontalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(jButton1)(18, 18, 18)(jButton2)(18, 18, 18)(jButton3)(18, 18, 18)(jButton4)(18, 18, 18)(jButton5))(jScrollPane1)

);.setVerticalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(5, 5, 5)(jScrollPane1, javax.swing. GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE)(javax.swing. LayoutStyle. ComponentPlacement.RELATED)(layout.createParallelGroup (javax.swing. GroupLayout. Alignment.BASELINE)(jButton1)(jButton2)(jButton3)(jButton4)(jButton5))())

);

();

} // </editor-fold>

void jButton4ActionPerformed (java.awt.event. ActionEvent evt) {errMessage = null;{.forName («org.postgresql. Driver»).newInstance();= DriverManager.getConnection («jdbc:postgresql://localhost:5432/new1», «postgres», «123321»);= connection.createStatement();{i=0;end = this.jTable1.getRowCount();query = «truncate table zamov»;.execute(query);(i<=end)

{= «INSERT INTO prod (\ «ID\», \ «PIB\», \ «adress\», \ «tell\») VALUES ('»+this.jTable1.getValueAt (i, 0)+» ', '»

+this.jTable1.getValueAt (i, 1)+«', ' «+this.jTable1.getValueAt (i, 2)+» ', ' «+this.jTable1.getValueAt (i, 3)+» ')»;.out.println(query);.execute(query);+=1;

}.close();

} catch (SQLException e) {= e.getMessage();.out.println(errMessage);

}

} catch (Exception e) {= e.getMessage();.out.println(errMessage);

}

}

void jButton3ActionPerformed (java.awt.event. ActionEvent evt) {[0]=JOptionPane.showInputDialog («Введіть ID замовника»);[1]=JOptionPane.showInputDialog («Введіть ПІБ»);[2]=JOptionPane.showInputDialog («Введіть Адресу»);[3]=JOptionPane.showInputDialog («Введіть телефон замовника»);.addRow(row);

}

void jButton2ActionPerformed (java.awt.event. ActionEvent evt) {sel= this.jTable1.getSelectedRow();(sel>=0)

{.removeRow(sel);

}

}

private void jButton1ActionPerformed (java.awt.event. ActionEvent evt) {

{

errMessage = null;{.forName («org.postgresql. Driver»).newInstance();= DriverManager.getConnection (

«jdbc:postgresql://localhost:5432/new1», «postgres», «123321»);query = «select * from zamov»;= connection.createStatement();= stmt.executeQuery(query);{i=-1;[] columns ={«ID», «ПІБ», «Адреса», «Телефон»};

.setColumnIdentifiers(columns);.jTable1.setModel(model);

(rs.next())

{+=1;[0]=rs.getString («ID»);[1]=rs.getString («PIB»);[2]=rs.getString («adress»);[3]=rs.getString («tell»);.addRow(row);.out.println (rs.getString(1)

+ «\t» + rs.getString(2)

+ «\t»);

}.close();

} catch (SQLException e) {= e.getMessage();.out.println(errMessage);

}

} catch (Exception e) {= e.getMessage();.out.println(errMessage);

}

}

}

/**

* @param args the command line arguments

*/static void main (String args[]) {

/* Set the Nimbus look and feel */

// <editor-fold defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/{(javax.swing.UIManager. LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels()) {(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel (info.getClassName());;

}

}

} catch (ClassNotFoundException ex) {.util.logging. Logger.getLogger (NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (InstantiationException ex) {.util.logging. Logger.getLogger (NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {.util.logging. Logger.getLogger (NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (javax.swing. UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger (NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

}

// </editor-fold>

/* Create and display the form */.awt. EventQueue.invokeLater (new Runnable() {void run() {

// new NewJFrame1 ().setVisible(true);

}

});

}

// Variables declaration - do not modifyjavax.swing.JButton jButton1;javax.swing.JButton jButton2;javax.swing.JButton jButton3;javax.swing.JButton jButton4;javax.swing.JButton jButton5;javax.swing.JScrollPane jScrollPane1;javax.swing.JTable jTable1;

// End of variables declaration

}

 


Додаток Г


Лістинг NewJFrame2 форми

package javaapplication2;

java.sql. Connection;java.sql. DriverManager;java.sql. ResultSet;java.sql.SQLException;java.sql. Statement;javax.swing.table. DefaultTableModel;javax.swing.JOptionPane;

class NewJFrame2 extends javax.swing.JFrame {

connection;stmt;rs;model = new DefaultTableModel();[] row = new Object[5];

NewJFrame2 () {();

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

@SuppressWarnings («unchecked»)

// <editor-fold defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {

= new javax.swing.JScrollPane();= new javax.swing.JTable();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();

(javax.swing. WindowConstants.EXIT_ON_CLOSE);

.setModel (new javax.swing.table. DefaultTableModel (Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},String [] {

«Title 1», «Title 2», «Title 3», «Title 4»

}

));.setViewportView(jTable1);

jButton1.setText («Завантажити дані»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Видалити»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText (» Додати запис»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Зберегти»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);

}

});

.setText («Закрити»);

javax.swing. GroupLayout layout = new javax.swing. GroupLayout (getContentPane());().setLayout(layout);.setHorizontalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(jButton1)(18, 18, 18)(jButton2)(18, 18, 18)(jButton3)(18, 18, 18)(jButton4)(18, 18, 18)(jButton5))(jScrollPane1)

);.setVerticalGroup (.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(5, 5, 5)(jScrollPane1, javax.swing. GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE)(javax.swing. LayoutStyle. ComponentPlacement.RELATED)(layout.createParallelGroup (javax.swing. GroupLayout. Alignment.BASELINE)(jButton1)(jButton2)(jButton3)(jButton4)(jButton5))())

);

();

} // </editor-fold>

void jButton1ActionPerformed (java.awt.event. ActionEvent evt) {

{

errMessage = null;{.forName («org.postgresql. Driver»).newInstance();= DriverManager.getConnection (

«jdbc:postgresql://localhost:5432/new1», «postgres», «123321»);query = «select * from post»;= connection.createStatement();= stmt.executeQuery(query);{i=-1;[] columns ={«ID», «Назва», «Тип», «Адреса», «Телефон»};

.setColumnIdentifiers(columns);.jTable1.setModel(model);

(rs.next())

{+=1;[0]=rs.getString («ID»);[1]=rs.getString («name»);[2]=rs.getString («type»);[3]=rs.getString («adress»);[4]=rs.getString («tell»);.addRow(row);.out.println (rs.getString(1)

+ «\t» + rs.getString(2)

+ «\t»);

}.close();

} catch (SQLException e) {= e.getMessage();.out.println(errMessage);

}

} catch (Exception e) {= e.getMessage();.out.println(errMessage);

}

}

}

void jButton2ActionPerformed (java.awt.event. ActionEvent evt) {sel= this.jTable1.getSelectedRow();(sel>=0)

{.removeRow(sel);

}

}void jButton3ActionPerformed (java.awt.event. ActionEvent evt) {[0]=JOptionPane.showInputDialog («Введіть ID постачальника»);[1]=JOptionPane.showInputDialog («Введіть назву фірми постачальника»);[2]=JOptionPane.showInputDialog («Введіть тип товару, який постачає постачальник»);[3]=JOptionPane.showInputDialog («Введіть адресу постачальника»);[4]=JOptionPane.showInputDialog («Введіть контактний телефон постачальника»);.addRow(row);

}

void jButton4ActionPerformed (java.awt.event. ActionEvent evt) {errMessage = null;{.forName («org.postgresql. Driver»).newInstance();= DriverManager.getConnection («jdbc:postgresql://localhost:5432/new1», «postgres», «123321»);= connection.createStatement();{i=0;end = this.jTable1.getRowCount();query = «truncate table post»;.execute(query);(i<=end)

{= «INSERT INTO post (\ «ID\», \ «name\», \ «type\», \ «adress\», \ «tell\») VALUES ('»+this.jTable1.getValueAt (i, 0)+» ', '»

+this.jTable1.getValueAt (i, 1)+» ', ' «+this.jTable1.getValueAt (i, 2)+» ', ' «+this.jTable1.getValueAt (i, 3)+» ', '»

+this.jTable1.getValueAt (i, 4)+ «')»;.out.println(query);.execute(query);+=1;

}.close();

// stmt.close();

} catch (SQLException e) {= e.getMessage();.out.println(errMessage);

}

} catch (Exception e) {= e.getMessage();.out.println(errMessage);

}

}

/**

* @param args the command line arguments

*/static void main (String args[]) {

/* Set the Nimbus look and feel */

// <editor-fold defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/{(javax.swing.UIManager. LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels()) {(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel (info.getClassName());;

}

}

} catch (ClassNotFoundException ex) {.util.logging. Logger.getLogger (NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (InstantiationException ex) {.util.logging. Logger.getLogger (NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {.util.logging. Logger.getLogger (NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

} catch (javax.swing. UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger (NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);

}

// </editor-fold>

/* Create and display the form */.awt. EventQueue.invokeLater (new Runnable() {void run() {

//new NewJFrame2 ().setVisible(true);

}

});

}

// Variables declaration - do not modifyjavax.swing.JButton jButton1;javax.swing.JButton jButton2;javax.swing.JButton jButton3;javax.swing.JButton jButton4;javax.swing.JButton jButton5;javax.swing.JScrollPane jScrollPane1;javax.swing.JTable jTable1;

// End of variables declaration

}

Похожие работы на - Автоматизація магазину комп’ютерів

 

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