Розробка та тестування додатків на платформі Java

Принципи роботи основних елементів мови Java та використання вільного середовища NetBeans. Будова, функції та головні переваги Java-платформи, особливості сучасних засобів створення Java-додатків. Характеристика елементів та засобів програмування.

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

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

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

Далі слідує цикл While( 05-08) із передумовою ((b*b>a)&&(i<200)). Дана умова складається із двох умов: квадрат b повинен бути більше початкового значення a та значення лічильника не повинне перевищувати 200, тобто всього викнується не більше 200 ітерацій. У даному циклі викнується обчислення чергового значення Xn,що зберігається в змінній b(06). Змінна b на кожному кроці циклу змінюється, причому нове значення даної змінної залежить від попереднього значення. Наприкінці циклу збільшуємо лічильник i на 1 у рядку 07.

Наприкінці методу виводимо отримане значення b в консольне вікно. У методі main()викликається метод sqrt(45). Як параметр можна взяти довільне ціле число (45), що буде привласнене змінній a.(Помнете, виклик яких-небудь методів прямо з методу, що має модифікатор static,можливий тільки за умови, що викликуваний метод теж є статичним).

Завдання до роботи

· За допомогою циклу обчисліть значення вираження2n.

· Складіть програму розрахунку факторіала для довільного числаn<10.

· Дано два дійсних числа. Необхідно одержати їхню суму, різницю й добуток. Результат вивести на консоль.

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

· Складіть програму для знаходження довжини катета прямокутного трикутника(b),якщо відомі довжини гіпотенузи(c)і катета(a). Результат вивести на консоль.

3.3 Використання елементів організації розгалуження в Java

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

Програма 1. Обчислення числа Пі.

1.

2. public class Pi {

3. static double pi;

4. static void leibnic(){

5. for(double i=1;i<100000000;i+=1){

6. if (i%2==0){

7. pi-=1/(2* i-1);

8. }else{

9. pi+=1/(2* i-1);

10. }

11. }

12. pi*=4;

13. System.out.print("\nчисло Пі, підраховане по методу Лейбница дорівнює: "+pi);

14. }

15. static void vallis(){

16. double pi1=1, pi2=1;

17. for(double i=2;i<100000000;i+=2){

18. pi1*=i/(i+1);

19. pi2*=i/( i-1);

20. }

21. pi=pi1*pi2*2;

22. System.out.print("\nчисло Пі, підраховане по методу Валлиса дорівнює: "+pi);

23. }

24. public static void main(String[] args) {

25. leibnic();

26. vallis();

27. }

28. }

У даній програмі описані два методи знаходження числа Пі: метод Лейбниця (ряд Лейбниця) і метод Валліса (формула Валліса).

У даній програмі в рядках 02 і 03 описуються static змінна класу pi типу double. Розрахунки методом Лейбниця викликаються в рядку 27 завдяки використанню імені методу leibnic(). Аналогічно в рядку 28 викликаємо метод Валліса vallis().

У методі Лейбниця для обчислення числа Пі використовується ряд

Для обчислення даного ряду ми використовували цикл із умовним оператором, де перевіряється умова на парність i%2==0, якщо воно вірно, то дріб має позитивний знак pi+=1/(2* i-1), якщо ні, те ставимо знак мінус. Наприкінці, для одержання наближеного значення числа Пі, змінна pi множиться на 4 і виводиться на консоль.

Розрахунок по формулі Валліса

відбувається трохи по-іншому. У методі оголошуються дві змінні pi1 і pi2 типи double у рядку 18, перша зберігає добуток парних дробів, друга - непарних, потім їхній подвоєний добуток привласнюється змінній pi і виводиться на консоль.

Програма 2. Знаходження рішення рівняння

1.

2. public class Sol {

3. public static void work(){

4. long x=0;

5. for(int i=1;i<10;i++){

6. for (int j=0;j<10;j++){

7. for (int k=0;k<10;k++){

8. x=i*100+j*10+k;

9. if (x==(Math.pow(i,3)+Math.pow(j, 3) + Math.pow(k,3))){

10. System.out.println(i+"^3+"+j+"^3+"+k+"^3+"+" = "+x);

11. }

12. }

13. }

14. }

15. }

16. public static void main(String[] args) {

17. work();

18. }

19. }

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

У програмі є три цикли, вкладені друг у друга, кожний цикл виконується десять разів, у такий спосіб тіло циклу 07-09 виконується одну тисячу разів (10x10x10). Змінна x, складена з кубів лічильників циклів, де перший лічильник відіграє роль сотень числа, другий десятків, третій одиниць. Якщо отримане x дорівнює сумі кубів лічильників, то на консоль виводиться інформація про отримані цифри й число x. Знаходження кубів чисел здійснюється за допомогою методу pow() класу Math, як перший параметр виступає саме число, а другим параметром служить показник ступеня Math.pow(i,3). Можна використовувати більше знайомий і звичний запис i*i*i, j*j*j і k*k*k.

Завдання до роботи

1. Створіть додаток, що покаже, що для вираження an+bn=cn (теорема Ферма) немає натуральних рішень від 1 до 100 і n>2. Перевірте, що є рішення для n=2, і виведіть їх у консоль. Обчислити вираження, використовуючи оператор умови.

2. Обчислити вираження, використовуючи оператор умови.

3.4 Оператор множинного вибору

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

Програма 1. Переклад чисел з десяткової системи числення у двійкову й щістндцяткову.

1. public class Trans {

2. public static String fromdectobin(int x){

3. Stringres="";

4. short q = 0;

5. while(x>0){

6. q=(short)(x%2);

7. x/=2;

8. res=q+res;

9. }

10. return res;

11. }

12. public static String fromdectohex(float x){

13. String res="";

14. short q = 0;

15. int c = 2;

16. while(c>0){

17. q=(short)(16*(x/ 16-Math.floor(x/16)));

18. c=(int) Math.floor(x/16);

19. x=c;

20. if(q<10){

21. res=q+res;

22. }else{

23. switch(q){

24. case 10:

25. res="A"+res;

26. break;

27. case 11:

28. res="B"+res;

29. break;

30. case 12:

31. res="C"+res;

32. break;

33. case 13:

34. res="D"+res;

35. break;

36. case 14:

37. res="E"+res;

38. break;

39. case 15:

40. }

41. res="F"+res;

42. break;

43. }}

44. }

45. return res;

46. }

47. public static void main(String[] args) {

48. System.out.println(fromdectobin(90367));

49. System.out.println(fromdectohex(90367));

50. }

У даній програмі наведені два методи, один переводить десяткове число у двійкову систему числення, другий - у щістнадцяткову.

Для перекладу десяткового числа у двійкове подання використовується стандартний метод -- розподіл вихідного числа на 2 зі збереженням залишку, у нашому прикладі залишок додається до рядка resс лівої сторони (08). У даному методі використовується цикл із передумовою while(),що щораз одержує залишок від розподілу на 2, потім ділить вихідне число на 2 і заносить отриманий у першій дії залишок ліворуч у рядок. Наприкінці, після циклу, метод повертає отриманий рядок.

Спосіб перекладу з десяткового в щістнадцяткове подання використовує аналогічний прийом, роблячи послідовно ділення на 16, за одним виключенням -- залишок у нашій програмі обчислюється за допомогою функції floor(),що повертає цілу частину дробового числа. У результаті одержимо цілочисельний залишок від розподілу. Процес запису залишків у рядок більш складний, ніж у випадку двійкової системи числення, тому що в щістнадцятковий для подання числа недостатньо базового набору цифр від 0 до 9 і необхідно використовувати букви A-F. Для того щоб у рядок результату додавати букви, у програмі використовується оператор множинного выбору switch(),у якому виконується перевірка залишку. Залежно від величини залишку, у рядок результату додається необхідна буква (рядка 23-42).

Методи fromdectobin, fromdectohex повертають значення типу String,які можна безпосередньо використовувати як аргумент метода print() для виводу на консоль (рядка 48, 49). Як аргументи цих методів беруться числа, які потрібно перевести в задану систему числення.

Завдання до роботи: Для довільної цифри від 0 до 9 вивести на консоль її значення прописом. Наприклад, для цифри 9 на консолі повинна бути надрукована рядок «Дев'ять».

3.5 Використовування масивів в Java

Зміст роботи. Робота з масивами: пошук мінімального елемента й сортування масиву.

Програма1. Робота з масивами

1.

2. public class Arrays {

3. public static short min(){

4. short x=0;

5. short[] array = new short[10];

6. System.out.print("Вихідний масив: ");

7. for (int i=0;i<10;i++){

8. array[i]=(short)Math.round(50*Math.random());

9. System.out.print(array[i]+", ");

10. }

11. x=array[0];

12. for(int i=1;i<10;i++){

13. if(x>array[i]){

14. x=array[i];

15. }

16. }

17. return x;

18. }

19. public static void sort(){

20. short temp;

21. short[] array = new short[10];

22. System.out.print("\nисходный масив: ");

23. for (int i=0;i<10;i++){

24. array[i]=(short)Math.round(50*Math.random());

25. System.out.print(array[i]+", ");

26. }

27. System.out.print("\nмассив відсортований: ");

28. for(int i=0;i<9;i++){

29. for(int j=9;j>i; j-j--){

30. if(array[ j-1]>array[j]){

31. temp=array[j];

32. array[j]=array[ j-1];

33. array[ j-1]=temp;

34. }

35. }

36. System.out.print(array[i]+", ");

37. }

38. }

39. public static void main(String[] args) {

40. System.out.print("\nминимальныйэлемент: "+min());

41. sort();

42. }

43. }

У даній програмі використовуються два методи -min()і sort(). У кожному із представлених методів описується по одному масиву, виділяючи пам'ять на десять елементів для кожного масиву (04, 20). Потім відбувається заповнення масивів випадковими числами за допомогою метода Math.random()( 06-09, 22-25). Явним перетворенням(short) приводимо отримані значення типу double до значення типу short(7,23).

Після того, як масиви готові, можна робити над ними різні дії. Метод min()шукає мінімальний елемент в отриманому масиві ( 11-15).

Другий метод робить сортування отриманого масиву ( 27-34) методом пухирця. Потім виводить значення його елементів (35).

У методі main()викликаємо min()і sort(). Оскільки метод min()повертає значення строкового типу, його можна використовувати як аргумент конструкції System. out.print().

Завдання до роботи

· Дано масив із цілих чисел(n), де n=1,25.Необхідно поміняти місцями його максимальний і мінімальний елемент.

· Дано масив із цілих чисел(n),де n=1,25.Необхідно впорядкувати масив по зростанню.

· Дано масив із цілих чисел (n), де n=1,20.Необхідно знайти середнє значення й вивести його на консоль.

· Дано масив із цілих чисел(n),гдеn=1,30.Порахуйте суму парних і непарних елементів масиву.

· Напишіть програму, що виводить на консоль таблицю 3х5 випадкових елементів(a(i,j)<10).

· Змініть програму 1 так, щоб вона виводила на консоль ще й максимальний елемент (за допомогою опису нового методу, наприклад max()).

3.6 Найпростіші прийоми роботи з рядками

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

Програма 1. Робота з рядками

1.

2. publicclassStrings {

3. public static String compare(String s1, String s2){

4. String s3="";

5. if (s1.equals(s2)){

6. s3="Рядка \""+s1+"\" і \""+s2+"\" рівні";

7. } else {

8. s3="Рядка \""+s1+"\" і \""+s2+"\" не рівні";

9. }

10. return s3;

11. }

12. public static String add(String s1, String s2){

13. System.out.print("\nрезультат додавання рядків \""+s1+"\" і "+"\""+s2+"\": ");

14. s1+=" "+s2;

15. return s1;

16. }

17. public static void main(String[] args) {

18. System.out.println(compare("АБВГ","АБВ"));

19. System.out.print(compare("АБВ","АБВ"));

20. System.out.print(add("Hello","World"));

21. }

22. }

У додатку є два методи, які порівнюють і склеюють два рядки. Перший метод compare()робить порівняння двох рядків і виводить результат на консоль. Порівняння виконується за допомогою функції equals() у рядку (04). Якщо рядки збігаються, дана функція повертає значення true. Якщо рядки рівні (мають однаковий набір символів), виводиться відповідне повідомлення (05), інакше повідомлення (07).

У другому методі відбувається просте склеювання рядків за допомогою операції «+»(13).

Завдання до роботи

Дані 5 рядків s1, s2, s3, s4 і s5,на основі умови: якщо рядок s4дорівнює рядку s5,потрібно скласти рядки s1 і s2,інакше потрібно скласти рядки s1 та s3.

3.7 Створення в NetBeans найпростішого додатка Java із графічним інтерфейсом

Зміст роботи:Вивчення платформи NetBeans і структури програми для створення додатків із застосуванням мови програмування Java.

Зміст роботи :Створення Java додатка із графічним інтерфейсом.

Оскільки, консольний ввід-вивід уживається досить рідко, тепер спробуємо створити додаток із графічним інтерфейсом.Розгялнемо приклад створення найпростішого додатку «HelloWorld»

У нашому проекті HelloWorld відкриємо File /NewFile. У діалозі, що відкрився, у списку категорій виберіть Swing GUI Forms. Виберіть тип файлу JFrameForm. Натисніть Next>(мал. 3.6.).Після цього введемо назву створюваного класу й пакет, де він буде зберігатися. І натискаємо Finish.

IDE створює новий клас. І відкриває його у візуальному редакторі форми. Тепер для додавання елементів на наш JFrame, досить просто використати простий DragandDrop.

Додамо на форму кнопки JButton і текстове поле JtextField. Логікою роботи програми буде вивід вітання в текстовому полі при натисканні першої кнопки, і очищення поля виводу при натисканні іншої кнопки.

Рис. 3.4. Створення проекту із графічним інтерфейсом.

Рис. 3.5. Додавання елементів на форму.

Вище на мал.3.7. наведений дизайн форми. Всі елементи, що додають на форму, відображаються в панелі називаної Inspector. У ній легко одержати доступ до будь-якого елемента на формі. Навіть якщо він прямо не видний на формі (наприклад, такі елементи як ButtonGroup).

Для текстового поля заберемо текст jTextField1. Для цього на панелі властивостей поля знайдемо властивість текст і залишимо порожній рядок. Для кнопки 1 у поле властивості текст наберемо Greeting,а для кнопки 2 наберемо Clear.Ну й для всіх доданих нами елементів, поміняємо назви змінних на назви, які краще відбивають їхню функціональність. Це робиться виділенням елемента, і в його контекстному меню вибором пункту ChangeVariableName...(мал. 3.8)

Рис. 3.6. Перейменування змінної.

У діалозі, що з'явився, Rename уводимо нове ім'я змінної jbGreet.Точно так само ім'я змінної для другої кнопки буде jbClear,а для текстового поля tfGreetMessage.Після цих дій додамо два оброблювачів подій для кожної із кнопок, які будуть створюватися при натисканні. Це найпростіше зробити також з контекстного меню елементів (див. мал. 3.9.).

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

privatevoidjbGreetActionPerformed(java.awt.event.ActionEventevt) {

// TODO addyourhandlingcodehere:

}

Подкорректируем цю функцію:

privatevoidjbGreetActionPerformed(java.awt.event.ActionEventevt) {

// TODO addyourhandlingcodehere:

tfGreetMessage.setText("Hello");

}

У такий же спосіб створимо оброблювач події для натискання кнопки jbClear:

privatevoidjbClearActionPerformed(java.awt.event.ActionEventevt) {

// TODO addyourhandlingcodehere:

tfGreetMessage.setText("");

}

Завдання до роботи

1. Створити додаток Java, описаний вище.

2. На основі проекту з наявним кодом - додатка з графічним інтерфейсом, створити додаток з кнопкою «Вихід», яка буде закривати додаток, та кнопкою «Натисни мене», яка буде визивати діалогову панель з повідомленням «Мене натиснули».

3. Суматор. Створіть додаток, що являє собою форму 200х150. На формі розмістіть три текстові поля й одну кнопку з написом «Розрахунок». При натисканні на кнопку значення, уведені в перші два текстові поля, складаються й результат записується в третє поле.

3.8 Робота із графічним інтерфейсом користувача. Обробка подій

Зміст роботи :У даній роботі для створення програми графобудівника нам знадобиться чотири класи, які будуть перебувати в різних файлах. Спочатку перейменуйте пакет за замовчуванням в «MyGraph». Потім у даному пакеті створіть чотири нових класи:

· «Graphic» - головний клас, у якому буде метод main().

· «Sinus» - клас графіка синуса.

· «Cosinus» - клас графіка косинуса.

· «X2» - клас графіка параболи.

Пам'ятайте, якщо класи описані з кожним з модифікаторів видимості public, protected або private, то імена класів повинні збігатися з іменами файлів, у яких зберігаються дані класи.

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

Програма 1. Побудова графіків елементарних функцій.

Клас Graphic:

1. package MyGraph;

2. import java.awt.*;

3. importjava.awt.event.*;

4. importjavax.swing.*;

