Разработка программного обеспечения встроенных компьютерных систем

Оформление консольного приложения с использованием диалоговых окон и приложения на базе библиотеки Swing. Реализация чтения и записи результата в файл. Создание массива и реализация интерфейсов Comparator и Comparable. Листинги исходных текстов программ.

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

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

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

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

Министерство образования и науки Украины

Национальный технический университет Украины

"Киевский политехнический институт "

Кафедра АЭИ

Курсовая работа

по дисциплине "Микропроцессорные системы"

"Разработка программного обеспечения встроенных компьютерных систем"

Киев 2010

Содержание

1. Задания

1.1 Исходное задание

1.2 Индивидуальные задания

2. Листинги исходных текстов программ

3. Результаты роботы программ

4. UML диаграммы классов

5. HTML - документация

консольный приложение интерфейс программа

1. Задания

1.1 Исходное задание

1. Каждое задание оформить в виде:

1.1 Консольного приложения. Допускается использование диалоговых окон.

1.2 Оконного приложения на базе библиотеки Swing.

2. Реализовать чтение/запись результата в файл.

3. В каждом классе должны быть реализованы методы класса Object:

toString()

equals()

clone()

4. В каждом приложении должны быть продемонстрированы:

4.1 отношения:

Use-a

Has-a

Is-a

4.2 инкапсуляция, наследование, полиморфизм.

5. В каждом приложении должен быть создан массив и реализованы интерфейсы Comparator и Comparable.

С их помощью продемонстрировать методы класса Array (max, min, сортировка, бинарный поиск)

6. Для каждого swing приложения построена uml диаграмма классо

7. Для каждого приложения продемонстрировать самозапускаемый jar-file.

8. Для каждого задания разработать html документацию.

1.2 Индивидуальные задания

1. Ввести с консоли n целых чисел и поместить их в массив. Найти среди них указанные числа и вывести на консоль - наибольший общий делитель и наименьшее общее кратное этих чисел.

2. Выведите на экран "закрашенный" треугольник из звездочек ('*').

3. Создать класс "Компьютер" с полями "процессор" (String), "частота процессора" (double), "наличие WiFi" (bool). Наследовать его классом "Ноутбук" с дополнительными полями "диагональ" и "фирма-производитель".

4. Создать класс Department (отдел фирмы) с внутренним классом, с помощью объектов которого можно хранить информацию обо всех должностях отдела и обо всех сотрудниках когда-либо занимавших конкретную должность.

5. В задании требуется ввести последовательность строк из текстового потока и выполнить указанные действия - найти и вывести слова, для которых последняя буква одного слова совпадает с первой буквой следующего слова.

2. Листинги исходных текстов программ

Задание 1.

Общий класс:

import java.io.*;

import java.util.*;

import javax.swing.*;

public class FoundNodNOk

{

private int a;

private int b;

private int rezOfNod;

private int rezOfNok;

public int getA ()

{

return a;

}

public int getB ()

{

return b;

}

public int getRezOfNod()

{

return rezOfNod;

}

public int getRezOfNok()

{

return rezOfNok;

}

public void nod (int a, int b)

{

this.a = a; this.b = b;

while ( a != b)

{

if (a > b) a -= b;

else b -= a;

}

rezOfNod = a;

}

public void nok (int a, int b)

{

this.a = a; this.b = b;

rezOfNok = a*b/getRezOfNod();

}

public String toString ()

{

return getClass().getName() + ":\nrezOfNod = " + rezOfNod + ", rezOfNok = " + rezOfNok ;

}

public boolean equals( Object obj )

{

if(obj instanceof FoundNodNOk )

{

return( this.a == ((FoundNodNOk) obj).a &&

this.b == ((FoundNodNOk) obj).b &&

this.rezOfNod == ((FoundNodNOk) obj).rezOfNod &&

this.rezOfNok == ((FoundNodNOk) obj).rezOfNok );

}

else

return false;

}

public Object clone ()

{

try

{

FoundNodNOk cloned = (FoundNodNOk)super.clone();

return cloned;

}

catch(CloneNotSupportedException e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

return null;

}

}

}

class Comparable implements Comparator

{

public int compare( Object ob1, Object ob2)

{

return ( (String)ob2 ).compareTo( (String)ob1 );

}

}

Программа, использующая диалоговые окна:

import java.io.*;

import java.util.*;

import javax.swing.*;

public class Programm1_1

{

public static void main(String[] args)

{

String numStr = JOptionPane.showInputDialog( "Number of couples:" );

int numb = Integer.parseInt( numStr );

try

{

FoundNodNOk[] ob = new FoundNodNOk[ numb ];

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

{

String numStr1 = JOptionPane.showInputDialog( "Enter first number:" );

int numb1 = Integer.parseInt( numStr1 );

String numStr2 = JOptionPane.showInputDialog( "Enter second number:" );

int numb2 = Integer.parseInt( numStr2 );

ob[i] = new FoundNodNOk();

ob[i].nod(numb1, numb2);

ob[i].nok(numb1, numb2);

JOptionPane.showMessageDialog( null, "For [" + numb1 + "; " + numb2 + "]\n" +

"GCD = " + ob[i].getRezOfNod() + "\nLCM = " + ob[i].getRezOfNok() );

}

String question = JOptionPane.showInputDialog

( "Do yo want to save data in new file \n" +

"Y - save in new file\nN - don't save" );

if ( question.equalsIgnoreCase("Y") )

{

String saveFile = JOptionPane.showInputDialog ( "Input name of new file:" );

String result = "";

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

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

result += "[" + ob[i].getRezOfNod() + ", " + ob[i].getRezOfNok() + "] ";

out.println ( result );

out.close ( );

JOptionPane.showMessageDialog( null, "File successfully saved!" );

}

}catch( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e,

"Error", JOptionPane.WARNING_MESSAGE);

}

}

}

Графическое оконное приложение:

import java.awt.*;

import java.util.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

class MyFrame extends JFrame

{

private JTextField tfA;

private JTextField tfB;

private JTextArea taGCD;

private JTextArea taLCM;

public MyFrame()

{

Panels numbersPanel = new Panels();

Container panels = getContentPane();

panels.add(numbersPanel);

Buttons buttonsPanel = new Buttons();

panels.add(buttonsPanel, BorderLayout.SOUTH);

JMenu fileMenu = new JMenu("File");

JMenuItem exitItem = fileMenu.add

( new AbstractAction( "Exit" )

{

public void actionPerformed ( ActionEvent event )

{

System.exit(0);

}

}

);

JMenu helpMenu = new JMenu("Help");

JMenuItem helpItem = helpMenu.add

( new AbstractAction("Help")

{

public void actionPerformed ( ActionEvent event )

{

JOptionPane.showMessageDialog( null,

"Enter two numbers and prass OK to find their Greatest Common Divisor GCD and Least Common Multiple LCM.\n" +

"Press Save to save data in file.\n" +

"Prass EXIT to exit programm.",

"About",JOptionPane.QUESTION_MESSAGE);

}

}

);

helpMenu.addSeparator();

JMenuItem aboutItem = helpMenu.add

( new AbstractAction("About")

{

public void actionPerformed (ActionEvent event)

{

JOptionPane.showMessageDialog(null,

"Programm created by Kovalenko V.O.:\n" +

"VA-61, FAKS","About",JOptionPane.INFORMATION_MESSAGE);

}

}

);

JMenuBar menuBar = new JMenuBar();

setJMenuBar( menuBar );

menuBar.add( fileMenu );

menuBar.add( helpMenu );

pack();

}

class Panels extends JPanel

{

public Panels()

{

setLayout(new GridLayout(4, 2, 2, 2));

JLabel labelA= new JLabel ("First number:");

JLabel labelB = new JLabel ("Second number:");

JLabel labelGCD= new JLabel ("GCD:");

JLabel labelLCM= new JLabel ("LCM:");

tfA = new JTextField ("");

tfB = new JTextField ("");

taGCD = new JTextArea ();

taGCD.setEditable(false);

taLCM = new JTextArea ();

taLCM.setEditable(false);

add(labelA);

add(tfA);

add(labelB);

add(tfB);

add(labelGCD);

add(taGCD);

add(labelLCM);

add(taLCM);

}

}

class Buttons extends JPanel

{

public Buttons()

{

JButton buttonFind = new JButton("OK");

JButton buttonSave = new JButton("Save");

setLayout(new FlowLayout());

add(buttonFind);

add(buttonSave);

buttonFind.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

try{

String str1 = tfA.getText();

int numb1 = Integer.parseInt(str1);

String str2 = tfB.getText();

int numb2 = Integer.parseInt(str2);

FoundNodNOk ob = new FoundNodNOk();

ob.nod(numb1, numb2);

ob.nok(numb1, numb2);

taGCD.setText ( ob.getRezOfNod() + "" );

taLCM.setText ( ob.getRezOfNok() + "" );

}catch (Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e,

"Error", JOptionPane.WARNING_MESSAGE);

}

}

});

buttonSave.addActionListener

(

new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

try

{

String saveFile = JOptionPane.showInputDialog( "Enter file name:" );

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

String result = taGCD.getText() + ", " + taLCM.getText();

out.println ( result );

out.close ( );

JOptionPane.showMessageDialog( null, "file successfully saved!" );

}catch( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

}

}

}

);

}

}

}

public class Programm1_2

{

public static void main(String[] args)

{

MyFrame frame = new MyFrame();

frame.setTitle("Program1-2");

frame.setResizable(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize( 300, 200 );

frame.setVisible(true);

}

}

Задание 2.

Общий класс:

import java.io.*;

import java.util.*;

import javax.swing.*;

public class BuildTriangle implements Cloneable

{

private int side;

private String strRez;

public String buildTriangle ( int side )

{

this.side = side;

this.strRez = strRez;

strRez = "";

String strBuf = new String();

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

{

strBuf += "*";

strRez += strBuf + "\n";

}

return strRez;

}

public String toString ()

{

return getClass().getName() + ":\nside = " + side + ",\nstrRez = " + strRez ;

}

public boolean equals( Object obj )

{

if(obj instanceof BuildTriangle )

{

return( this.side == ((BuildTriangle) obj).side &&

this.strRez == ((BuildTriangle) obj).strRez );

}

else

return false;

}

public Object clone ()

{

try

{

BuildTriangle cloned = (BuildTriangle)super.clone();

return cloned;

}

catch(CloneNotSupportedException e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

return null;

}

}

}

class Comparable implements Comparator

{

public int compare( Object ob1, Object ob2)

{

return ( (String)ob2 ).compareTo( (String)ob1 );

}

}

Программа, использующая диалоговые окна:

import java.io.*;

import javax.swing.*;

public class Programm2_1{

public static void main( String [] args )

{

int numb;

String numStr;

try

{

numStr = JOptionPane.showInputDialog( "Enter number of triangle: " );

numb = Integer.parseInt( numStr );

String masStr[] = new String[numb];

int mas[] = new int [numb];

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

{

masStr[i] = JOptionPane.showInputDialog( "Enter size of side: " );

mas[i] = Integer.parseInt( masStr[i] );

}

BuildTriangle fig[] = new BuildTriangle [ numb ];

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

{

fig[i] = new BuildTriangle ();

JOptionPane.showMessageDialog( null, "Your " + (i+1) + "th Triangle:\n" + fig[i].buildTriangle ( mas[i] ));

}

String question = JOptionPane.showInputDialog

( "Do yo want to save data in new file \n" +

"Y - save in new file\nN - don't save" );

if ( question.equalsIgnoreCase("Y") )

{

String saveFile = JOptionPane.showInputDialog ( "Input name of new file:" );

String result = "";

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

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

{

result += fig[i].buildTriangle ( mas[i] );

out.println ( result );

out.println ( '\n' );

}

out.close ( );

JOptionPane.showMessageDialog( null, "File successfully saved!" );

}

}

catch ( Exception e )

{

JOptionPane.showMessageDialog( null, "Error: " + e,

"Error", JOptionPane.WARNING_MESSAGE);

}

}

}

Графическое оконное приложение:

import java.awt.*;

import java.util.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

class Programm2_2Test extends JFrame

{

private JTextField tf;

private JTextArea ta;

private int numb;

private String rez = "";

public Programm2_2Test ( String title )

{

super ( title );

JMenu fileMenu = new JMenu("File");

JMenuItem exitItem = fileMenu.add

( new AbstractAction( "Exit" )

{

public void actionPerformed ( ActionEvent event )

{

System.exit(0);

}

}

);

JMenu helpMenu = new JMenu("Help");

JMenuItem helpItem = helpMenu.add

( new AbstractAction("Help")

{

public void actionPerformed ( ActionEvent event )

{

JOptionPane.showMessageDialog( null,

"Enter number of *, using for build triangle and prass OK to see figure.\n" +

"Prass EXIT to exit programm.",

"About",JOptionPane.QUESTION_MESSAGE);

}

}

);

helpMenu.addSeparator();

JMenuItem aboutItem = helpMenu.add

( new AbstractAction("About")

{

public void actionPerformed (ActionEvent event)

{

JOptionPane.showMessageDialog(null,

"Programm created by Kovalenko V.O.:\n" + "VA-61, FAKS","About",JOptionPane.INFORMATION_MESSAGE);

}

}

);

JMenuBar menuBar = new JMenuBar();

setJMenuBar( menuBar );

menuBar.add( fileMenu );

menuBar.add( helpMenu );

pack();

Container c = getContentPane ();

c.setLayout( new BorderLayout());

JPanel p1 = new JPanel();

JLabel label = new JLabel ("Input size of side: ");

tf = new JTextField ("", 5);

p1.add ( label );

p1.add ( tf );

c.add ( p1, BorderLayout.NORTH );

ta = new JTextArea( 10, 10 );

ta.setEditable( false );

JPanel pa = new JPanel();

pa.add ( ta );

c.add ( pa );

JButton b = new JButton ( "OK" );

JButton bSave = new JButton ( "Save" );

JPanel pb = new JPanel();

pb.add( b );

pb.add( bSave );

c.add(pb, BorderLayout.SOUTH );

b.addActionListener( new ActionListener()

{

public void actionPerformed ( ActionEvent ae )

{

try

{

String str = tf.getText();

numb = Integer.parseInt(str);

BuildTriangle fig = new BuildTriangle ();

rez = fig.buildTriangle ( numb );

ta.setText ( rez );

}catch (Exception e)

{

JOptionPane.showMessageDialog( null, "Input error: "+e );

}

}

});

bSave.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

try

{

String saveFile = JOptionPane.showInputDialog ( "Input name of new file:" );

String result = "";

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

result += rez;

out.println ( result );

out.close ( );

JOptionPane.showMessageDialog( null, "File successfully saved!" );

}catch (Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e,

"Error", JOptionPane.WARNING_MESSAGE);

}

}

});

}

public static void main ( String[] args )

{

JFrame frame = new Programm2_2Test( "Programm 2-2" );

frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

frame.setSize( 300, 300 );

frame.setResizable( true );

frame.setVisible( true );

}

}

Задание 3.

Общие классы:

import javax.swing.*;

public class Computer implements Cloneable

{

private String processorName;

private double processorFreqency;

private boolean isWiFi;

public Computer () { }

public Computer ( String name, double frequency, boolean wiFi )

{

processorName = name;

processorFreqency = frequency;

isWiFi = wiFi;

}

public String getProcessorName()

{

return processorName;

}

public double getProcessorFrequency()

{

return processorFreqency;

}

public boolean getWiFi()

{

return isWiFi;

}

public void setProcessorName( String name )

{

processorName = name;

}

public void setProcessorFrequency( double frequency )

{

processorFreqency = frequency;

}

public void setWiFi( boolean wiFi )

{

isWiFi = wiFi;

}

public String toString ()

{

return getClass().getName() + ":\nprocessor - " + processorName + ", " + processorFreqency +

"GHz;\nis WiFi - " + isWiFi;

}

public boolean equals( Object obj )

{

if(obj instanceof Computer)

{

return(this.processorName == ((Computer) obj).processorName &&

this.processorFreqency == ((Computer) obj).processorFreqency);

}

else

return false;

}

public Object clone ()

{

try

{

Computer cloned = (Computer)super.clone();

return cloned;

}

catch(CloneNotSupportedException e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

return null;

}

}

}

import javax.swing.*;

public class Notebook extends Computer

{

private int diagonal;

private String developer;

public Notebook () { }

public Notebook( String name, double frequency, boolean wiFi,

int diag, String develop )

{

super( name, frequency, wiFi );

diagonal = diag;

developer = develop;

}

public int getDiagonal()

{

return diagonal;

}

public void setDiagonal( int diag )

{

diagonal = diag;

}

public String getDeveloper()

{

return developer;

}

public void setDeveloper( String develop )

{

developer = develop;

}

public String toString ()

{

return getClass().getName() + ":\nprocessor - " + getProcessorName() + ", " + getProcessorFrequency() +

"GHz;\nis WiFi - " + getWiFi() + ";\nDiagonal - " + diagonal + ";\nDeveloper - " + developer;

}

public boolean equals( Object obj )

{

if(obj instanceof Notebook)

{

return( this.diagonal == ((Notebook) obj).diagonal &&

this.developer == ((Notebook) obj).developer );

}

else

return false;

}

}

import java.util.*;

class Comparable implements Comparator

{

public int compare( Object ob1, Object ob2)

{

return ( (String)ob2 ).compareTo( (String)ob1 );

}

}

Программа, использующая диалоговые окна:

import javax.swing.*;

import java.io.*;

public class Programm3_1

{

public static void main(String [] args)

{

Computer c1 = new Computer();

Notebook c2 = new Notebook();

try

{

String inName = JOptionPane.showInputDialog( "Input the name of processor:" );

String inFrequancy = JOptionPane.showInputDialog( "Input the frequancy of processor:" );

double frequancy = Double.parseDouble( inFrequancy );

String inWiFi = JOptionPane.showInputDialog( "Is it has WiFi? \n'Y' or 'N':" );

boolean isWiFi;

if ( inWiFi.equalsIgnoreCase("Y") )

isWiFi = true;

else

isWiFi = false;

String inDiagonal = JOptionPane.showInputDialog( "Input the diagonal for notebook:" );

int diagonal = Integer.parseInt( inDiagonal );

String inDeveloper = JOptionPane.showInputDialog( "Input the name of developer:" );

c1.setProcessorName( inName );

c1.setProcessorFrequency( frequancy );

c1.setWiFi( isWiFi );

c2.setProcessorName( inName );

c2.setProcessorFrequency( frequancy );

c2.setWiFi( isWiFi );

c2.setDiagonal( diagonal );

c2.setDeveloper( inDeveloper );

JOptionPane.showMessageDialog( null, c1.toString() );

JOptionPane.showMessageDialog( null, c2.toString() );

String question = JOptionPane.showInputDialog

( "Do yo want to save data in new file \n" +

"Y - save in new file\nN - don't save" );

if ( question.equalsIgnoreCase("Y") )

{

String saveFile = JOptionPane.showInputDialog ( "Input name of new file:" );

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

String result = c1.toString() +"\n"+ c2.toString();

out.println ( result );

out.close ( );

}

}catch ( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

}

}

}

Графическое оконное приложение:

import java.io.*;

import java.util.* ;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class MyFrame extends JFrame

{

private JTextField tfProc;

private JTextField tfFrequancy;

private JTextField tfWiFi;

private JTextField tfDiag;

private JTextField tfDevelop;

private JTextArea taNotebook;

public MyFrame()

{

Panels numbersPanel = new Panels();

Container panels = getContentPane();

panels.add(numbersPanel);

Buttons buttonsPanel = new Buttons();

panels.add(buttonsPanel, BorderLayout.SOUTH);

JMenu fileMenu = new JMenu("File");

JMenuItem exitItem = fileMenu.add

( new AbstractAction( "Exit" )

{

public void actionPerformed ( ActionEvent event )

{

System.exit(0);

}

}

);

JMenu helpMenu = new JMenu("Help");

JMenuItem helpItem = helpMenu.add

( new AbstractAction("Help")

{

public void actionPerformed ( ActionEvent event )

{

JOptionPane.showMessageDialog( null,

"Enter characteristic and take new notebook after pressing Enter.\n" +

"Press Save to save data in file.\n" +

"Prass EXIT to exit programm.",

"About",JOptionPane.QUESTION_MESSAGE);

}

}

);

helpMenu.addSeparator();

JMenuItem aboutItem = helpMenu.add

( new AbstractAction("About")

{

public void actionPerformed (ActionEvent event)

{

JOptionPane.showMessageDialog(null,

"Programm created by Kovalenko V.O.:\n" +

"VA-61, FAKS","About",JOptionPane.INFORMATION_MESSAGE);

}

}

);

JMenuBar menuBar = new JMenuBar();

setJMenuBar( menuBar );

menuBar.add( fileMenu );

menuBar.add( helpMenu );

pack();

}

class Panels extends JPanel

{

public Panels()

{

setLayout(new GridLayout(6, 2));

JLabel labelProc = new JLabel ("Processor:");

JLabel labelFrequancy = new JLabel ("Frequancy:");

JLabel labelWiFi = new JLabel ("Is WiFi:");

JLabel labelDiag = new JLabel ("Diagonal:");

JLabel labelDevelop = new JLabel ("Developer:");

JLabel labelNotebook = new JLabel ("Notebook:");

tfProc = new JTextField ("", 50);

tfFrequancy = new JTextField ("", 50);

tfWiFi = new JTextField ("", 50);

tfDiag = new JTextField ("", 50);

tfDevelop = new JTextField ("", 50);

taNotebook = new JTextArea ();

taNotebook.setEditable(false);

add(labelProc);

add(tfProc);

add(labelFrequancy);

add(tfFrequancy);

add(labelWiFi);

add(tfWiFi);

add(labelDiag);

add(tfDiag);

add(labelDevelop);

add(tfDevelop);

add(labelNotebook);

add(taNotebook);

}

}

class Buttons extends JPanel

{

private String result = "";

public Buttons()

{

JButton buttonFind = new JButton("OK");

JButton buttonSave = new JButton("Save");

setLayout(new FlowLayout());

add(buttonFind);

add(buttonSave);

buttonFind.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

Computer c1 = new Computer();

Notebook c2 = new Notebook();

try

{

c1.setProcessorName( tfProc.getText() );

c1.setProcessorFrequency( Double.parseDouble ( tfFrequancy.getText() ) );

String inWiFi = tfWiFi.getText();

boolean isWiFi;

if ( inWiFi.equalsIgnoreCase("Y") )

isWiFi = true;

else

isWiFi = false;

c1.setWiFi( isWiFi );

c2.setProcessorName( tfProc.getText() );

c2.setProcessorFrequency( Double.parseDouble ( tfFrequancy.getText() ) );

c2.setWiFi( isWiFi );

c2.setDiagonal( Integer.parseInt( tfDiag.getText() ) );

c2.setDeveloper( tfDevelop.getText() );

result = c2.toString();

taNotebook.setText( result );

}catch (Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

}

}

});

buttonSave.addActionListener

(

new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

try

{

Notebook c2 = new Notebook();

String saveFile = JOptionPane.showInputDialog( "Enter file name:" );

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

out.println ( result );

out.close ( );

}catch( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

}

}

}

);

}

}

}

public class Programm3_2

{

public static void main(String[] args)

{

MyFrame frame = new MyFrame();

frame.setTitle("Program3-2");

frame.setResizable(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize( 400, 500 );

frame.setVisible(true);

}

}

Задание 4.

Общие классы:

import javax.swing.*;

class Department

{

private Workers [] jobInfo;

private int i;

class Workers

{

private String workers;

Workers() {};

Workers(String info)

{

this.workers = info;

}

public String getWorkers()

{

return workers;

}

public void setWorkers()

{

}

}

public void setInfo(String[] textInfo)

{

jobInfo = new Workers[textInfo.length];

for (i = 0; i < textInfo.length; i++)

jobInfo[i] = new Workers(textInfo[i]);

}

public String outInfo(String[] textInfo)

{

String output = "";

for (i = 0; i < textInfo.length; i++)

output += " -" + jobInfo[i].getWorkers() + "\n";

return output;

}

public String toString ()

{

return getClass().getName() + ":\n[ Workers: " + jobInfo + ", i = " + i + " ]" ;

}

public boolean equals( Object obj )

{

if(obj instanceof Department )

{

return(this.jobInfo == ((Department) obj).jobInfo &&

this.i == ((Department) obj).i);

}

else

return false;

}

public Object clone ()

{

try

{

Department cloned = (Department)super.clone();

return cloned;

}

catch(CloneNotSupportedException e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

return null;

}

}

}

import java.util.*;

public class Comparable implements Comparator

{

public int compare( Object ob1, Object ob2)

{

return ( (String)ob2 ).compareTo( (String)ob1 );

}

}

Программа, использующая диалоговые окна:

import java.io.*;

import java.util.*;

import javax.swing.*;

public class Programm4_1

{

public static void main(String[] args)

{

Department place = new Department();

try

{

String job = JOptionPane.showInputDialog( "Input profession: ");

String numbStr = JOptionPane.showInputDialog( "Input number of workers " + job + ": ");

int numb = Integer.parseInt( numbStr );

String dayInfo[] = new String[numb];

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

{

String str = JOptionPane.showInputDialog( "Input " +(i+1)+ "th worker: ");

dayInfo[i] = str;

}

place.setInfo(dayInfo);

String result = place.outInfo(dayInfo);

JOptionPane.showMessageDialog( null, "Profession - " + job + ":\n" + result );

String question = JOptionPane.showInputDialog

( "Do yo want to sort you lust?\n" +

"Y - sort\nN - don't sort" );

if ( question.equalsIgnoreCase("Y") )

{

Comparable compare = new Comparable();

question = JOptionPane.showInputDialog

( "Do yo want sort in natural or reverse order?\n" +

"N - natural\nR - reverse" );

if ( question.equalsIgnoreCase("N") )

{

Arrays.sort( dayInfo);

JOptionPane.showMessageDialog( null, dayInfo);

}

if ( question.equalsIgnoreCase("R") )

{

Arrays.sort( dayInfo, compare);

JOptionPane.showMessageDialog( null, dayInfo);

}

else

JOptionPane.showMessageDialog( null, "Invalid command" , "Error", JOptionPane.WARNING_MESSAGE);

}

question = JOptionPane.showInputDialog

( "Do yo want to save data in new file \n" +

"Y - save in new file\nN - don't save" );

if ( question.equalsIgnoreCase("Y") )

{

String saveFile = JOptionPane.showInputDialog ( "Input name of new file:" );

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

out.println ( result );

out.close ();

JOptionPane.showMessageDialog( null, "file successfully saved!" );

}

}catch ( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e, "Error", JOptionPane.WARNING_MESSAGE);

}

}

}

