Розробка навчальної програми "Проїзд дорожніх перехресть"

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 24.02.2014
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Зміст

1. Вступ

2. Огляд літературних джерел

2.1 Обгрунтування вибраної мови програмування

2.2 Опис методів та алгоритмів вирішення задачі

2.3 Обгрунтування вибору базового рішення

3. Спеціальна частина

3.1 Основні функції програмного продукту

3.2 Структура програмного продукту

3.3 Розробка алгоритму

3.4 Розробка програми

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

3.6 Результати тестування

Висновок

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

Додаток

1. Вступ

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

Метою роботи є проаналізувати процес розробки програм з використанням процедур, дати опис середовища програмування для реалізації програми у середовищі Eclipse з використанням мови програмування Java.

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

Відповідно до мети перед роботою були поставлені такі завдання:

проаналізувати етапи розробки програм на ЕОМ;

описати середовище програмування;

розробити алгоритм з використанням процедур;

зробити опис роботи програми;

демонстрація роботи програми;

описати результати роботи програми;

зробити висновок по даній роботі;

в додатку - лістинг основних блоків програми.

2. Огляд літературних джерел

2.1 Обгрунтування вибраної мови програмування

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

Oracle надає компілятор Java та віртуальну машину Java, які задовольняють специфікації Java Community Process, під ліцезією GNU General Public License.

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

Java вплинула на розвиток J++, що розроблялась компанією Microsoft. Роботу над J++ було зупинено через судовий позов компанії Sun Microsystems, оскільки ця мова програмування була модифікацією Java. Пізніше в новій платформі Microsoft .NET випустило J#, щоб полегшити міграцію програмістів J++ або Java на нову платформу. З часом нова мова програмування С#, стала основною мовою платформи, перейнявши багато чого з Java. J# востаннє включався в версіюMicrosoft Visual Studio 2005. Мова сценаріїв JavaScript має схожу із Java назву і синтаксис, але не пов'язана із Java.

2.2 Опис методів та алгоритмів вирішення задачі

Змістом мови Java є об'єктно-орієнтоване програмування (OOP, Object-oriented Programming). Фактично всі програми Java об'єктно-орієнтовані (тоді як, наприклад, в мові C++ це не так).

Три принципи ООП

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

Інкапсуляція

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

Основою інкапсуляції в мові Java є клас. Хоча класи будуть детально розглянуті далі, корисно буде їх коротке обговорення. Клас визначає структуру і поведінку (дані і код) деякого набору об'єктів. Кожен об'єкт заданого класу містить як структуру (дані), так і поведінку, визначувані класом (неначебто вони були проштамповані деяким шаблоном у формі класу). З цієї причини про об'єкт іноді говорять як про екземпляр класу. Таким чином, клас - це логічна конструкція, а об'єкт - це фізична реальність.

Коли ви створюєте клас, потрібно специфікувати код і дані, які складають цей клас. Всі разом ці елементи називають членами (members) класу. Дані, які визначені в класі, називають членами-змінними (member variables) або змінними екземпляра (instance variables). Код, який оперує цими даними, називають членами-методами (member methods) або просто методами (methods). У правильно записаних Java-програмах методи визначають, як можна використовувати члени-змінні. Це означає, що поведінка й інтерфейс класу визначаються методами, що оперують на даних його екземплярів.

Оскільки мета класу - інкапсуляція складності, то існують механізми скриття складності реалізації всередині класу. Кожен метод або змінна в класі може бути помічена як private (приватний або локальний) або public (загальний). Модифікатор public вказує на все, що потрібне або можна знати зовнішнім користувачам класу. Методи і дані з модифікатором private можуть бути доступні тільки в коді, що є членом даного класу. Будь-який код, що не є членом класу, не має доступу до private-методів або змінних. Оскільки private-члени класу виявляються доступними іншим частинам вашої програми тільки через public-методи класу, ви можете бути впевнені, що ніякі невідповідні дії не виконаються. Звичайно, це означає, що public-інтерфейс має бути ретельно спроектований, щоб не розкривати дуже багато внутрішніх членів класу.

Спадковість

Спадковість - процес, за допомогою якого один об'єкт набуває властивостей іншого об'єкту. Даний принцип важливий тому, що підтримує концепцію ієрархічної класифікації. Як вже розповідалося вище, найбільша частина знань стає керованою тільки за допомогою ієрархічних (тобто організованих зверху "вниз") класифікацій. Наприклад, порода пошукових мисливських собак Golden Retriever є частиною класифікації dog (собаки), яка, у свою чергу, є частина класу Memmal (ссавці) - підкласу великого класу Animal (тварини). Без застосування класифікацій кожен об'єкт потребував би явного визначення всіх своїх характеристик. При використанні спадковості об'єкт потребує визначення тільки тих якостей, які роблять його унікальним у власному класі. Він може успадковувати загальні властивості від свого батька. Тому саме механізм спадковості дає можливість одному об'єкту бути специфічним екземпляром більш загального випадку.

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

Поліморфізм

Поліморфізм (від грец. - що "має багато форм") - властивість, яка дозволяє використовувати один інтерфейс для загального класу дій. Специфічна дія визначається точною природою ситуації. Розглянемо стек (список типу LIFO - Last-in, First-out). Ви можете мати програму, яка вимагає три типи стеків. Один стек використовується для цілих значень, інший - для значень з плаваючою крапкою, і третій - для символів. Алгоритм, який реалізує кожен стек, - один і той же, хоча дані, що зберігаються, різні. У не об'єктно-орієнтованій мові від вас би потрібно було створити три різні набори стекових підпрограм, кожен з яких мав би власне ім'я. Внаслідок поліморфізму в мові Java можна специфікувати загальний для всіх типів даних набір стекових підпрограм, що використовують одне і те ж ім'я.

2.3 Обґрунтування вибору базового рішення

У Java є 2 основних пакети для створення графічних інтерфейсів ( Graphics User Interface ) . Це Abstract Windows Toolkit ( AWT ) і Swing . AWT використовує віджети операційної системи, тому ця бібліотека є трохи швидшою.

Для груповання компонентів інтерфейсу використовуються контейнери ( Container ) . Найчастіше використовується контейнер JFrame (є ще JWindows і JApplet ) . Методи , які можуть знадобитися:

setBounds ( x , y , w , h ) - вказує координати верхній лівій вершини вікна , а також її ширину і висоту.

setResizable ( bool ) - вказує , чи можна змінювати розмір вікна .

setTitle ( str ) - встановлює назву вікна .

setVisible ( bool ) - відображає вікно.

setDefaultCloseOperation ( operation ) - вказує операцію , яка буде виконана при закритті вікна .

Основні елементи управління:

JLabel - елемент для відображення фіксованого тексту;

JTextField - простий edit - box ;

JButton - кнопка ;

JCheckBox - елемент вибору ;

JRadioButton - радіо кнопка.

При відображенні елементів управління використовуються спеціальні менеджери - LayoutManager .

FlowLayout - використовується для послідовного відображення елементів . Якщо елемент не поміщається в конкретну рядок , він відображається у наступній.

GridLayout - відображення елементів у вигляді таблиці з однаковими розмірами вічок .

BorderLayout - використовується при відображенні не більше 5 елементів . Ці елементи розташовуються по краях кадру і в Ценрт : North , South , East , West , Center.

BoxLayout - відображає елементи у вигляді рядка або колонки.

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

.

3. Спеціальна частина

3.1. Основні функції програмного продукту

Програма «Проїзд торожній перехресть» виконує такі функції:

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

Покозує результат який набраний під час проходження тесту.

Вивчення теорії з візуальним поясненням і коментування їх для кращого розуміння експертом.

Можливість ознайомлення з правилами проїзду перехресть.

Короткі теоретичні відомості про розробника.

3.2 Структура програмного продукту

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

Головний клас програми (menu.java) містить головне меню програми(JMenuBar).

Клас class test1 - призначений для реалізації пробного тесту.

Основні елементи:

JRadioButton

Panel

ButtonGroup

JLabel

JButton

Такі самі елементи я використав в класі class examen призначений для реалізації екземенаційного тесту.

Класи zteoria, nereg, reg - призначений для виводу навчальної теорії по роїзде дорожніх перехресть.

Клас titulka- не мітить обробників подій, а лише виводить інформацію Про розробника.

Клас prog - виводить інформацію Про програму з текстового документую.

3.3 Розробка алгоритму

UML-діаграма

3.4 Розробка програми

Для створення головного вікна курсової роботи я використав наступний програмний код:

JFrame f = new JFrame("Проїзд дорожніх перехресть"); // Створює головне вікно програми;

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Встановлює стандартну операцію закриття для вікна, без цього вікно не закриється після активування кнопки закриття(Стандартно HIDE_ON_CLOSE, що просто приховує вікно);

frame.setResizable(false);// зобороняє змінювати розмір форми;

frame.setSize(550, 390); // Встановлює розміри вікна

frame.setVisible(true);// Вснановлює мовидимість=істина, тим самим показуючи вікно на екрані.

Перехід на тестові білети реалізований так:

txtFileItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

new test1();

}});

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

JLabel l = new JLabel(""); // Загружає картинку для питання в JLabel

JLabel l0 = new JLabel("В якому порядку проїдуть перхрестя транспортні засоби?"); // Записує питання для завдання JLabel

JLabel l1 = new JLabel("Ваша оцінка:");

JLabel l2 = new JLabel(""); // Записує результат пройденого тесту JLabel

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

ta.setFont(tnr40);

StringBuffer contents = new StringBuffer();

BufferedReader reader = null;

try{

reader = new BufferedReader(new FileReader("resources\\prog.txt"));

String text = null;

while ((text = reader.readLine()) != null)

{ contents.append(text)

.append(System.getProperty(

"line.separator"));}

} catch (FileNotFoundException e1)

{ e1.printStackTrace();

} catch (IOException e1)

{e1.printStackTrace();

} finally

{ try

{

if (reader != null)

{

reader.close();}

} catch (IOException e1)

{

e1.printStackTrace();}}

ta.setText(contents.toString());

ta.setEditable(false);

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

Для запуску програми потрібно скопіювати папку проекту на локальний комп'ютером з усіма ресурсами і запустити PDP.jar після цього ми побачимо меню програми (Мал 3.1).

Мал. 3.1 Вікно головного меню

Для запуску пробного тесту зайдіть в Білети і виберіть пункт Тестові білети (Мал 3.2)

Мал 3.2. Вікно «Теоретичні білети»

Екземенаційні білети (Мал.3.3)

Мал 3.3. Вікно «Екземенаційні білети»

Після проходження білетів вибиває результат позитивний (Мал 3.4) і негативний (Мал 3.4)

Мал 3.4. Вікно результату «позитивного»

Мал 3.5. Вікно результату «негативного»

Вікно з правилами проїзду дорожніх перехресть запускається з вкладки меню «теорія» (Мал 3.6 - 3.8)

Мал 3.6. Вікно «Загальна теорія»

Мал 3.6. Вікно «Регульовані перехрестя»

Мал 3.6. Вікно «Не регульовані перехрестя»

3.6 Результати тестування

Параметри комп'ютера на якому проводилося тестування розробленої програми такі:

Процесор

Intel(R) Core(TM) i5-3317U @ 1.70Hz (2CPUs)

Материнська плата

Asus P5 VM

Оперативна пам'ять

6.00 Gb

Вінчестер

500GB AHD710-1TU3-CBK

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

 MyEclipse Blue

Windows version

Microsoft Windows 7 Маклимальний Service Pack 1

Програмне забезпечення, яке необхідне для роботи розробленої програми:

Операційна система - Windows XP ServicePack 1;

Встановлена Java платформа та програма MyEclipse.

Програма займає 7,69 МБвільного простору на диску.

Висновок

Дана програма призначена для вивчення правил проїзду дорожніх перехресть.

Реалізація програми була здійснена на мові програмування Java середовищі розробки Myeclipse.

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

навчальна програма дорожній алгоритм

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

Герберт Шилдт, Джеймс Холмс Искусство программирования на JAVA. - К.: Издательский дом «Вильямс», 2005.

Девид Фленаган Java у прикладах. Довідник

Торський П.О. ТЕХНОЛОГІЯ ПРОГРАМУВАННЯ ТА СТВОРЕННЯ ПРОГРАМНИХ ПРОДУКТІВ

Ноутон, Г. Шилдт Java 2. Наиболее полное руководство

Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри Технологии программированина Java 2. Книга 1. Графика, изд. М., «Бином-Пресс», 2003.

Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри Технологии программирования на Java 2. Книга 2. Распределенные приложения изд. М., «Бином-Пресс», 2003.

http://javaland.com.ua/vykorystannya-java/mova-i-arxitektura-java/11/

http://uk.wikipedia.org/wiki/Java

Файл menu.java:

package test;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

public class menu {

JFrame f=new JFrame("Проїзд дорожніх перехресть");

JMenuBar mBar=new JMenuBar();

JMenu fmenu=new JMenu("Білети");

JMenu tmenu=new JMenu("Теорія");

JMenu help=new JMenu("Справка");

Font font = new Font("Verdana", Font.BOLD, 12);

JLabel l=new JLabel();

ImageIcon icon1 = new ImageIcon("images//p1.jpg");

public menu(){

JMenuItem txtFileItem = new JMenuItem("Тестові білети");

txtFileItem.setFont(font);

fmenu.add(txtFileItem);

txtFileItem.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

new test1();

}});

JMenuItem imgFileItem = new JMenuItem("Екземенаційні білети");

imgFileItem.setFont(font);

fmenu.add(imgFileItem);

imgFileItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

newexamen();}});

JMenuItem exitItem = new JMenuItem("Вихід");

exitItem.setFont(font);

exitItem.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0);}});

JMenuItem zteoria = new JMenuItem("Загальна теорія");

zteoria.setFont(font);

tmenu.add(zteoria);

zteoria.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

new zteoria();}});

JMenuItem reg= new JMenuItem("Регульовані перехрестя");

reg.setFont(font);

tmenu.add(reg);

reg.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

new reg();

}});

JMenuItem nereg = new JMenuItem("Нерегульовані перехрестя");

nereg.setFont(font);

tmenu.add(nereg);

nereg.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

new nereg();}});

JMenuItem tit = new JMenuItem("Титулка");

tit.setFont(font);

help.add(tit);

tit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

new titulka();}});

JMenuItem prog = new JMenuItem("Про програму");

prog.setFont(font);

help.add(prog);

prog.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

new prog();

}});

f.getContentPane().setLayout(null);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.pack();

f.setLocationByPlatform(true);

mBar.setBounds(1, 1, 640, 20);

l.setBounds(20, 40, 600, 300);

f.add(mBar);

l.setIcon(icon1);

mBar.add(fmenu);

mBar.add(tmenu);

mBar.add(help);

mBar.add(exitItem);

f.setResizable(false);

f.add(l);

f.setSize(550,390);

f.setLocationRelativeTo(null);

f.setVisible(true);

}

public static void main(String[] args) {

new menu();

}

}

Файл test1.java:

package test;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JRadioButton;

public class test1 {

JFrame f=new JFrame("Теоретичні білети");

JPanel p= new JPanel();

JPanel p1= new JPanel();

JPanel p2= new JPanel();

Font tnr40=new Font("Times New Roman",Font.BOLD,50);

Font tnr72=new Font("Times New Roman",Font.BOLD,310);

Color Red = new Color(255, 0, 0);

Color Green = new Color(0, 255, 0);

JLabel l = new JLabel("");

JLabel l0 = new JLabel("В якому порядку проїдуть перхрестя транспортні засоби?");

JLabel l1 = new JLabel("Ваша оцінка:");

JLabel l2 = new JLabel("");

ButtonGroup bg0 = new ButtonGroup();

ButtonGroup bg1 = new ButtonGroup();

ButtonGroup bg2 = new ButtonGroup();

ButtonGroup bg3 = new ButtonGroup();

ButtonGroup bg4 = new ButtonGroup();

ButtonGroup bg5 = new ButtonGroup();

ButtonGroup bg6 = new ButtonGroup();

ButtonGroup bg7 = new ButtonGroup();

ButtonGroup bg8 = new ButtonGroup();

ButtonGroup bg9 = new ButtonGroup();

JRadioButton b01= new JRadioButton("Червоний, синій, жовтий, зелений;");

JRadioButton b02= new JRadioButton("Жовтий, зелений, червоний, синій;");

JRadioButton b03= new JRadioButton("Червоний, зелений, синій, жовтий.");

JRadioButton b11= new JRadioButton("Жовтий виїде на перехрестя і зупиниться шоб дати дорогу");

JLabel lb11=new JLabel(" зеленому; зелений, синій, червоний, жовтий.");

JRadioButton b12= new JRadioButton("Жовтий, зелений, червоний, синій.");

JRadioButton b13= new JRadioButton("зелений, синій, червоний, жовтий.");

JRadioButton b21= new JRadioButton("Водій мотоцикла;");

JRadioButton b22= new JRadioButton("Водій вантажного автомобіля.");

JRadioButton b31= new JRadioButton("Синій автомобіль;");

JRadioButton b32= new JRadioButton("Зелений автомобіль;");

JRadioButton b33= new JRadioButton("Червоний автомобіль;");

JRadioButton b34= new JRadioButton("Жовтий автомобіль.");

JRadioButton b41= new JRadioButton("Мотоцикл, автомобіль, трамвай;");

JRadioButton b42= new JRadioButton("Трамвай, автомобіль, мотоцикл;");

JRadioButton b43= new JRadioButton("Трамвай, мотоцикл, автомобіль.");

JRadioButton b51= new JRadioButton("Синій автомобіль;");

JRadioButton b52= new JRadioButton("Зелений автомобіль;");

JRadioButton b53= new JRadioButton("Червоний автомобіль.");

JRadioButton b61= new JRadioButton("Водій автобуса;");

JRadioButton b62= new JRadioButton("Водій Мотоцикла.");

JRadioButton b71= new JRadioButton("Трамвай, автобус, легковий автомобіль;");

JRadioButton b72= new JRadioButton("Автобус, легковий автомобіль, трамвай;");

JRadioButton b73= new JRadioButton("Легковий автомобіль, трамвай, автобус.");

JRadioButton b81= new JRadioButton("Трамваю і мотоциклу;");

JRadioButton b82= new JRadioButton("Автомобілю і мотоциклу;");

JRadioButton b83= new JRadioButton("Всісм транспортним засобам;");

JRadioButton b84= new JRadioButton("Трамваю, вантажному автомобілю і мотоциклу.");

JRadioButton b91= new JRadioButton("Поступився дорогою мотоциклу і розвернувся на перехресті;");

JRadioButton b92= new JRadioButton("Поступився дорогою трамваю і розвернувся на перехресті;");

JRadioButton b93= new JRadioButton("Поступився дорогою трамваю, мотоциклу і розвернувся на перехресті;");

JButton button00 = new JButton("Перевірити");

JButton button20 = new JButton("Продовжити");

JButton button21 = new JButton("Завершити");

ImageIcon icon1 = new ImageIcon("images\\p01.jpg");

ImageIcon icon2 = new ImageIcon("images\\p02.jpg");

ImageIcon icon3 = new ImageIcon("images\\p03.jpg");

ImageIcon icon4 = new ImageIcon("images\\p04.jpg");

ImageIcon icon5 = new ImageIcon("images\\p05.jpg");

ImageIcon icon6 = new ImageIcon("images\\p06.jpg");

ImageIcon icon7 = new ImageIcon("images\\p07.jpg");

ImageIcon icon8 = new ImageIcon("images\\p08.jpg");

ImageIcon icon9 = new ImageIcon("images\\p09.jpg");

ImageIcon icon10 = new ImageIcon("images\\p10.jpg");

Integer res=0,s=0;

Integer k=10;

public test1(){

l.setIcon(icon1);

bg0.add(b01);bg0.add(b02);bg0.add(b03);

bg1.add(b11);bg1.add(b12);bg1.add(b13);

bg2.add(b21);bg2.add(b22);

bg3.add(b31);bg3.add(b32);bg3.add(b33);bg3.add(b34);

bg4.add(b41);bg4.add(b42);bg4.add(b43);

bg5.add(b51);bg5.add(b52);bg5.add(b53);

bg6.add(b61);bg6.add(b62);

bg7.add(b71);bg7.add(b72);bg7.add(b73);

bg8.add(b81);bg8.add(b82);bg8.add(b83);bg5.add(b84);

bg9.add(b91);bg9.add(b92);bg9.add(b93);

b01.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b02.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b03.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b11.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;}});