5. public class Graphic extends JFrame{

6. Graphic(String s){

7. super(s);

8. setLayout(null);

9. setSize(120,200);

10. setVisible(true);

11. this.setDefaultCloseOperation(EXIT_ON_CLOSE);

12. this.setResizable(false);

13. Button sin = new Button("Sin");

14. sin.setBounds(5, 20, 100, 25);

15. add(sin);

16. Button cos = new Button("Cos");

17. cos.setBounds(5, 70, 100, 25);

18. add(cos);

19. Button x2 = new Button("Парабола");

20. x2.setBounds(5, 120, 100, 25);

21. add(x2);

22. sin.addActionListener(new ActionListener(){

23. public void actionPerformed(ActionEvent event){

24. new Sinus("Синус");

25. }

26. });

27. cos.addActionListener(new ActionListener(){

28. public void actionPerformed(ActionEvent event){

29. new Cosinus("Косинус");

30. }

31. });

32. x2.addActionListener(new ActionListener(){

33. public void actionPerformed(ActionEvent event){

34. new X2("Парабола");

35. }

36. });

37. }

38. public static void main(String[] args) {

39. new Graphic("Графобудівник");

40. }

41. }

Клас Sinus:

1. package MyGraph;

2. import java.awt.Color;

3. import java.awt.Graphics;

4. import javax.swing.JFrame;

5. public class Sinus extends JFrame{

6. Sinus(String s){

7. super(s);

8. setLayout(null);

9. setSize(600,300);

10. setVisible(true);

11. this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

12. this.setResizable(false);

13. this.setLocation(100, 100);

14. }

15. public void paint(Graphics gr){

16. int y; int j=0; int k=0;

17. gr.setColor(Color.WHITE);

18. gr.fillRect(0, 0, 600, 300);

19. gr.setColor(Color.lightGray);

20. while(j<600){

21. gr.drawLine(j, 0, j, 300);

22. j+=30;

23. }

24. while(k<300){

25. gr.drawLine(0, k, 600, k);

26. k+=30;

27. }

28. gr.setColor(Color.BLACK);

29. gr.drawLine(300, 0, 300, 300);

30. gr.drawLine(0, 150, 600, 150);

31. gr.drawLine(120, 140, 120, 160);

32. gr.drawLine(480, 140, 480, 160);

33. gr.drawString("0", 305, 165);

34. gr.drawString("-"+"\u03c0", 125, 140);

35. gr.drawString("\u03c0", 485, 140);

36. gr.setColor(Color.RED);

37. for(double i=0;i<1000;i++){

38. y=(int)(80*Math.sin(Math.PI*i/180));

39. gr.drawLine((int) i-240, y+150, (int) i-240, y+150);

40. }

41. gr.dispose();

42. }

43. }

КлассCosinus:

1. package MyGraph;

2. import java.awt.Color;

3. import java.awt.Graphics;

4. import javax.swing.JFrame;

5. public class Cosinus extends JFrame{

6. Cosinus(String s){

7. super(s);

8. setLayout(null);

9. setSize(600,300);

10. setVisible(true);

11. this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

12. this.setResizable(false);

13. this.setLocation(200, 200);

14. }

15. public void paint(Graphics gr){

16. int y; int j=0; int k=0;

17. gr.setColor(Color.WHITE);

18. gr.fillRect(0, 0, 600, 300);

19. gr.setColor(Color.lightGray);

20. while(j<600){

21. gr.drawLine(j, 0, j, 300);

22. j+=30;

23. }

24. while(k<300){

25. gr.drawLine(0, k, 600, k);

26. k+=30;

27. }

28. gr.setColor(Color.BLACK);

29. gr.drawLine(300, 0, 300, 300);

30. gr.drawLine(0, 150, 600, 150);

31. gr.drawLine(120, 140, 120, 160);

32. gr.drawLine(480, 140, 480, 160);

33. gr.drawString("0", 305, 165);

34. gr.drawString("-"+"\u03c0", 125, 140);

35. gr.drawString("\u03c0", 485, 140);

36. gr.setColor(Color.RED);

37. for(double i=0;i<1000;i++){

38. y=(int)(80*Math.cos(Math.PI*i/180));

39. gr.drawLine((int) i-240, y+150, (int) i-240, y+150);

40. }

41. gr.dispose();

42. }

43. }

Клас X2:

1. package MyGraph;