Графическое оконное приложение:

import java.io.*;

import java.util.* ;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class MyFrame extends JFrame

{

private JTextField tfProfession;

private JTextField tfWorkers;

private JTextArea taList;

public MyFrame()

{

Panels numbersPanel = new Panels();

Container panels = getContentPane();

panels.add(numbersPanel);

Buttons buttonsPanel = new Buttons();

panels.add(buttonsPanel, BorderLayout.SOUTH);

JMenu fileMenu = new JMenu("File");

JMenuItem exitItem = fileMenu.add

( new AbstractAction( "Exit" )

{

public void actionPerformed ( ActionEvent event )

{

System.exit(0);

}

}

);

JMenu helpMenu = new JMenu("Help");

JMenuItem helpItem = helpMenu.add

( new AbstractAction("Help")

{

public void actionPerformed ( ActionEvent event )

{

JOptionPane.showMessageDialog( null,

"Enter profession and name of first worker.\n" +

"Press 'Next' to add this name for list.\n" +

"Press OK to form and print list of workers.\n" +

"Press Save to save data in file.\n" +

"Prass EXIT to exit programm.",

"About",JOptionPane.QUESTION_MESSAGE);

}

}

);

helpMenu.addSeparator();

JMenuItem aboutItem = helpMenu.add

( new AbstractAction("About")

{

public void actionPerformed (ActionEvent event)

{

JOptionPane.showMessageDialog(null,

"Programm created by Kovalenko V.O.:\n" +

"VA-61, FAKS","About",JOptionPane.INFORMATION_MESSAGE);

}

}

);

JMenuBar menuBar = new JMenuBar();

setJMenuBar( menuBar );

menuBar.add( fileMenu );

menuBar.add( helpMenu );

pack();

}

class Panels extends JPanel

{

public Panels()

{

setLayout(new GridLayout(3, 2));

JLabel labelProfession= new JLabel ("Profession:");

JLabel labelWorkers = new JLabel ("Worker:");

JLabel labelList = new JLabel ("List of workers:");

tfProfession = new JTextField ("");

tfWorkers = new JTextField ("");

taList = new JTextArea ();

taList.setEditable(false);

add(labelProfession);

add(tfProfession);

add(labelWorkers);

add(tfWorkers);

add(labelList);

add(taList);

}

}

class Buttons extends JPanel

{

private String prof = "";

private String result = "";

private String dayInfo[];

private String info = "";

public Buttons()

{

JButton buttonNext = new JButton("Next");

JButton buttonFind = new JButton("OK");

JButton buttonSave = new JButton("Save");

setLayout(new FlowLayout());

add(buttonNext);

add(buttonFind);

add(buttonSave);

buttonNext.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

prof = tfProfession.getText();

info += tfWorkers.getText();

info += " ";

JOptionPane.showMessageDialog( null, "'" + tfWorkers.getText() + "' succesfully added!");

tfWorkers.setText("");

tfProfession.setEditable(false);

}

});

buttonFind.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

Department place = new Department();

dayInfo = info.split("\\s");

place.setInfo(dayInfo);

result = place.outInfo(dayInfo);

taList.setText( prof + ":\n" + result);

}

});

buttonSave.addActionListener

(

new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

try

{

String saveFile = JOptionPane.showInputDialog( "Enter file name:" );

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

out.println ( result );

out.close ( );

}catch( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e,

"Error", JOptionPane.WARNING_MESSAGE);

}

}

}

);

}

}

}

public class Programm4_2