b12.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b13.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b21.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b22.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b31.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b32.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b33.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b34.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=4;}});

b41.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b42.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b43.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b51.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;}});

b52.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b53.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b61.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b62.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b71.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b72.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b73.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b81.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b82.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b83.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b84.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=4;}});

b91.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b92.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b93.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

//l1.setVisible(false);

p2.setVisible(false);

b11.setVisible(false);

lb11.setVisible(false);

b12.setVisible(false);

b13.setVisible(false);

b21.setVisible(false);

b22.setVisible(false);

b31.setVisible(false);

b32.setVisible(false);

b33.setVisible(false);

b34.setVisible(false);

b41.setVisible(false);

b42.setVisible(false);

b43.setVisible(false);

b51.setVisible(false);

b52.setVisible(false);

b53.setVisible(false);

b61.setVisible(false);

b62.setVisible(false);

b71.setVisible(false);

b72.setVisible(false);

b73.setVisible(false);

b81.setVisible(false);

b82.setVisible(false);

b83.setVisible(false);

b84.setVisible(false);

b91.setVisible(false);

b92.setVisible(false);

b93.setVisible(false);

button20.setEnabled(false);

button21.setFont(tnr40);

button00.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if(k==1){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==2){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 4: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==3){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==4){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==5){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==6){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);button00.setEnabled(false);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==7){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 4: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==8){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 2: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==9){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

if(k==10){button20.setEnabled(true);

switch(res){

case 0: JOptionPane.showMessageDialog(f,"Виберіть відповідь!","Warning",JOptionPane.WARNING_MESSAGE);break;

case 1: s=s+1;JOptionPane.showMessageDialog(f,"Правильно:-)"+"\n");button00.setEnabled(false);break;

case 2: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

case 3: JOptionPane.showMessageDialog(f,"Неправильно:-(","Error",JOptionPane.ERROR_MESSAGE);button00.setEnabled(false);break;

default:System.out.println("sdfd");

}res=0;}

}

});

button21.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

System.exit(0);

}});

button20.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if(k==1){

p2.setVisible(true);

p.setVisible(false);

p1.setVisible(false);

if(s<8){

l1.setForeground(Red);

l2.setForeground(Red);}else{

l1.setForeground(Green);

l2.setForeground(Green);}

l1.setFont(tnr40);

l2.setFont(tnr72);

l2.setText(""+s);

}

if(k==2){k=1;button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon10);

l0.setText(" В якій відповіді правильно вказано дії автомобіля? ");

b81.setVisible(false);

b82.setVisible(false);

b83.setVisible(false);

b84.setVisible(false);

b91.setVisible(true);

b92.setVisible(true);

b93.setVisible(true);

JOptionPane.showMessageDialog(f,"8.7.3\n"+

"Сигнали світлофора мають такі значення:\n"+

"б) зелений у вигляді стрілки (стрілок) на чорному фоні дозволяє рух у зазначеному напрямку (напрямках). Таке саме значення має\n"+

"сигнал у вигляді зеленої стрілки (стрілок) у додатковій секції світлофора.\n"+

"Сигнал у вигляді стрілки, що дозволяє поворот ліворуч, дозволяє й розворот, якщо він не заборонений дорожніми знаками.\n"+

"Сигнал у вигляді зеленої стрілки (стрілок) у додатковій (додаткових) секції, увімкнений разом із зеленим сигналом світлофора,\n"+

"інформує водія про те, що він має перевагу в зазначеному стрілкою (стрілками) напрямку (напрямках) руху перед транспортними \n"+

"засобами, що рухаються з інших напрямків;\n"+"Правильних відповідей: "+s);}

if(k==3){k=2;button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon9);

l0.setText(" Яким транспортним засобам заборонено рух?");

b81.setVisible(true);

b82.setVisible(true);

b83.setVisible(true);

b84.setVisible(true);

b71.setVisible(false);

b72.setVisible(false);

b73.setVisible(false);

JOptionPane.showMessageDialog(f,"16.12\n"+

"На перехресті рівнозначних доріг водій нерейкового транспортного засобу зобов'язаний дати дорогу транспортним засобам, що\n"+

"наближаються праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+

"На будь-якому нерегульованому перехресті трамвай, незалежно від напрямку його подальшого руху, має перевагу перед нерейковими\n"+

"транспортними засобами, що наближаються до нього по рівнозначній дорозі.\n"+"16.13\n"+

"Перед поворотом ліворуч і розворотом водій нерейкового транспортного засобу зобов'язаний дати дорогу трамваю попутного напрямку, а також \n"+

"транспортним засобам, що рухаються по рівнозначній дорозі в зустрічному напрямку прямо чи праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+"Правильних відповідей: "+s);}

if(k==4){k=3;button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon8);

l0.setText("Транспортні засоби проїдуть перехрестя в наступному порядку:");

b71.setVisible(true);

b72.setVisible(true);

b73.setVisible(true);

b61.setVisible(false);

b62.setVisible(false);

JOptionPane.showMessageDialog(f,"16.12\n"+

"На перехресті рівнозначних доріг водій нерейкового транспортного засобу зобов'язаний дати дорогу транспортним засобам, що\n"+

"наближаються праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+

"На будь-якому нерегульованому перехресті трамвай, незалежно від напрямку його подальшого руху, має перевагу перед нерейковими\n"+

"транспортними засобами, що наближаються до нього по рівнозначній дорозі."+"Правильних відповідей: "+s);}

