Professional Documents
Culture Documents
Raport: Lucrarea de Laborator nr.4
Raport: Lucrarea de Laborator nr.4
Raport
Lucrarea de laborator nr.4
Disciplina: Tehnici avansate de programare
Chișinău - 2020
1. Tema lucrării:
Polimorfizmul
2. Scopul lucrării:
3. Etapele de realizare:
Sarcina:
Realizarea polimorfismului pentru clasele date cu crearea metodelor conform specificului claselor.
Fraction ComplexFracion.
Codul programului:
Clasa Lab4.java:
public class Lab4
{
Clasa UI.java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
JCheckBox roundedCheckbox;
UI() {
createWindow();
}
createTopPanel();
createSecondPanel();
createComplexFractionPanel();
frame.setVisible(true);
}
label.setText("Rounded: ");
roundedCheckbox.addActionListener(this);
roundedCheckbox.setSelected(false);
panel.add(label);
panel.add(roundedCheckbox);
frame.add(panel, BorderLayout.NORTH);
}
complexNumarator1TF.addActionListener(this);
complexNumarator2TF.addActionListener(this);
complexNumitor1TF.addActionListener(this);
complexNumitor2TF.addActionListener(this);
panel.add(new JLabel("("));
panel.add(complexNumitor1TF);
panel.add(new JLabel(" / "));
panel.add(complexNumarator1TF);
panel.add(new JLabel(") / ("));
panel.add(complexNumitor2TF);
panel.add(new JLabel(" / "));
panel.add(complexNumarator2TF);
panel.add(new JLabel(") = "));
panel.add(complexResultLabel);
frame.add(panel, BorderLayout.CENTER);
}
numitorTF.addActionListener(this);
numaratorTF.addActionListener(this);
panel.add(numitorTF);
panel.add(new JLabel(" / "));
panel.add(numaratorTF);
panel.add(new JLabel(" = "));
panel.add(resultLabel);
frame.add(panel, BorderLayout.AFTER_LAST_LINE);
}
@Override
public void actionPerformed(ActionEvent arg0)
{
calculateResults();
}
//
// Calculation
//
try {
float result = complex.getResult(roundedCheckbox.isSelected());
complexResultLabel.setText(String.valueOf(result));
}
catch(Exception e)
{
complexResultLabel.setText(e.getLocalizedMessage());
}
}
private void calculateFractionResults()
{
float numitor = Float.parseFloat(numitorTF.getText());
float numarator = Float.parseFloat(numaratorTF.getText());
fraction.setNumarator(numarator);
fraction.setNumitor(numitor);
try {
float result = fraction.getResult(roundedCheckbox.isSelected());
resultLabel.setText(String.valueOf(result));
}
catch(Exception e)
{
resultLabel.setText(e.getLocalizedMessage());
}
}
}
Clasa Fraction.java:
Fraction(){}
Fraction(float a, float b) {
this.numitor = a;
this.numarator = b;
}
Clasa ComplexFraction.java:
ComplexFraction(){}
ComplexFraction(Fraction numitor, Fraction numarator) {
this.numitor = numitor;
this.numarator = numarator;
}
Rezultatele obtinute:
In urma rularii programului obtinem asa o fereastra:
Concluzie:
În cadrul acestei lucrări de laborator am studiat cum lucreaza polimorfizmul in limbajul de programare
Java si am realizat un exemplu real. Deasemenea am creat un User Interface pentru a introduce si afisa datele.
Pentru aceasta am folosit bibliotecile standate din Java.
Bibliografie:
1. https://docs.oracle.com/javase/tutorial/
2. Cursul de TAP