2. import java.awt.Color;

3. import java.awt.Graphics;

4. import javax.swing.JFrame;

5. public class X2 extends JFrame{

6. X2(String s){

7. super(s);

8. setLayout(null);

9. setSize(600,300);

10. setVisible(true);

11. this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

12. this.setResizable(false);

13. this.setLocation(300, 300);

14. }

15. public void paint(Graphics gr){

16. int y; int j=0; int k=0;

17. gr.setColor(Color.WHITE);

18. gr.fillRect(0, 0, 600, 300);

19. gr.setColor(Color.lightGray);

20. while(j<600){

21. gr.drawLine(j, 0, j, 300);

22. j+=50;

23. }

24. while(k<300){

25. gr.drawLine(0, k, 600, k);

26. k+=50;

27. }

28. gr.setColor(Color.BLACK);

29. gr.drawLine(300, 0, 300, 300);

30. gr.drawLine(0, 150, 600, 150);

31. gr.drawString("0", 305, 165);

32. gr.setColor(Color.RED);

33. for(double i=0;i<1000;i++){

34. y=-(int)(i*i/300)+150;

35. gr.drawLine((int)i+300, y, (int)i+300, y);

36. gr.drawLine(-(int)i+300, y, -(int)i+300, y);

37. }

38. gr.dispose();

39. }

40. }

У класі Graphics описане вікно розміром 120х200, у якому розташовані три кнопки. Натискання кнопки обслуговується (обробляється) спеціальною процедурою, що називається процедурою обробки події ActionEvent. При натисканні кнопки відбувається створення нової форми, у якій буде побудований відповідний графік елементарної функції ( 22-26, 27-31, 32-36).

Класи оброблювачів подій описані усередині параметра методу додавання слухача addActionListener() (22, 27, 32). Цікаво, що параметром цього методу є новий об'єкт інтерфейсу ActionListener з одним методом actionPerformed(), що і відповідає за поводження програми, у випадку якщо буде викликана дана подія (натискання на кнопки).

У класах, які роблять побудову графіків, у рядках 20-27 з використанням двох циклів відбувається побудова координатної сітки ясно-сірим кольором, потім чорним кольором будуються осі абсцис і ординат.

Найбільший інтерес представляють рядки 37-40 (для синуса й косинуса) і 33-37 (для параболи) у яких відбувається малювання графіків. Синус і косинус рисуються за аналогією: спочатку обчислюється значення y і методом drawString() рисується «лінія» довжиною в один піксель. Координата y обчислюється шляхом явного перетворення типу double у тип int, отриманого в результаті виконання вираження 80*Math.cos(Math.PI*i/180). Парабола будується аналогічним способом, у два етапи. На першому етапі будується позитивна частина параболи й далі негативна.

Програма 2. Напису на кнопках.

1.

2. importjava.awt.*;

3. importjava.awt.event.*;

4. importjavax.swing.*;

5. public class ExtEventHandler extends JFrame {

6. ExtEventHandler(String s){

7. super(s);

8. setLayout(null);

9. setSize(100,200);

10. setVisible(true);

11. setResizable(false);

12. setDefaultCloseOperation(EXIT_ON_CLOSE);

13. Button b1 = new Button("Перваякнопка");

14. b1.setBounds(2, 5, 96, 22);

15. add(b1);

16. Button b2 = new Button("Втораякнопка");

17. b2.setBounds(2, 100, 96, 22);

18. add(b2);

19. b1.addActionListener(new Handler(b1, b2));

20. b2.addActionListener(new Handler(b1, b2));

21. }

22. public static void main(String[] args) {

23. new ExtEventHandler("");

24. }

25. }

26. class Handler implements ActionListener{

27. private Button ba;

28. private Button bb;

29. String temp;

30. Handler(Button b1, Button b2){

31. this.ba=b1;

32. this.bb=b2;

33. }

34. public void actionPerformed(ActionEvent e) {

35. temp = ba.getLabel();

36. ba.setLabel(bb.getLabel());

37. bb.setLabel(temp);

38. }

39. }

У класі ExtEventHandler ( 04-24) приводиться основний опис інтерфейсу користувача: форма розміром 100x200 і дві кнопки з написами: перша кнопка ( 12-14) і друга кнопка ( 15-17). У додатку для обробки подій, які виникають при натисканні на кнопки, описаний окремий клас Handler ( 25-38), що використовує інтерфейс ActionListener.