if(k==5){k=4;

button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon7);

l0.setText("Водій якого транспортного засобу повинен дати дорогу?");

b51.setVisible(false);

b52.setVisible(false);

b53.setVisible(false);

b61.setVisible(true);

b62.setVisible(true);

JOptionPane.showMessageDialog(f,"16.12\n"+

"На перехресті рівнозначних доріг водій нерейкового транспортного засобу зобов'язаний дати дорогу транспортним засобам, що\n"+

"наближаються праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+

"На будь-якому нерегульованому перехресті трамвай, незалежно від напрямку його подальшого руху, має перевагу перед нерейковими\n"+

"транспортними засобами, що наближаються до нього по рівнозначній дорозі."+"Правильних відповідей: "+s);}

if(k==6){k=5;button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon6);

l0.setText(" Другим проїде перехрестя: ");

b51.setVisible(true);

b52.setVisible(true);

b53.setVisible(true);

b41.setVisible(false);

b42.setVisible(false);

b43.setVisible(false);

JOptionPane.showMessageDialog(f,"16.11\n"+

"На перехресті нерівнозначних доріг водій транспортного засобу, що рухається по другорядній дорозі, повинен дати дорогу транспортним засобам, \n"+

"які наближаються до даного перехрещення проїзних частин по головній дорозі, незалежно від напрямку їх подальшого руху.\n"+

"16.12\n"+

"На перехресті рівнозначних доріг водій нерейкового транспортного засобу зобов'язаний дати дорогу транспортним засобам, що\n"+

"наближаються праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+

"На будь-якому нерегульованому перехресті трамвай, незалежно від напрямку його подальшого руху, має перевагу перед нерейковими\n"+

"транспортними засобами, що наближаються до нього по рівнозначній дорозі."+"Правильних відповідей: "+s);}

if(k==7){k=6;button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon5);

l0.setText("Транспортні засоби проїдуть перехрестя в наступному порядку:");

b41.setVisible(true);

b42.setVisible(true);

b43.setVisible(true);

b31.setVisible(false);

b32.setVisible(false);

b33.setVisible(false);

b34.setVisible(false);

JOptionPane.showMessageDialog(f,"16.11\n"+

"На перехресті нерівнозначних доріг водій транспортного засобу, що рухається по другорядній дорозі, повинен дати дорогу транспортним засобам, \n"+

"які наближаються до даного перехрещення проїзних частин по головній дорозі, незалежно від напрямку їх подальшого руху.\n"+

"16.13\n"+

"Перед поворотом ліворуч і розворотом водій нерейкового транспортного засобу зобов'язаний дати дорогу трамваю попутного напрямку, а також \n"+

"транспортним засобам, що рухаються по рівнозначній дорозі в зустрічному напрямку прямо чи праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+"Правильних відповідей: "+s);}

if(k==8){k=7;button00.setEnabled(true);

button20.setEnabled(false);

l.setIcon(icon4);

l0.setText(" Другим проїде перехрестя: ");

b31.setVisible(true);

b32.setVisible(true);

b33.setVisible(true);

b34.setVisible(true);

b21.setVisible(false);

b22.setVisible(false);

JOptionPane.showMessageDialog(f,"16.12\n"+

"На перехресті рівнозначних доріг водій нерейкового транспортного засобу зобов'язаний дати дорогу транспортним засобам, що\n"+

"наближаються праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+

"На будь-якому нерегульованому перехресті трамвай, незалежно від напрямку його подальшого руху, має перевагу перед нерейковими\n"+

"транспортними засобами, що наближаються до нього по рівнозначній дорозі."+"Правильних відповідей: "+s);}

if(k==9){

button00.setEnabled(true);

button20.setEnabled(false);

k=8;

l.setIcon(icon3);

l0.setText("Водій якого транспортного засобу повинен дати дорогу?");

b11.setVisible(false);

lb11.setVisible(false);

b12.setVisible(false);

b13.setVisible(false);

b21.setVisible(true);

b22.setVisible(true);

JOptionPane.showMessageDialog(f,"16.12\n"+

"На перехресті рівнозначних доріг водій нерейкового транспортного засобу зобов'язаний дати дорогу транспортним засобам, що\n"+

"наближаються праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+

"На будь-якому нерегульованому перехресті трамвай, незалежно від напрямку його подальшого руху, має перевагу перед нерейковими\n"+

"транспортними засобами, що наближаються до нього по рівнозначній дорозі."+"Правильних відповідей: "+s);}

if(k==10){

button00.setEnabled(true);

button20.setEnabled(false);

k=9;

l.setIcon(icon2);

l0.setText("Автомобілі проїдуть перехрестя в наступному порядку:");

b01.setVisible(false);

b02.setVisible(false);

b03.setVisible(false);

b11.setVisible(true);

lb11.setVisible(true);

b12.setVisible(true);

b13.setVisible(true);

JOptionPane.showMessageDialog(f,"16.11\n"+

"На перехресті нерівнозначних доріг водій транспортного засобу, що рухається по другорядній дорозі, повинен дати дорогу транспортним засобам, \n"+

"які наближаються до даного перехрещення проїзних частин по головній дорозі, незалежно від напрямку їх подальшого руху.\n"+

"16.13\n"+

"Перед поворотом ліворуч і розворотом водій нерейкового транспортного засобу зобов'язаний дати дорогу трамваю попутного напрямку, а також \n"+

"транспортним засобам, що рухаються по рівнозначній дорозі в зустрічному напрямку прямо чи праворуч.\n"+

"Цим правилом повинні керуватися між собою і водії трамваїв.\n"+"Правильних відповідей: "+s);}

}});

