Darbe yra aptarti du OOP šablonų taikymai: Compocite ir prototipe. Abiejų šių šablonų schema: programos aprašymas, naudojimo tikslas, UML klasių diagrama, programos veikimas, šablono realizacija, naudojant JAVA programavimo kalbą ir išvados. Prie šių šablonų pridėtas ir programų kodai.
principas, kuriame nieko negalima keisti, tik pasižiūrėti, tai tartum tik įmonės veiklos ataskaita.
LT, kurie buvo sugeneruoti.
1. pav. „Employee tree“ programa
1.2 Composite šablono naudojimo tikslas
Šiame darbe panaudotas vienas objektiškai orientuoto projektavimo šablonas –
komponuotojas (composite). Jo principas yra komponuoti objektus į medžio pavidalo struktūras
(hierarchiją).
1.3 UML klasių diagrama
1. pav. „Emplyee tree“ klasių diagrama
1.4 Programos veikimas
Paleidus programą, pasirodo langas, kuriame matomas baltas stačiakampis, vaizduojantis
darbuotojų hierarchiją.
„Employee tree“ vartotojui padeda suprasti darbovietės veikimo principą – kokiame
padalinyje koks darbuotojas dirba.
Programa objektus kuria, naudodama Composite šabloną, kuris padeda lengviau komponuoti
(išdėstyti) darbuotojų pareigas ir padalinius.
Random principu sugeneruojamos darbuotojų algos, kurias galima pamatyti paspaudus ant
kiekvieno padalinio atskirai.
1.5 Šablono realizacija, naudojant Java programavimo kalbą
Sukurtos 3 klasės: Employee, EmpTree, main
Main.java
public class Main {
static public void main(String argv[]) {
new EmpTree();
}
}
EmpTree.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.border.BevelBorder;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
public class EmpTree extends JFrame implements TreeSelectionListener {
Employee boss, marketVP, prodVP;
Employee salesMgr, advMgr;
Employee prodMgr, shipMgr;
//// „Viewport“ aprūpina duomenų šaltiniu, pavyzdžiui, tekstiniu failu. Šis duomenų šaltinis yra "scrollable
client", rodomas pagal JViewport. JScrollPane susideda iš JScrollBars, JViewport ir the wiring tarp jų, kaip ir
parodyta paveikslėlyje.
JScrollPane sp;
// JPanel sugeneruoja lightweight container.
JPanel treePanel;
// Sukuriama duomenų hierarchija
JTree tree;
A DefaultMutableTreeNode sugeneruoja mazgą medyje duomenų struktūrai
DefaultMutableTreeNode troot;
// Parodomas trumpas tekstas, paveikslėlis arba abu kartu. Label neleidžia įvesti events. Negalima naudoti
klaviatūros. Label gali naudoti, bet nebus atvaizduota.
JLabel cost;
public EmpTree() {
super("Employee tree");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
makeEmployees();
setGUI();
}
//--------------------------------------
private void setGUI() {
treePanel = new JPanel();
getContentPane().add(treePanel);
treePanel.setLayout(new BorderLayout());
sp = new JScrollPane();
treePanel.add("Center", sp);
treePanel.add("South", cost = new JLabel(" "));
treePanel.setBorder(new BevelBorder(BevelBorder.RAISED));
troot = new DefaultMutableTreeNode(boss.getName());
tree = new JTree(troot);
tree.setBackground(Color.lightGray);
loadTree(boss);
//Įvedamas Tree į apačią
sp.getViewport().add(tree);
setSize(new Dimension(200, 300));
setVisible(true);
}
//------------------------------------
public void loadTree(Employee topDog) {
DefaultMutableTreeNode troot;
troot = new DefaultMutableTreeNode(topDog.getName());
treePanel.remove(tree);
tree = new JTree(troot);
tree.addTreeSelectionListener(this);
sp.getViewport().add(tree);
addNodes(troot, topDog);
tree.expandRow(0);
repaint();
}
//--------------------------------------
private void addNodes(DefaultMutableTreeNode pnode, Employee emp) {
DefaultMutableTreeNode node;
Enumeration e = emp.elements();
while (e.hasMoreElements()) {
Employee newEmp = (Employee) e.nextElement();
node = new DefaultMutableTreeNode(newEmp.getName());
pnode.add(node);
addNodes(node, newEmp);
}
}
//--------------------------------------
private void makeEmployees() {
boss = new Employee("CEO", 200000);
boss.add(marketVP = new Employee("Marketing VP", 100000)); //Pridedama Marketing VP
į CEO su salary...
Šį darbą sudaro 1489 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!