// declaratie campuri
/**
* TODO// de modificat dimensiunea la 5; De facut un program care testeaza
* funtiile push pop si peek atat cazurile corecte cat si cele exceptionale.
* In caz de exceptie se vor prinde exceptiile si se vor afisa la consola.
*/
private T[] elemente = (T[])new Object[100];
private int start = 0;// pozitia ultimului element adaugat
private int end = 0;
// declaratie metode
public boolean isEmpty()
{
if (start == 0 && end == 0)
{
return true;// todo
}
else
{
return false;
}
}
public boolean isFull()
{
return (end == 99);
}
/**
* introduce elementul a in stiva. returneaza true daca introducerea a
* reusit sau false daca stiva este plina
*/
public boolean offer(T a)
{
if (isFull())
{
return false;
}
else
if(isEmpty())
{
elemente[start] = a;
elemente[end]= elemente[start];
end++;
return true;
}
else
{
elemente[end]=a;
end++;
return true;
}
}
public void add(T a) throws CoadaFullException, CoadaInvalidArgumentException
{
if (isFull())
{
throw new CoadaFullException("Stiva plina");
}
else
{
if (a == null)
{
throw new CoadaInvalidArgumentException();
}
if(isEmpty())
{
elemente[start] = a;
elemente[end]= elemente[start];
end++;
}
else
{
elemente[end]=a;
end++;
}
}
}
/**
* se extrage un element din stiva si se retruneaza. Daca stiva este goala
* va returna valoarea null
*/
public T poll()
{
if (isEmpty())
{
return null;
}
else
{
T b;
b = elemente[start];
for(int i=start;i
end--;
return b;
}
}
public T pop() throws CoadaEmptyException
{
if (isEmpty())
{
throw new CoadaEmptyException();
}
else
{
T b;
b = elemente[start];
for(int i=start;i
end--;
return b;
}
}
/**
* se obtine valoarea din varful stivei fara ca aceasta sa fie stearsa din
* stiva sau se returneaza null daca stiva ii goala.
*/
public T element()
{
if (isEmpty())
{
return null;
}
else
{
return elemente[start];
}
}
/**
* se obtine valoarea din varful stivei fara ca aceasta sa fie stearsa din
* stiva. In mod similar se genereaza StackEmptyException sau se returneaza
* null
*/
public T peek() throws CoadaEmptyException {
if (isEmpty())
{
throw new CoadaEmptyException();
}
else
{
return elemente[start];
}
}
public String toString() {
String s = "{";
for (int i = start; i < end; i++) {
s += elemente[i] + ",";
}
/*if (!isEmpty()) {
s += elemente[start];
}*/
s += "}";
return s;
}
}
......exceptii....
package packq;
public class CoadaEmptyException extends CoadaException{
public CoadaEmptyException() {
super();
// TODO Auto-generated constructor stub
}
public CoadaEmptyException(String arg0, Throwable arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public CoadaEmptyException(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public CoadaEmptyException(Throwable arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
}
............
package packq;
public class CoadaException extends Exception {
public CoadaException() {
super();
// TODO Auto-generated constructor stub
}
public CoadaException(String arg0, Throwable arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public CoadaException(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public CoadaException(Throwable arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
}
.................
package packq;
public class CoadaFullException extends CoadaException{
public CoadaFullException() {
super();
// TODO Auto-generated constructor stub
}
public CoadaFullException(String arg0, Throwable arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public CoadaFullException(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public CoadaFullException(Throwable arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
}
............
package packq;
public class CoadaInvalidArgumentException extends CoadaException{
public CoadaInvalidArgumentException() {
super();
// TODO Auto-generated constructor stub
}
public CoadaInvalidArgumentException(String arg0, Throwable arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}
public CoadaInvalidArgumentException(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public CoadaInvalidArgumentException(Throwable arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
}
.............
package packq;
public interface Coada
{
boolean isEmpty();
boolean isFull();
boolean offer(T a);
void add(T a) throws CoadaFullException, CoadaInvalidArgumentException;
T poll();
T pop() throws CoadaEmptyException;
T element();
T peek() throws CoadaEmptyException;
}
.............
package packq;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPanel;
public class GUIMain
{
Coada
JTextField textField;
JLabel labelContinut;
JLabel labelExtrase;
JLabel labelVarf;
public void init()
{
JFrame fereastra = new JFrame("Coada");
fereastra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container conteintPain = fereastra.getContentPane();
conteintPain.setLayout(new GridLayout(8,1));
JLabel label1 = new JLabel("Introduceti numarul: ");
conteintPain.add(label1);
textField = new JTextField();
conteintPain.add(textField);
JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
conteintPain.add(panel);
JButton adauga = new JButton("Adauga");
panel.add(adauga);
adauga.addActionListener(new AdaugaAction());
JButton extrage = new JButton("Extrage");
panel.add(extrage);
extrage.addActionListener(new ExtrageAction());
JButton varf = new JButton("Varf");
panel.add(varf);
varf.addActionListener(new VarfAction());
JButton golire = new JButton("Golire");
panel.add(golire);
golire.addActionListener(new GolireAction());
JLabel label2 = new JLabel("Continutul Stivei: ");
conteintPain.add(label2);
labelContinut = new JLabel();
labelContinut.setText(queue.toString());
conteintPain.add(labelContinut);
labelExtrase = new JLabel();
labelExtrase.setText("Nu s-a extras inca");
conteintPain.add(labelExtrase);
labelVarf = new JLabel();
labelVarf.setText("Varf");
conteintPain.add(labelVarf);
fereastra.pack();
fereastra.setVisible(true);
}
public static void main(String[] args)
{
GUIMain gui = new GUIMain();
gui.init();
}
private class AdaugaAction implements ActionListener
{
public void actionPerformed(ActionEvent arg0)
{
System.out.println("Buton Adauga");
String a = textField.getText();
//Integer b = Integer.parseInt(a);
try {
queue.add(a);
} catch (CoadaFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CoadaInvalidArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // sau offer
labelContinut.setText(queue.toString());
}
}
private class ExtrageAction implements ActionListener
{
public void actionPerformed(ActionEvent arg0)
{
System.out.println("Buton Extrage ");
try {
// sau poll
labelExtrase.setText("" + queue.pop());
} catch (CoadaEmptyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
labelContinut.setText(queue.toString());
}
}
private class VarfAction implements ActionListener
{
public void actionPerformed(ActionEvent arg0)// throws StackEmptyException
{
System.out.println("Buton varf");
// sau peek
labelVarf.setText("Varful este: "+queue.element());
}
}
private class GolireAction implements ActionListener
{
public void actionPerformed(ActionEvent arg0)// throws StackEmptyException
{
System.out.println("Buton varf");
while(queue.isEmpty() == false)
{
try {
queue.pop();
} catch (CoadaEmptyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
labelContinut.setText(queue.toString());
}
}
}
Niciun comentariu:
Trimiteți un comentariu