f.add(p);f.add(p1);f.add(p2);

p.setBounds(0,0,450, 400);

p.setLayout(new FlowLayout());

p.add(l);

p.add(l0);

p.add(b01);p.add(b02);p.add(b03);

p.add(b11);p.add(lb11);p.add(b12);p.add(b13);

p.add(b21);p.add(b22);

p.add(b31);p.add(b32);p.add(b33);p.add(b34);

p.add(b41);p.add(b42);p.add(b43);

p.add(b51);p.add(b52);p.add(b53);

p.add(b61);p.add(b62);

p.add(b71);p.add(b72);p.add(b73);

p.add(b81);p.add(b82);p.add(b83);p.add(b84);

p.add(b91);p.add(b92);p.add(b93);

p1.setBounds(0,400,450, 280);

p1.setLayout(new FlowLayout());

p1.add(button00);

p1.add(button20);

p2.setLayout(new FlowLayout());

p2.setBounds(0, 0, 455, 500);

p2.add(l1);p2.add(l2);

p2.add(button21);

f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

f.setResizable(false);

f.setSize(455,530);

f.setLocationRelativeTo(null);

f.setVisible(true);

}

public static void main(String[] args) {

new test1();

}}

Файл examen.java:

package test;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JRadioButton;

public class examen {

JFrame f=new JFrame("Екеменаційні білети");

JPanel p= new JPanel();

JPanel p1= new JPanel();

JPanel p2= new JPanel();

Font tnr40=new Font("Times New Roman",Font.BOLD,50);

Font tnr72=new Font("Times New Roman",Font.BOLD,310);

Color Red = new Color(255, 0, 0);

Color Green = new Color(0, 255, 0);

JLabel l = new JLabel("");

JLabel l0 = new JLabel("В якому порядку проїдуть перхрестя транспортні засоби?");

JLabel l1 = new JLabel("Ваша оцінка:");

JLabel l2 = new JLabel("");

ButtonGroup bg0 = new ButtonGroup();

ButtonGroup bg1 = new ButtonGroup();

ButtonGroup bg2 = new ButtonGroup();

ButtonGroup bg3 = new ButtonGroup();

ButtonGroup bg4 = new ButtonGroup();

ButtonGroup bg5 = new ButtonGroup();

ButtonGroup bg6 = new ButtonGroup();

ButtonGroup bg7 = new ButtonGroup();

ButtonGroup bg8 = new ButtonGroup();

ButtonGroup bg9 = new ButtonGroup();

JRadioButton b01= new JRadioButton("Червоний, синій, жовтий, зелений;");

JRadioButton b02= new JRadioButton("Жовтий, зелений, червоний, синій;");

JRadioButton b03= new JRadioButton("Червоний, зелений, синій, жовтий.");

JRadioButton b11= new JRadioButton("Жовтий виїде на перехрестя і зепиниться шоб дати дорогу");

JLabel lb11=new JLabel(" зеленому; зелений, синій, червоний, жовтий.");

JRadioButton b12= new JRadioButton("Жовтий, зелений, червоний, синій.");

JRadioButton b13= new JRadioButton("зелений, синій, червоний, жовтий.");

JRadioButton b21= new JRadioButton("Водій мотоцикла;");

JRadioButton b22= new JRadioButton("Водій вантажного автомобіля.");

JRadioButton b31= new JRadioButton("Синій автомобіль;");

JRadioButton b32= new JRadioButton("Зелений автомобіль;");

JRadioButton b33= new JRadioButton("Червоний автомобіль;");

JRadioButton b34= new JRadioButton("Жовтий автомобіль.");

JRadioButton b41= new JRadioButton("Мотоцикл, автомобіль, трамвай;");

JRadioButton b42= new JRadioButton("Трамвай, автомобіль, мотоцикл;");

JRadioButton b43= new JRadioButton("Трамвай, мотоцикл, автомобіль.");

JRadioButton b51= new JRadioButton("Синій автомобіль;");

JRadioButton b52= new JRadioButton("Зелений автомобіль;");

JRadioButton b53= new JRadioButton("Червоний автомобіль.");

JRadioButton b61= new JRadioButton("Водій автобуса;");

JRadioButton b62= new JRadioButton("Водій Мотоцикла.");

JRadioButton b71= new JRadioButton("Трамвай, автобус, легковий автомобіль;");

JRadioButton b72= new JRadioButton("Автобус, легковий автомобіль, трамвай;");

JRadioButton b73= new JRadioButton("Легковий автомобіль, трамвай, автобус.");

JRadioButton b81= new JRadioButton("Трамваю і мотоциклу;");

JRadioButton b82= new JRadioButton("Автомобілю і мотоциклу;");

JRadioButton b83= new JRadioButton("Всісм транспортним засобам;");

JRadioButton b84= new JRadioButton("Трамваю, вантажному автомобілю і мотоциклу.");

JRadioButton b91= new JRadioButton("Поступився дорогою мотоциклу і розвернувся на перехресті;");

JRadioButton b92= new JRadioButton("Поступився дорогою трамваю і розвернувся на перехресті;");

JRadioButton b93= new JRadioButton("Поступився дорогою трамваю, мотоциклу і розвернувся на перехресті;");

JButton button20 = new JButton("Продовжити");

JButton button21 = new JButton("Завершити");

ImageIcon icon1 = new ImageIcon("images\\p01.jpg");

ImageIcon icon2 = new ImageIcon("images\\p02.jpg");

ImageIcon icon3 = new ImageIcon("images\\p03.jpg");

ImageIcon icon4 = new ImageIcon("images\\p04.jpg");

ImageIcon icon5 = new ImageIcon("images\\p05.jpg");

ImageIcon icon6 = new ImageIcon("images\\p06.jpg");

ImageIcon icon7 = new ImageIcon("images\\p07.jpg");

ImageIcon icon8 = new ImageIcon("images\\p08.jpg");

ImageIcon icon9 = new ImageIcon("images\\p09.jpg");

ImageIcon icon10 = new ImageIcon("images\\p10.jpg");

Integer res=0,s=0;

Integer k=10;

public examen(){

l.setIcon(icon1);

bg0.add(b01);bg0.add(b02);bg0.add(b03);

bg1.add(b11);bg1.add(b12);bg1.add(b13);

bg2.add(b21);bg2.add(b22);

bg3.add(b31);bg3.add(b32);bg3.add(b33);bg3.add(b34);

bg4.add(b41);bg4.add(b42);bg4.add(b43);

bg5.add(b51);bg5.add(b52);bg5.add(b53);

bg6.add(b61);bg6.add(b62);

bg7.add(b71);bg7.add(b72);bg7.add(b73);

bg8.add(b81);bg8.add(b82);bg8.add(b83);bg5.add(b84);

bg9.add(b91);bg9.add(b92);bg9.add(b93);

b01.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b02.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b03.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b11.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;}});

