Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Ultime prove d'esame OOP con Pergen


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 9 risposta/e

#1
qwerty1991

qwerty1991

    Advanced Member

  • Utente
  • StellaStellaStella
  • 612 Messaggi:
Salve ragazzi,non riesco a trovare le ultime tracce d'esame di OOP,
ovvero quando il titolare del corso è il prof Percannella,quindi
sarei grato se qualcuno mi posti le tracce che non trovo,per esercitarmi,
o quantomeno dirmi se l'impostazione è uguale a quella di Vento(Pezzi di codici ed interfaccia grafica già forniti,ecc...).
Grazie.


Vaffanc**o Facebook,ha distrutto r0x...

 

Disco sucks


#2
qwerty1991

qwerty1991

    Advanced Member

  • Utente
  • StellaStellaStella
  • 612 Messaggi:
Niente??

Vaffanc**o Facebook,ha distrutto r0x...

 

Disco sucks


#3
cowgirl_from_hell

cowgirl_from_hell

    Advanced Member

  • Utente
  • StellaStellaStella
  • 217 Messaggi:

Queste sono le tracce dei 4 contest svolti durante il corso.. credo che l'ultimo sia quello che si avvicina di più alla prova d'esame :)
[attachment=1]contest 2011.rar[/attachment]
Allego anche la traccia di un'esercitazione propedeutica a quest'ultimo contest, sarà sicuramente utile XD
[attachment=0]TracciaEsame10_01_2011.doc[/attachment]

File allegato



#4
Kristal Siderglace

Kristal Siderglace

    Advanced Member

  • Utente
  • StellaStellaStella
  • 246 Messaggi:
Ho partecipato allo scritto di luglio e di settembre quindi posso dirti che l'impostazione è differente dalle prove del prof. Vento, il codice della GUI devi scriverlo tu interamente. In più le prove di Vento in un certo senso hanno sempre lo stesso meccanismo mentre al prof. Percannella piace variare. In più le tracce del primo le ricordo minuziose al massimo, il secondo, invece, dà delle linee guida base, alla progettazione effettiva devi pensarci tu [ad esempio quando ho fatto l'orale, anche con un voto abbastanza alto allo scritto, mi è stata criticata una scelta di progettazione fatta durante la prova scritta...anzi, a mio parere mi è stata (s)valutata due volte dal momento che a parte questa critica ho risposto puntualmente a tutte le domande, non solo mie, anche del collega che era con me (si, a settembre l'orale lo abbiamo sostenuto solo in due) con compiaciuta approvazione da parte del prof. e nonostante questo il mio voto dello scritto è sceso di 2pt].

Che io sappia 4 prove su 5 [quindi da gennaio 2011 a ora] sono state sul modello Produttore-Consumatore [ogni volta con qualche variazione], solo a gennaio dell'anno scorso la prova era più simile a quelle del professore Vento con l'aggiunta però dell' input/output da file.

Spero di esserti stata utile ^_^

#5
hilary

hilary

    Member

  • Utente
  • StellaStella
  • 25 Messaggi:
Questa è la traccia della prova di febbraio dell anno scorso

#6
qwerty1991

qwerty1991

    Advanced Member

  • Utente
  • StellaStellaStella
  • 612 Messaggi:
Grazie a tutte e tre!
Come immaginavo l'impostazione era diversa ma mai avrei pensato che fosse cosi
nettamente diversa.Forse per le prove del prof Vento le ore a disposizione erano meno di 4.
Io è la prima volta che ho seguito OOP,purtroppo il primo mese l'ho seguito a singhiozzo e quindi optai per non
fare il contest,forse è stato un'errore :sfiga: ,visto anche l'agevolazioni che hanno avuto coloro
che hanno fatto il contest per quanto riguarda l'orale.
Inoltre vi chiedo un'altra informazione che visual editor si utilizza allo scritto??
Ancora grazie :)

Vaffanc**o Facebook,ha distrutto r0x...

 

Disco sucks


#7
qwerty1991

qwerty1991

    Advanced Member

  • Utente
  • StellaStellaStella
  • 612 Messaggi:
Come posso impostare il compito di febbraio per quanto riguarda le Gui? :scratch: :scratch: :scratch:
Non ho ben capito!

Un grazie anticipato. :D

Vaffanc**o Facebook,ha distrutto r0x...

 

Disco sucks


#8
Kristal Siderglace

Kristal Siderglace

    Advanced Member

  • Utente
  • StellaStellaStella
  • 246 Messaggi:
Il codice della GUI va tutto scritto di propria mano...

Per quanto riguarda febbraio di solito l'impostazione delle GUI del produttore consumatore è questa: hai due classi, una GUIConsumatore e una GUIProduttore, la prima ti permette di prelevare dal buffer quindi, in questo caso, avrà un campo che ti permette di selezionare il tipo di prestazione, un bottone per il prelievo e un campo con i dati prelevati , la seconda di inserire nel buffer quindi, in questo caso, avrà i campi cognome, codice fiscale e tipo di prestazione e un bottone per l'inserimento. Ovviamente ai bottoni di entrambe le GUI devi applicare dei Listener per realizzare le suddette azioni.