Оскільки в описі ActionListener не можна прямо використовувати компоненти, описані в конструкторі класу ExtEventHandler, то потрібно створити посилання на об'єкти, які будуть використані. Створення посилальних об'єктів виконується в рядках 26, 27, а самі посилання створюються в конструкторі (30, 31). Коли посилання готові, у процесі додавання слухачів (18, 19), у параметрах указуємо імена реальних компонентів. Таким чином, при натисканні на кожну із двох кнопок міняються місцями їхні написи ( 34-36).

Завдання до роботи

Розробити додаток по вибору викладача із списку наступних:

а)калькулятор (польський, для арабських або римських чисел);

б)конвертор (валют, фізичних або геометричних величин);

в)операції з датами;

г)інші подібні задачі.

ЗАКЛЮЧНА ЧАСТИНА

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

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

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

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

програмування java додаток мова платформа

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. http://ru.wikipedia.org/wiki/NetBeans_IDE

2. Монахов Вадим Мова програмування Java і середовище NetBeans. - СПб.: «БХВ-Петербург», 2008. - С. 640.

3. ru.sun.com/java/j2ee/book/platform_Java.pdf - Платформа Java ™. Офіційне видання. Дуглас Крамер (Douglas Kramer)

4. Джамса Кріс. JAVA. Бібліотека програміста / / Попурі. - Мінськ, 1996.

5. Мейнджер Джейсон. JAVA: Основи програмування / Пер. з англ. С. Бойко під ред. Я. Шмідского.-- К.: BNV, 1997.

6. http://www.citforum.ru/internet/javascript/crjp/

7. http://www.simplecoding.org/sredstva-razrabotki-na-java-neobxodimye-i-prosto-poleznye-programmy.html

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

9. Х.м. Дейтел, П.Дж. Дейтел, С.І. Сантрі - Технології програмування на Java

ДОДАТОК А

Лістинг:

package hello;

public class Main {

public static void main(String[] args) {

System.out.print(" 1\n 1 2 3\n 1 2 3 4 5\n1 2 3 4 5 6 7");

}

}

Результат виконання програми(рис А.1):

рис А.1

ДОДАТОК Б

Лістинг:

package faktorial;

public class Main {

public static void main(String[] args) {

//******************FAKTORIAL

long x=4,z,y=1;

z=x=Math.round(Math.random()*10);

while(x>0)

{y*=x; x--; }

System.out.print("Faktorial chisla "+z+" = "+y);

//*********************Stepenb

z=x=Math.round(Math.random()*10); y=2; x--;

while(x>0)

{y*=2; x--;}

System.out.print("\n\n2 v stepeni "+z+" = "+y);

//**********************Katet

long a,b=3,c=5;

a=Math.round(Math.sqrt(c*c-b*b));

System.out.print("\n\ndlinna kateta = "+a); }}

Результат виконання програми(рис Б.1):

Рис Б.1

ДОДАТОК В

Лістинг:

package lab3;

public class Main {

public static void main(String[] args) {

double x=2; double y=1;

while(x<1000)

{if (x%2!=0)

{y+=1/x; x++;}//x++;

else

{y-=1/x;x++;}

}

float z=1/17;

System.out.print(y);

} }

Результат виконання програми(рис В.1):

Рис В.1

ДОДАТОК Г

Лістинг:

package lab4;

public class Main {

public static void main(String[] args) {

long x=Math.round(Math.random()*10);

int y=(int)x;

System.out.print(y+"--");

switch(y){

case 0:

System.out.print("Ноль");

break;

case 1:

System.out.print("Один");

break;

case 2:

System.out.print("Два");

break;

case 3:

System.out.print("Три");

break;

case 4:

System.out.print("Четыре");

break;

case 5:

System.out.print("Пять");

break;

case 6:

System.out.print("Шесть");

break;

case 7:

System.out.print("Семь");

break;

case 8:

System.out.print("Восемь");

break;

case 9:

System.out.print("Девять");

break; } }}

Результат виконання програми(рис Г.1):

Рис Г.1

ДОДАТОК Д

Лістинг:

package javaapplication2;

public class Main {

public static void main(String[] args) {

int max, min, maxi=0, mini=0;

int A[]=new int[25];

System.out.print("МАССИВ СЛУЧАЙНЫХ ЧИСЕЛ:\n");

for(int i=0; i<=24;i++)

{ A[i]= (int)Math.round(Math.random()*25);

System.out.print(A[i]+" "); }

max=min=A[0];

for(int i=0;i<=24;i++)

{ if(max<A[i])

{max=A[i]; maxi=i;};

if(min>A[i])

{min=A[i]; mini=i;}; }

A[maxi]=min; A[mini]=max;

System.out.print("\n"+"MAX="+max+"\nMIN="+min+"\n");

for(int i=0; i<=24;i++)

{ System.out.print(A[i]+" "); } }}

Результат виконання програми(рис Д.1):

Рис Д.1

ДОДАТОК Е

Лістинг:

package javaapplication4;

public class Main {

public static String func(String s1,String s2,String s3,String s4,String s5)

{ if(s4.equals(s5)) {s1+=' '+s2;}

else s1+=' '+s3;

return s1;}

public static void main(String[] args) {

System.out.print("\nResult:\n");

System.out.println(func("a","s","d","4","4"));

System.out.println(func("a","s","d","4","5"));

System.out.println(func("1","2","3","4","6")); }}

Результат виконання програми(рис Е.1):

Рис Е.1

ДОДАТОК Ж

Лістинг:

package summ;

public class summ extends javax.swing.JFrame {

public summ() {

initComponents(); }

@SuppressWarnings("unchecked")

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

int a = Integer.parseInt(X.getText())+Integer.parseInt(Y.getText());

Z.setText(Integer.toString(a));}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new summ().setVisible(true);

} }); }

private javax.swing.JTextField X;

private javax.swing.JTextField Y;

private javax.swing.JTextField Z;

private javax.swing.JButton jButton1; }

Результат виконання програми(рис Ж.1):

Рис Ж.1

ДОДАТОК З

Лістинг:

package itoroman;

class integerToRoman {

String integerToRoman(int n) {

String[] a = new

String[]{"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};

int[] b = new int[]{1,4,5,9,10,40,50,90,100,400,500,900,1000};

String s = "";

for (int i = a.length - 1; i >= 0; i--) {

while (n >= b[i]) {

s += a[i];

n -= b[i];

} } return s; }}

public class ItoRoman extends javax.swing.JFrame {

public ItoRoman() { initComponents(); }

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

int Z = Integer.parseInt(X.getText())+ Integer.parseInt(Y.getText());

integerToRoman I = new integerToRoman();

Result.setText(I.integerToRoman(Z));}

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

int Z = Integer.parseInt(X.getText())- Integer.parseInt(Y.getText());

integerToRoman I = new integerToRoman();

Result.setText(I.integerToRoman(Z));}

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

int Z = Integer.parseInt(X.getText())* Integer.parseInt(Y.getText());

integerToRoman I = new integerToRoman();

Result.setText(I.integerToRoman(Z));}

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

int Z = Integer.parseInt(X.getText())/ Integer.parseInt(Y.getText());

integerToRoman I = new integerToRoman();

if (Integer.parseInt(X.getText())% Integer.parseInt(Y.getText())>0)

Result.setText("Wrong numbers");

else

Result.setText(I.integerToRoman(Z));}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new ItoRoman().setVisible(true); } }); }

Результат виконання програми(рис З.1):

Рис З.1

Размещено на Allbest.ru


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

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

    дипломная работа [2,8 M], добавлен 22.06.2011

  • Історія розвитку мови Java, основні технології та їх застосування для роботи з SQL-серверами. Огляд багатопоточного програмування в Java. Принципи функціонування сервлетів та JSP-сторінок. Зміна розміру графічних об’єктів, робота з кольорами в Java.

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

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

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

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

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

    отчет по практике [2,6 M], добавлен 18.05.2014

  • Створення баз даних за допомогою стандартних бібліотек Java та клієнт-серверних програм. Основні стандартні класи і методи бібліотек SQL та swing, бібліотек, що дозволяють опрацьовувати дані СУБД та навчитись концепціям програмування мовою Java.

    лабораторная работа [215,3 K], добавлен 04.10.2011

  • Принцип работы Java. Аплеты как особенность Java-технологии, характеристика методов их защиты. Модель безопасности JDK1.2 и концепция "песочницы". Иерархия криптографических сервисов, алгоритмов. Объектная организация криптографической подсистемы Java.

    реферат [54,8 K], добавлен 09.09.2015

  • Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.

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

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

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