b12.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b13.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b21.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b22.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b31.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b32.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b33.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b34.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=4;}});

b41.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b42.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b43.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b51.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;}});

b52.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b53.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b61.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b62.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b71.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b72.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b73.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b81.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b82.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b83.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

b84.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=4;}});

b91.addItemListener(new ItemListener(){

@Override

public void itemStateChanged(ItemEvent e) {

res=1;

}});

b92.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=2;}});

b93.addItemListener(new ItemListener(){

public void itemStateChanged(ItemEvent e) {

res=3;}});

p2.setVisible(false);

b11.setVisible(false);

lb11.setVisible(false);

b12.setVisible(false);

b13.setVisible(false);

b21.setVisible(false);

b22.setVisible(false);

b31.setVisible(false);

b32.setVisible(false);

b33.setVisible(false);

b34.setVisible(false);

b41.setVisible(false);

b42.setVisible(false);

b43.setVisible(false);

b51.setVisible(false);


Подобные документы

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

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

    курсовая работа [1,0 M], добавлен 19.09.2013

  • Призначення менеджеру пристроїв. Обґрунтування вибору мови програмування. Розробка структурної схеми і опис діалогового інтерфейсу програми. Блок-схема програмного додатку, основні функції і алгоритм його роботи. Методики і інструкція його тестування.

    курсовая работа [3,4 M], добавлен 17.11.2014

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

    курсовая работа [510,2 K], добавлен 03.06.2011

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

    курсовая работа [2,6 M], добавлен 30.11.2009

  • Розв’язання нелінійних алгебраїчних рівнянь методом хорд. Опис структури програмного проекту та алгоритмів розв’язання задачі. Розробка та виконання тестового прикладу. Інші математичні способи знаходження коренів рівнянь, та опис виконаної програми.

    курсовая работа [4,1 M], добавлен 28.09.2010

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

    курсовая работа [1,9 M], добавлен 20.05.2015

  • Розробка кросплатформового інструменту електронного тестування учнів молодших та середніх класів по іноземній мові. Вибір середовища розробки та системи контролю версій. Опис мови програмування Java та лістинг програми. Апаратні та програмні вимоги.

    дипломная работа [608,3 K], добавлен 26.10.2010

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

    курсовая работа [70,3 K], добавлен 03.12.2009

  • Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.

    курсовая работа [852,8 K], добавлен 30.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.