Ad esempio io, quando a mio tempo mi sono esercitata sulla stessa prova, ho scritto queste due classi:

[codice-java:39szq58o]import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class GUIConsumatore extends JFrame{
private static final long serialVersionUID = -5730428364786637650L;
private Buffer b;
private JTextField prestazione;
private JButton prossimo;
private JTextArea info;

public GUIConsumatore(Buffer B){
super();
this.b = b;
prestazione = new JTextField();
prossimo = new JButton("Preleva prossimo");
info = new JTextArea();
initGUI();
}

private void initGUI() {
this.setLocation(200, 200);
this.setSize(250, 300);
this.setResizable(false);
this.setLayout(new GridLayout(3, 1));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
{
prestazione.setBorder(BorderFactory
.createTitledBorder("Prestazione [0," + (b.getNumeroCode()-1) + "]"));
this.add(prestazione);

}
{
this.add(prossimo);
prossimo.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
int prest = Integer.parseInt(prestazione.getText());
Utente u;

if(prest < 0 || prest > b.getNumeroCode()-1)
JOptionPane.showMessageDialog(null, "Numero prestazione errato", "Errore", JOptionPane.ERROR_MESSAGE);
else{
Consumatore c = new Consumatore(b, prest);
c.start();
try {
c.join();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
u = c.getU();
if(u!=null)
info.setText(u.toString());
else
info.setText("Nessun utente da servire");
}

}
});
}
{
info.setBorder(BorderFactory
.createTitledBorder("Dati utente da servire"));
this.add(info);
}

}

}[/codice-java]

[codice-java:39szq58o]import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class GUIProduttore extends JFrame {
private static final long serialVersionUID = 5624803550661566167L;
private JTextField cognome, fiscale, prestazione;
private JButton inserisci;
private Buffer b;

public GUIProduttore(Buffer B) {
super();
this.b = b;
cognome = new JTextField();
fiscale = new JTextField();
prestazione = new JTextField();
inserisci = new JButton("Inserisci");
initGUI();
}

private void initGUI() {
this.setLocation(600,200);
this.setSize(250, 300);
this.setResizable(false);
this.setLayout(new GridLayout(4, 1));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
{
cognome.setBorder(BorderFactory.createTitledBorder("Cognome"));
this.add(cognome);
}
{
fiscale.setBorder(BorderFactory
.createTitledBorder("Codice fiscale"));
this.add(fiscale);
}
{
prestazione.setBorder(BorderFactory
.createTitledBorder("Prestazione [0," + (b.getNumeroCode()-1) + "]"));
this.add(prestazione);
}
{
this.add(inserisci);
inserisci.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
String cog = cognome.getText();
String fis = fiscale.getText();
int prest = Integer.parseInt(prestazione.getText());

if(cog.length()==0)
JOptionPane.showMessageDialog(null, "Inserire il congnome", "Errore", JOptionPane.ERROR_MESSAGE);
else if(fis.length() == 0)
JOptionPane.showMessageDialog(null, "Inserire il codice fiscale", "Errore", JOptionPane.ERROR_MESSAGE);
else if(prest < 0 || prest > b.getNumeroCode()-1)
JOptionPane.showMessageDialog(null, "Numero prestazione errato", "Errore", JOptionPane.ERROR_MESSAGE);
else{
Produttore p = new Produttore(b, prest, new Utente(cog, fis));
p.start();
cognome.setText("");
fiscale.setText("");
prestazione.setText("");
}
}
});
}
}
}[/codice-java]

Ma puoi scrivere anche qualcosa di più semplice... ^_^

#9
qwerty1991

qwerty1991

    Advanced Member

  • Utente
  • StellaStellaStella
  • 612 Messaggi:
Ti ringrazio per il codice ,molto gentile :D.
In realtà non ho capito come far interagire la classe Gestione Reparto con le due Gui. :gha:
Io avevo pensato di farla con due bei pulsantoni (Nuovo Consumatore e Nuovo Produttore)
che lanciavano le due interfaccia,ho pensato ad una cavolata?? :bash: O no??
Sarò grato per il vostro aiuto. :D

P.S.Allora il T/25 è sprovvisto di visual Editor?? :sfiga:

Vaffanc**o Facebook,ha distrutto r0x...

 

Disco sucks


#10
Kristal Siderglace

Kristal Siderglace

    Advanced Member

  • Utente
  • StellaStellaStella
  • 246 Messaggi:
Io le facevo lanciare entrambe automaticamente all'avvio del programma

[codice-java:3b4ssu2k]import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;

public class GestioneReparto {

public static void main(String args[]){
final Buffer b = new Buffer(Integer.parseInt(JOptionPane.showInputDialog(null, "Inserisci numero prestazioni possibili", "Prestazioni", JOptionPane.QUESTION_MESSAGE)));
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
GUIProduttore gp = new GUIProduttore(B);
gp.setVisible(true);
}
});
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
GUIConsumatore gc = new GUIConsumatore(B);
gc.setVisible(true);
}
});
}
}[/codice-java]


Eh, niente visual editor, ma appena ci prendi la mano una GUI la scrivi in 5 minuti!




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi