Разработка программного обеспечения встроенных компьютерных систем
Оформление консольного приложения с использованием диалоговых окон и приложения на базе библиотеки 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