{

public static void main(String[] args)

{

MyFrame frame = new MyFrame();

frame.setTitle("Program4-2");

frame.setResizable(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize( 400, 500 );

frame.setVisible(true);}

}

Задание 5.

Общий класс:

import java.io.*;

import java.util.* ;

import javax.swing.*;

public class Programm5 implements Cloneable

{

private String string;

private String rez;

public String getRez ()

{

return rez;

}

public String getString()

{

return string;

}

public String foundWords ( String string )

{

this.string = string;

this.rez = rez;

char a;

char b;

rez = "";

String[] strSplit = string.split ("\\s");

for ( int i = 0; i < strSplit.length; i++ )

{

a = strSplit[i].charAt( strSplit[i].length()-1 );

if ( i != strSplit.length - 1 )

{

b = strSplit[i+1].charAt( 0 );

if ( a == b)

{

rez += strSplit[i] + " " + strSplit[i+1] + " ";

}

else rez += "";

}

}

return rez;

}

public String toString ()

{

return getClass().getName() + "[string = " + string + ", rez = " + rez + "]";

}

public boolean equals ( Object obj )

{

if ( obj instanceof Programm5_1 )

{

return (this.string == ((Programm5) obj).string &&

this.rez == ((Programm5) obj).rez );

}

else

return false;

}

public Object clone ()

{

try

{

Programm5 cloned = (Programm5) super.clone();

return cloned;

}

catch(CloneNotSupportedException e)

{

JOptionPane.showMessageDialog( null, "Error: " + e );

return null;

}

}

}

class Comparable implements Comparator

{

public int compare( Object ob1, Object ob2)

{

return ( (String)ob2 ).compareTo( (String)ob1 );

}

}

Программа, использующая диалоговые окна:

import java.io.*;

import java.util.* ;

import javax.swing.*;

public class Programm5_1Test

{

public static void main ( String[] args )

{

Programm5 test = new Programm5 ();

try

{

String saveFile = new String ();

String filename = new String ();

String str = new String ();

String result= new String ();

filename = JOptionPane.showInputDialog ("Enter file name:");

BufferedReader in = new BufferedReader ( new FileReader (filename) );

String line;

while ( ( line = in.readLine() ) != null )

str += line + "\n";

in.close();

JOptionPane.showMessageDialog( null, "Read from file:\n" + str );

result = test.foundWords( str );

JOptionPane.showMessageDialog( null, "Trimed string:\n " + result );

String question = JOptionPane.showInputDialog

( "Do yo want to save data in new file or rewrite old?\n" +

"Y - save in new file\nN - rewite" );

if ( question.equalsIgnoreCase("Y") )

{

saveFile = JOptionPane.showInputDialog ( "Input name of new file:" );

}

else saveFile = filename;

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

out.println ( result );

out.close ();

JOptionPane.showMessageDialog( null, test.toString() );

System.exit ( 0 );

}catch ( Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e );

}

}

}

Графическое оконное приложение:

import java.io.*;

import java.util.* ;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class MyFrame extends JFrame

{

private JTextField tfOpen;

private JTextField tfSave;

private JTextArea taOpened;

private JTextArea taTrimed;

public MyFrame()

{

Panels numbersPanel = new Panels();

Container panels = getContentPane();

panels.add(numbersPanel);

Buttons buttonsPanel = new Buttons();

panels.add(buttonsPanel, BorderLayout.SOUTH);

JMenu fileMenu = new JMenu("File");

JMenuItem exitItem = fileMenu.add

( new AbstractAction( "Exit" )

{

public void actionPerformed ( ActionEvent event )

{

System.exit(0);

}

}

);

JMenu helpMenu = new JMenu("Help");

JMenuItem helpItem = helpMenu.add

( new AbstractAction("Help")

{

public void actionPerformed ( ActionEvent event )

{

JOptionPane.showMessageDialog( null,

"Enter name of file to open and for save. In opened file will be choosed words,\n" +

"where the last char of previous equal the first char in next word.\n" +

"Prass EXIT to exit programm.",

"About",JOptionPane.QUESTION_MESSAGE);

}

}

);

helpMenu.addSeparator();

JMenuItem aboutItem = helpMenu.add

( new AbstractAction("About")

{

public void actionPerformed (ActionEvent event)

{

JOptionPane.showMessageDialog(null,

"Programm created by Kovalenko V.O.:\n" +

"VA-61, FAKS","About",JOptionPane.INFORMATION_MESSAGE);

}

}

);

JMenuBar menuBar = new JMenuBar();

setJMenuBar( menuBar );

menuBar.add( fileMenu );

menuBar.add( helpMenu );

pack();

}

class Panels extends JPanel

{

public Panels()

{

setLayout(new GridLayout(4, 2, 2, 2));

JLabel labelOpen = new JLabel ("Enter file for opened:");

JLabel labelSave = new JLabel ("Enter file for save:");

JLabel labelOpened = new JLabel ("Opened:");

JLabel labelTrimed = new JLabel ("Trimed:");

tfOpen = new JTextField ();

tfSave = new JTextField ();

taOpened = new JTextArea ();

taTrimed = new JTextArea ();

taOpened.setEditable(false);

taTrimed.setEditable(false);

add(labelOpen);

add(tfOpen);

add(labelSave);

add(tfSave);

add(labelOpened);

add(taOpened);

add(labelTrimed);

add(taTrimed);

}

}

class Buttons extends JPanel

{

public Buttons()

{

JButton buttonFind = new JButton("OK");

setLayout(new FlowLayout());

add(buttonFind);

buttonFind.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

Programm5 test = new Programm5 ();

try

{

String saveFile = new String ();

String fileName = new String ();

String str = new String ();

fileName = tfOpen.getText();

BufferedReader in = new BufferedReader ( new FileReader (fileName) );

String line;

while ( ( line = in.readLine() ) != null )

str += line + "\n";

in.close();

taOpened.setText ( str );

String result = test.foundWords( str );

taTrimed.setText (result);

saveFile = tfSave.getText();

PrintWriter out = new PrintWriter (

new BufferedWriter ( new FileWriter (saveFile)) );

out.println ( result );

out.close ();

}catch (Exception e)

{

JOptionPane.showMessageDialog( null, "Error: " + e );

}

}

});

}

}

}

public class Programm5_2Test

{

public static void main(String[] args)

{

MyFrame frame = new MyFrame();

frame.setTitle("Program5-2");

frame.setResizable(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize( 300, 300 );

frame.setVisible(true);

}

}

3. Результаты роботы программ

Задание 1

Программа 1.1 (с использованием диалоговых окон):

Программа 1.2 (графическое оконное приложение):

Задание 2

Программа 2.1 (с использованием диалоговых окон):

Программа 2.2 (графическое оконное приложение):

Задание 3

Программа 3.1 (с использованием диалоговых окон):

Программа 3.2 (графическое оконное приложение):

Задание 4

Программа 4.1 (с использованием диалоговых окон):

Программа 4.2 (графическое оконное приложение):

Задание 5

Программа 5.1 (с использованием диалоговых окон):

Программа 5.2 (графическое оконное приложение):

4. UML диаграммы классов

Для примера реализована для Программы 1.1 по Заданию 1.

5. HTML - документация

Для примера сделана для общего рабочего класса по Заданию 1.

Class FoundNodNOk

java.lang.Object

FoundNodNOk

All Implemented Interfaces:

java.lang.Cloneable

public class FoundNodNOk

extends java.lang.Object

implements java.lang.Cloneable

Main class for founding Great Common Devisior and Least Common Multiply

Version:

1.0

Author:

Kovalenko V.O.

Constructor Detail

FoundNodNOk

public FoundNodNOk()

This method is a default constructor

FoundNodNOk

public FoundNodNOk(int a,

int b)

This method is a constructor with parameters

Parameters:

a - first number

b - second number

Method Detail

getA

public int getA()

Get param a

Returns:

a first number

getB

public int getB()

Get param b

Returns:

b second number

getRezOfNod

public int getRezOfNod()

Get result of found GCD

Returns:

rezOfNod

getRezOfNok

public int getRezOfNok()

Get result of found LCM

Returns:

rezOfNok

nod

public void nod(int a,

int b)

Found GCD of two numbers

Parameters:

a - first number

b - second number

nok

public void nok(int a,

int b)

Found LCM of two numbers

Parameters:

a - first number

b - second number

toString

public java.lang.String toString()

Overriding method for getting information about class and fields

Overrides:

toString in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)

Overriding method for equaling objects of class FoundNodNok

Overrides:

equals in class java.lang.Object

Returns:

true - if two objects are equivalent

clone

public java.lang.Object clone()

Overriding method for make copy of object

Overrides:

clone in class java.lang.Object

Returns:

clone of object

Throws:

java.lang.CloneNotSupportedException

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


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

  • Анализ графических пользовательских интерфейсов современных систем оптимизации программ. Создание математической модели и алгоритма системы управления СБкЗ_ПП, ее архитектурно-контекстная диаграмма. Техническая документация программного средства.

    дипломная работа [1,1 M], добавлен 18.04.2012

  • Создание приложения, создающего текстовый файл text1.txt и записывающего в него текст. Разработка приложения, открывающего текстовый файл для чтения и считывающего из него текст в окно Memo. Создание приложения, открывающего текстовый файл дополнения.

    лабораторная работа [15,8 K], добавлен 15.07.2009

  • Описание пакета прикладной программы Net Beans 8.1. Разработка пользовательского интерфейса апплета. Создание рамочных окон на базе фреймов библиотеки java.swing. Изменение цвета текстовых данных. Проектирование и создание инфологической модели апплета.

    контрольная работа [1,8 M], добавлен 11.07.2016

  • Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.

    дипломная работа [1,4 M], добавлен 03.06.2014

  • Общее определение JavaScript-библиотеки, виды библиотек. Создание клиентского приложения с использованием одного из существующий JS-фреймворков. Значение, виды и выбор фреймворка. Выбор приложения и его тематики. Написание программного кода, итоги работы.

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

  • Разработка и реализация демонстрационного многопоточного приложения. Выбор основных средств реализации. Описание логики работы приложения и разработка программного обеспечения. Описание пользовательского интерфейса. Реализация потоков в Delphi.

    курсовая работа [462,5 K], добавлен 10.08.2014

  • Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.

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

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Разработка приложения на WinAPI с реализацией логической структуры в игре "Сапер". Реализация графической части приложения. Проверка на корректность поведения интерфейса программы, работы логической части игры, корректности записи и чтения файла.

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

  • Особенности графической среды разработки и Visual C++. Разработка проекта с использованием функций библиотеки MFC для удаления комментариев из текстов программ, автоматического выбора языка, на котором написана утилита и сохранения результата в файл.

    курсовая работа [22,7 K], добавлен 07.11.2010

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