Progetto Java Programmazione 3

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progetto Java Programmazione 3"

Transcript

1 Progetto Java Programmazione 3 Gioco On-Line: HeadKnock Scopo di tale progetto è di creare un gioco on-line che quindi permetta a più processi Client di interagire tra loro mediante un processo Server. Il linguaggio di programmazione scelto è: Java (versione 1.6). Studente: Colato Roberto

2 Indice Introduzione Pag. 01 Descrizione del progetto Pag. 03 Descrizione e schemi dell architettura Pag. 05 Descrizione e schemi del protocollo Pag. 07 Dettagli implementativi de client Pag. 08 Dettagli implementativi de server Pag. 09 Manuale Utente Pag. 10 Sorgenti o AppLock.java Pag. 11 o Audio.java Pag. 14 o BackgroundPanel.java Pag. 17 o Block.java Pag. 18 o ClientConfig.java Pag. 21 o Database.java Pag. 22 o Encrypter.java Pag. 25 o Game.java Pag. 26 o Instructions.java Pag. 32 o List.java Pag. 38 o Loading.java Pag. 41 o Lobby.java Pag. 42 o Login.java Pag. 49 o Matrix.java Pag. 56 o Menu.java Pag. 58 o MyTimer.java Pag. 65 o Planner.java Pag. 67 o Server.java Pag. 69 o ServerConfig.java Pag. 70 o ServerThread.java Pag. 71 o Table.java Pag. 78 o TopBar.java Pag. 81 o User.java Pag. 84 o UserSettings.java Pag. 86 Link Utili Pag. 87 2

3 Descrizione del progetto Headknock è un gioco di logica che consiste nel totalizzare il maggior punteggio entro il tempo limite, andando a completare degli schemi logici, obbiettivo principale è quello di permettere agli utenti di sfidarsi on-line, tuttavia nell applicazione sono presenti altre specifiche, come ad esempio una modalità di gioco off-line che permetterà all utente di migliorare le proprie abilità e di prendere confidenza con il gioco prima di cimentarsi in sfide on-line e di migliorare il proprio record personale, o semplicemente giocare una partita senza necessità di connettersi al server. Inoltre è presente un sistema che permette la creazione di account su cui si basa anche una classifica online consultabile direttamente dall applicazione previa autenticazione sul server con il proprio account anch esso creabile direttamente dall applicazione client. Il Server è progettato in modo tale da accettare le richieste di connessione dei Clients che saranno poi gestite singolarmente da Servet-Threads appositamente generati. Inoltre l applicazione lato Server si interfaccia con un Database MySQL in cui salve e legge informazioni utili che rispettivamente riceve ed invia ai client medianti gli specifici Server-Threads. Il Client interagisce con il Server-Thread assegnatogli mediante appositi comandi grafici, inoltre sono disponibili modalità di gioco e comandi che non necessitano di connessione al server e dunque possono essere eseguite dall utente senza essere necessariamente connessi al Server. Inoltre, sia l applicazione Client, che quella Server, sono progettate per gestire opportunamente errori ed eccezioni che potrebbero insorgere durante la connessione in modo da evitare stalli, crash e situazioni impreviste (ad esempio la disconnessione improvvisa di un client in un qualunque momento). Di seguito alcune schermate d esempio dell applicazione. 3

4 4

5 Descrizione e schemi dell architettura L'architettura del progetto prevede le seguenti fasi. Inizialmente il Client si connette al server principale. Il Server Principale (S) accetta la connessione su un nuovo socket diverso da quello di ascolto, fatto ciò crea un nuovo Thread (ST) a cui passerà il socket. Il Client, è ora pronto ad interagire con gli atri Client tramite il proprio Server Thread (ST). Di seguito due schemi che rendono meglio l idea dell architettura del progetto: 5

6 6

7 Descrizione e schemi del protocollo L'intero progetto è sviluppato utilizzando connessioni TCP poiché, si ritiene indispensabile che i dati siano trasmessi su un canale di comunicazione stabile e affidabile. Volendo dare uno schema al progetto possiamo prevede le seguenti fasi di schematizzazione: 7

8 Dettagli implementativi del Applicazione Client L applicazione Client è scritta in modo tale da permettere all utente di giocare sia in modalità off-line che in modalità on-line, inoltre nell applicazione è presente una guida che spiega i comandi e le logiche di gioco. La modalità off-line permette all utente giocare in locale e migliorare il proprio record personale. La modalità on-line necessita di una connessione al server, qualora questa non sia disponibile un messaggio ne darà notifica all utente. Una volta stabilita la connessione con il server verrà chiesto all utente di effettuare il login con il proprio account o in alternativa di crearne uno, inoltre è presente nella schermata di login un checkbox che se spuntato ricorderà username e password inserite per gli accessi successivi. Dopo che l utente si è autentificato sul server, verrà visualizzata una schermata di lobby da cui sarà possibile lanciare e giocare sfide, nonché consultare la classifica globale basata su un valore rango che varia a seconda dell abilità di gioco dell utente nelle partite online e al numero di partite giocate. Cliccando sull apposito tasto sfida nella schermata di lobby, l utente entra in modalità sfida, tale modalità resterà attiva finche non sarà creata una nuova sfida da giocare per l utente. Nelle creazione di una nuova sfida il server, previa consulto del database, associa 2 utenti (sfidanti) scelti casualmente tra quelli che hanno la modalità sfida attiva (anche gli utenti off-line possono avere la modalità sfida attiva). Per limitare il potenziale traffico inutile che alcuni utenti potrebbero intenzionalmente causare sul server lanciando una grossa quantità di sfide che poi non saranno giocate, il sistema implementa un meccanismo tale che non permette di entrare in modalità sfida finchè c è almeno una sfida in attesa di essere giocata. Schema UML Client: 8

9 Dettagli implementativi del Applicazione Server Il Server accetta le connessioni dai client che poi passa a specifici Server-Threads che gestiscono le richieste dei client ad essi connessi in un rapporto 1 a 1. L applicazione Server implementa dei meccanismi che permetto all utente di registrarsi con username univoci, autenticarsi, generare nuove sfide di gioco, nonché fornisce quando necessario i dati, che correttamente interpretati dall applicazione client, permettono l esecuzione di importanti funzioni relative alla modalità di gioco on-line, nonché la visualizzazione della schermata di lobby e della classifica. Il server gestisce opportunamente un DataBase MySQL per memorizzare informazioni relative agli utenti e alle sfide che quest ultimi intraprendono nella modalità di gioco on-line, inoltre le informazioni memorizzare permetto di stilare una classifica dei giocatori. Schema UML DataBase: Schema UML Server: 9

10 Manuale utente Client I applicazione Client è composta dalle seguenti classi: AppLock.java = Impedisce avvio multiplo dell applicazione sullo stesso dispositivo. Audio.java = Gestisce le componenti audio. BackgroundPanel.java = Consente la creazioni di pannelli con immagine come sfondo grafico. Block.java = Elemento base del campo di gioco. ClientConfig.java = Parametri di configurazione dell applicazione client. Encrypter.java = Consente di criptare stringhe. Game.java = Avvia e gestisce una partita di gioco sia on-line che off-line. Instructions.java = Contiene la guida con le istruzioni ed i comandi di gioco List.java = Usata per visualizzare la classifica di gioco in modalità on-line. Loading.java = Rappresenta una Pagina di caricamento (Prettamente Grafica) Lobby.java = Pannello con informazioni e comandi utili per la modalità on-line. Login.java = Schermata che permette all utente di registrarsi e o autenticarsi. Matrix.java = Oggetto composto da blocco utilizzato per creare il campo gi gioco. Menu.java = Interfaccia grafica con comandi iniziali dell applicazione client. MyTimer.java = Rappresentazione di un Timer, sia graficamente che funzionalmente. Planner.java = Crea lo schema grafico risolutivo per la specifica matrice di gioco. Table.java = Usata per ottenere una visualizzazione schematica delle informazioni. TopBar.java = Barra grafica con comandi di gestione Audio dell applicazione. User.java = Usata per facilitare la comunicazione tra client e server. UserSettings.java = Contiene le preferenze dell utente (Audio on/off, username, ecc). Server I applicazione Server è composta dalle seguenti classi: Database.java Encrypter.java Server.java ServerConfig.java ServerThread.java User.java = Classe che facilità l utilizzo del DataBase grazie a diversi metodi. = Consente di criptare stringhe. = Avvia l applicazione server, che si mette in attesa di nuove connessioni. = Parametri di configurazione dell applicazione server. = Gestisce la connessione con un client, servendone le richieste. = Usata per facilitare la comunicazione tra client e server. L applicazione è stata scritta utilizzando JDK 1.6, inoltre utilizza diverse risorse grafiche e multimediali, al fine di rendere più avvincente l esperienza di gioco. Di seguito i sorgenti che compongono l applicazione in ordine alfabetico, tuttavia è possibile fare rifermento all indice per una più rapida ricerca. 10

11 AppLock.java package myhawk.games; import java.io.file; import java.io.fileoutputstream; import java.nio.channels.filechannel; import java.nio.channels.filelock; import java.util.logging.level; import java.util.logging.logger; /*Classe con logica Singleton che genere un file lock usato per limitare l'esecuzione del blocco di codice che ne fa uso. *in tal modo non sarà possibile avviare contemporaneamente più blocchi di codice alla volta su uno stesso computer*/ public class AppLock { private static AppLock instance; //istanza di AppLock private File lock_file = null; //File di lock private FileLock lock = null; //lock private FileChannel lock_channel = null; //canale di lock private FileOutputStream lock_stream = null; //Stream di lock /*Costruttore PRIVATO che istanzia un nuovo oggetto AppLock*/ private AppLock() { /*Costruttore PRIVATO che istanzia un nuovo oggetto AppLock basato su una specifica key data in ingresso*/ private AppLock(String key) throws Exception { String tmp_dir = System.getProperty("java.io.tmpdir"); //ottiene path cartella temp del sistema if (!tmp_dir.endswith(system.getproperty("file.separator"))) { tmp_dir += System.getProperty("file.separator"); try { //Genero una stringa md5 che sarà usata come nome del file di lock Encrypter md = new Encrypter(ClientConfig.ENCRYPTION_MODE); String hash_text = md.encrypt(""); lock_file = new File(tmp_dir + hash_text + ".app_lock"); //creo il file di lock catch (Exception ex) { System.out.println("AppLock.AppLock() file fail"); // Se la creazione del file di lock md5 non è andata a buon fine provo a creare un file di lock a partire dalla key if (lock_file == null) { lock_file = new File(tmp_dir + key + ".app_lock"); lock_stream = new FileOutputStream(lock_file); String f_content = "Java AppLock Object\r\nLocked by key: " + key + "\r\n"; lock_stream.write(f_content.getbytes()); lock_channel = lock_stream.getchannel(); //avvio il lock sul canale lock = lock_channel.trylock(); 11

12 if (lock == null) { //se non è stato possibile creare il file di lock lancio l'eccezione throw new Exception("Can't create Lock"); /*Modulo PRIVATO che rilascia il lock in modo da permettere l'esecuzione di nuove applicazioni che lo richiedono */ private void release() throws Throwable { if (lock.isvalid()) { lock.release(); if (lock_stream!= null) { lock_stream.close(); if (lock_channel.isopen()) { lock_channel.close(); if (lock_file.exists()) { //Modulo sempre eseguito alla fine del codice per di rilasciare il lock protected void finalize() throws Throwable { this.release(); super.finalize(); /* Metodo che imposta l'appication lock, può essere chiamato 1 volta per applicazione, tutte le chiamate successive vengono ignorate*/ public static boolean setlock(string key) { if (instance!= null) { return true; try { instance = new AppLock(key); catch (Exception ex) { instance = null; Logger.getLogger(AppLock.class.getName()).log(Level.SEVERE, "Fail to set AppLoc", ex); return false; //Thread eseguito prima dello Shut Down della JVM Runtime.getRuntime().addShutdownHook(new Thread() public void run() { AppLock.releaseLock(); ); return true; 12

13 /*Modulo che rilascia il lock che non potrà più essere utilizzato in questa applicazione grazie alla logica Singleton*/ public static void releaselock() { try { if (instance == null) { throw new NoSuchFieldException("INSTATCE IS NULL"); instance.release(); catch (Throwable ex) { Logger.getLogger(AppLock.class.getName()).log(Level.SEVERE, "Fail to release", ex); 13

14 Audio.java package myhawk.games; import java.io.*; import java.net.url; import javax.sound.sampled.audiosystem; import javax.sound.sampled.clip; import javax.sound.sampled.lineevent; import javax.sound.sampled.linelistener; import javax.sound.sampled.lineunavailableexception; import javax.sound.sampled.unsupportedaudiofileexception; /*Classe che con una logica Singleton genere un oggetto capace di gestire l'audio in altri oggetti*/ public class Audio{ private Clip clip = null, clipbg = null; //Oggetto clip dedicato agli effetti sonori e oggetto clip dedicato alla musica di sottofondo private static Audio instance = null; //Usato per creare l'istanza necessaria alla logica Singleton private UserSettings user_settings = null; //Contiene le preferenze dell'utente (audio si/no) private URL url = null, urlbg = null; //conterrà il path dei file audio che saranno avviati grazie agli oggetti clip private boolean sound_status = false, music_status = false; //status effetti sonori e background music private int bg_music_index = 0; //indice della musica di sottofondo corrente private String[] bg_music = new String[] {"/audio/bg.wav","/audio/game.wav"; //musiche di sottofondo disponibili private Audio(){ //Costruttore PRIVATO che carica l'istanza dell'oggetto UserSettings da cui ricava le preferenze utente user_settings = UserSettings.getInstance(); sound_status = user_settings.issound(); music_status = user_settings.ismusic(); public static Audio getinstance(){ //Singleton, restituisce l'istanza dell'oggetto Audio e se non esiste ne crea uno if(instance == null){ instance = new Audio(); return instance; public void startsound(string path){ //Modulo che avvia un file audio ripetuto un unica volta instance.url = instance.getclass().getresource(path); try { instance.clip = AudioSystem.getClip(); catch (LineUnavailableException e) { e.printstacktrace(); try { instance.clip.open(audiosystem.getaudioinputstream(url)); catch (LineUnavailableException e) { e.printstacktrace(); 14

15 catch (UnsupportedAudioFileException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); instance.clip.addlinelistener(new LineListener(){ public void update(lineevent event) { if (event.gettype() == LineEvent.Type.STOP) { event.getline().close(); ); instance.clip.start(); //Listner che chiude il clip audio appena quest'ultimo termina public synchronized void startbgmusic(){ //Modulo che avvia un file audio ripetuto fino e alla ricezione di esplicita richiesta di stop instance.urlbg = instance.getclass().getresource(bg_music[bg_music_index]); try { instance.clipbg = AudioSystem.getClip(); catch (LineUnavailableException e) { e.printstacktrace(); try { instance.clipbg.open(audiosystem.getaudioinputstream(instance.urlbg)); catch (LineUnavailableException e) { e.printstacktrace(); catch (UnsupportedAudioFileException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); instance.clipbg.loop(-1); public void stopbgmusic(){ //modulo che stoppa e chiude il clipbg (background music) if(instance.clipbg.isrunning()){ instance.clipbg.stop(); instance.clipbg.close(); public void stopsound(){ //modulo che stoppa e chiude il clip (sound effects) if(instance.clip.isrunning()){ instance.clip.stop(); instance.clip.close(); 15

16 public boolean ismusicenabled() { return music_status; //ritona lo stato della musica di sottofondo public synchronized void setmusicstatus(boolean music_status) { //imposta lo stato della musica di sottofondo this.music_status = music_status; user_settings.setmusic(music_status); public boolean issoundenabled() { //ritorna lo stato degli effetti sonori return sound_status; public synchronized void setsoundstatus(boolean sound_status) { //imposta lo stato degli effetti sonori this.sound_status = sound_status; user_settings.setsound(sound_status); public void setbgmusicindex(int bg_music_index) { this.bg_music_index = bg_music_index; //imposta l'indice della BgMusic da selezionare 16

17 BackgroundPanel.java package myhawk.games; import java.awt.graphics; import java.awt.image; import javax.swing.jpanel; /*Classe che crea Oggetti ti tipo JPanel con metodo paint sovrascritto *in modo da permettere l'inserimento di immagini di background al pannello*/ public class BackgroundPanel extends JPanel { private static final long serialversionuid = L; private Image image; public BackgroundPanel(Image image){ this.image = //metodo che permette di disegnare uno sfondo al pannello che si ridimensiona con esso protected void paintcomponent(graphics g){ super.paintcomponent(g); //invoca metodo paintcomponent della classe JPanel if (image!= null) g.drawimage(image, 0,0,this.getWidth(),this.getHeight(),this); 17

18 Block.java package myhawk.games; import java.awt.color; import java.awt.cursor; import java.awt.event.mouseevent; import java.awt.event.mouselistener; import javax.swing.borderfactory; import javax.swing.imageicon; import javax.swing.jbutton; /*Classe Blocco che rappresenta l'elemento base del campo di gioco*/ public class Block implements MouseListener{ private JButton block; private Boolean status; private Audio audio = Audio.getInstance(); //elemento grafico del blocco che permette l'interazione dell'utente //status del blocco //oggetto Audio che gestisce l'audio del gioco public Block () { //Costruttore block = new JButton(new ImageIcon(getClass().getResource("/img/emptyblock.png"))); block.setname("empty BLOCK"); //Assegno il nome EMPTY BLOCK che sarà poi utile per la gestione del medesimo block.addmouselistener(this); //Uso di MouseListener per poter gestire sia il click destro che il sinistro del mouse block.setcontentareafilled(false); block.setcursor(cursor.getpredefinedcursor(cursor.hand_cursor)); block.setborder(borderfactory.creatematteborder(1, 1, 1, 1, Color.black)); /*Modulo che cambia lo stato, il nome e l'aspetto del blocco in base alle circostanze e al nome assegnato al bottone*/ public void changebuttonstatus(int e){ if(block.getname().equals("empty BLOCK")){ if(e==mouseevent.button1){ //click tasto sinistro mouse block.seticon(new ImageIcon(getClass().getResource("/img/fullblock_focused.png"))); block.setname("full BLOCK"); status = true; else if(e==mouseevent.button3){ //click tasto destro mouse block.seticon(new ImageIcon(getClass().getResource("/img/nofullblock_focused.png"))); block.setname("nofull BLOCK"); status = false; else{ block.seticon(new ImageIcon(getClass().getResource("/img/emptyblock_focused.png"))); block.setname("empty BLOCK"); status = null; 18

19 public void setsolved(){ //Modulo che imposta l'emento block come elemento risolto cambiando nome del bottone e grafica if(block.getname().equals("full BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/solvedfullblock.png"))); else if(block.getname().equals("nofull BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/solvednofullblock.png"))); block.setname("solved BLOCK"); public void resetstatus(){ //reset stato del blocco alle condizioni originali block.seticon(new ImageIcon(getClass().getResource("/img/emptyblock.png"))); block.setname("empty BLOCK"); status = null; public void setstatus(boolean status){ this.status=status; //permette di cambiare lo status del blocco public Boolean getstatus(){ return status; public JButton getbutton(){ return block; //restituisce lo stato del blocco //restituisce l'elemento di tipo JButton del public void mouseclicked(mouseevent arg0) //Modulo che cambia la grafica del Block al passaggio del mouse public void mouseentered(mouseevent e) { if(!block.getname().equals("solved BLOCK")){ if(block.getname().equals("empty BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/emptyblock_focused.png"))); else if(block.getname().equals("full BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/fullblock_focused.png"))); else if(block.getname().equals("nofull BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/nofullblock_focused.png"))); 19

20 @Override //Modulo che cambia la grafica del Block al passaggio del mouse public void mouseexited(mouseevent arg0) { if(!block.getname().equals("solved BLOCK")){ if(block.getname().equals("empty BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/emptyblock.png"))); else if(block.getname().equals("full BLOCK")){ block.seticon(new ImageIcon(getClass().getResource("/img/fullblock.png"))); else if(block.getname().equals("nofull BLOCK")){ block.seticon(new //mouse listener che invoca il modulo che cambia lo status del bottone qualora non fosse già risolto public void mousepressed(mouseevent e) { if(!block.getname().equals("solved BLOCK")){ this.changebuttonstatus(e.getbutton()); if(audio.issoundenabled()){ audio.startsound("/audio/block_change.wav"); else if(audio.issoundenabled()){ public void mousereleased(mouseevent arg0) { 20

21 ClientConfig.java package myhawk.games; /*Classe che contiene variabili che saranno usate globalmente negli oggetti che costituiscono l'applicazione Client*/ public class ClientConfig { public static final String SERVER_ADRESS = "xxx.xxx.xxx.xxx"; public static final int SERVER_PORT = xxxx; public static final int GAME_TIME = xxx; public static final int MARTIX_ROWS = x; public static final int MATRIX_COLUMNS = x; public static final String ENCRYPTION_MODE = "xxx"; public static final int LOGIN_ATTEMPS = x; //Indirizzo del server //Porta su cui il Server ha una ServerSocket aperta in ascolto //Durata in secondi di una partita //Numero di righe di cui è composta la matrice di gioco //Numero di colonne di cui è composta la matrice di gioco //Algoritmo di Crittografia scelto nel Client //Tentativi di Login a disposizione dell'utente 21

22 Database.java package myhawk.games; import java.sql.*; import java.util.arraylist; /*Classe usata per gestione del DB. Gestisce la connessione col Database e Fornisce i metodi per l'esecuzione delle query*/ public class Database { private String nomedb; // Nome del Database a cui connettersi private String nomeutente; // Nome utente utilizzato per la connessione al Database private String pwdutente; // Password usata per la connessione al Database private String errore; // Raccoglie informazioni riguardo l'ultima eccezione sollevata private Connection db; // La connessione col Database private boolean connesso; // Flag che indica se la connessione è attiva o meno public Database(String nomedb) { this(nomedb, "", ""); public Database(String nomedb, String nomeutente, String pwdutente) { this.nomedb = nomedb; this.nomeutente = nomeutente; this.pwdutente = pwdutente; connesso = false; errore = ""; public boolean connetti() { // Apre la connessione con il Database connesso = false; try { // Carico il driver JDBC per la connessione con il database MySQL Class.forName("com.mysql.jdbc.Driver"); if (!nomedb.equals("")) { // Controllo che il nome del Database non sia null if (nomeutente.equals("")) { // Controllo se il nome utente va usato o meno per la connessione // La connessione non richiede nome utente e password db = DriverManager.getConnection(jdbc:"+ ServerConfig.DATABASE_MS +"://"+ ServerConfig.DATABASE_HOST +"/" + nomedb); else{ if (pwdutente.equals("")) { // La connessione richiede nome utente, controllo se necessita anche della password // La connessione non necessita di password db = DriverManager.getConnection("jdbc:"+ ServerConfig.DATABASE_MS +"://"+ ServerConfig.DATABASE_HOST +"/" + nomedb + "?user=" + nomeutente); else{ // La connessione necessita della password db = DriverManager.getConnection("jdbc:"+ ServerConfig.DATABASE_MS +"://"+ ServerConfig.DATABASE_HOST + "/" + nomedb + "?user=" + nomeutente + "&password=" + pwdutente); connesso = true; // La connessione è avvenuta con successo 22

23 else{ System.out.println("Manca il nome del database!!"); System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\""); System.exit(0); catch (Exception e) { errore = e.getmessage(); e.printstacktrace(); if (!connesso) { System.out.println("Errore durante la connessione."); System.out.println( this.geterrore() ); System.exit(0); return connesso; /*Esegue una query di selezione dati sul Database * query: una stringa che rappresenta un'istruzione SQL di tipo SELECT da eseguire * colonne: il numero di colonne di cui sarà composta la tupla del risultato * ritorna un ArrayList contenente tutte le tuple del "rawtypes", "unchecked" ) public synchronized ArrayList eseguiquery(string query) { ArrayList v = null; String [] record; int colonne = 0; try { Statement stmt = db.createstatement(); // Creo lo Statement per l'esecuzione della query ResultSet rs = stmt.executequery(query); v = new ArrayList(); ResultSetMetaData rsmd = rs.getmetadata(); // Ottengo il ResultSet dell'esecuzione della query colonne = rsmd.getcolumncount(); while(rs.next()) { // Creo il vettore risultato scorrendo tutto il ResultSet record = new String[colonne]; for (int i=0; i<colonne; i++) record[i] = rs.getstring(i+1); v.add( (String[]) record.clone() ); rs.close(); // Chiudo il ResultSet stmt.close(); // Chiudo lo Statement catch (Exception e) { e.printstacktrace(); errore = e.getmessage(); try { if(db.isclosed()){ System.exit(1); //quando crasha il DB 23

24 catch (SQLException e1) { e1.printstacktrace(); return v; /*Esegue una query di aggiornamento sul Database * query: una stringa che rappresenta un'istuzione SQL di tipo UPDATE da eseguire * ritorna TRUE se l'esecuzione è andata a buon fine, FALSE se c'è stata public synchronized boolean eseguiaggiornamento(string query) { int numero = 0; boolean risultato = false; try { Statement stmt = db.createstatement(); numero = stmt.executeupdate(query); risultato = true; stmt.close(); catch (Exception e) { e.printstacktrace(); errore = e.getmessage(); risultato = false; try { if(db.isclosed()){ System.exit(1); catch (SQLException e1) { e1.printstacktrace(); return risultato; //quando crasha il DB // Chiude la connessione con il Database public void disconnetti() { try { db.close(); connesso = false; catch (Exception e) { e.printstacktrace(); public boolean isconnesso() { return connesso; // Ritorna TRUE se la connessione con il Database è attiva public String geterrore() { return errore; // Ritorna il messaggio d'errore dell'ultima eccezione sollevata 24

25 Encrypter.java package myhawk.games; import java.math.biginteger; import java.security.messagedigest; import java.security.nosuchalgorithmexception; /*Classe usata per creare oggetti Encrypter capaci di criptare stringhe in vari formati crittografici*/ public class Encrypter{ private MessageDigest mdenc = null; //oggetto di tipo MessageDigest utilizzato per predisporre l'algoritmo di crypt //costruttore che prende in ingresso la stringa contenente il nome dell'algoritmo crittografico che si vuole utilizzare public Encrypter(String algorithm){ try { mdenc = MessageDigest.getInstance(algorithm); //assegno a mdenc l'algoritmo scelto catch (NoSuchAlgorithmException e) { e.printstacktrace(); //modulo che restituisce crittografata la stringa che riceve in ingresso, //criptandola in base all'algoritmo con cui è stato inizializzato mdenc public String encrypt(string word){ mdenc.update(word.getbytes(), 0, word.length()); return new BigInteger(1, mdenc.digest()).tostring(16); // Encrypted Word String 25

26 Game.java package myhawk.games; import java.awt.dimension; import java.awt.gridbaglayout; import java.awt.gridlayout; import java.awt.event.mouseevent; import java.awt.event.mouselistener; import javax.swing.borderfactory; import javax.swing.boxlayout; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jlabel; import javax.swing.jpanel; /*Classe che utilizza tutti gli oggetti utili per generare e gestire una partita*/ public class Game extends JPanel implements MouseListener{ private static final long serialversionuid = L; private Matrix user_matrix, solution_matrix; private Planner planner; private int n, m, solved_rows=0, solved_columns=0, user_score=0, level=1, key; private MyTimer gametimer; private JPanel game_panel; private Audio audio = Audio.getInstance(); private boolean game_over = false; private Loading loading; //matrice dell'utente e matrice con la soluzione //piano di risoluzione della matrice utente //Timer che scandisce il tempo di gioco //Pannello di gioco //Audio usato per gestire l'audio dell'oggetto Game //boolean usato per determinare la fine della partita //Oggetto Loading usato per mostrare pagina di caricamento public Game(int n, int m){ //Creo ed Avvio Loading, per mostrate una pagina di caricamento in attesa che Game sia pronto loading = new Loading("Loading...",new ImageIcon(getClass().getResource("/img/ajax-loader.gif"))); loading.run(this); this.n=n; this.m=m; this.setlayout(new GridBagLayout()); this.setopaque(false); this.paint(); 26

27 private void paint(){ //Modulo invocato dal Costruttore di Game per Disegnare ed Inizializzare i vari elementi che lo compongono int i=0, j=0; game_panel = new JPanel(); game_panel.setlayout(new BoxLayout(game_Panel,BoxLayout.Y_AXIS)); game_panel.setopaque(false); //pannello che conterra elementi campo di gioco BackgroundPanel playground = new BackgroundPanel(new ImageIcon(getClass().getResource("/img/bggame.jpg")).getImage()); playground.setlayout(new GridLayout(n+1,m+1)); playground.setpreferredsize(new Dimension((m+1)*70,(n+1)*70)); playground.setborder(borderfactory.createemptyborder(5, 5, 5, 5)); user_matrix = new Matrix(n,m); solution_matrix = new Matrix(n,m); planner = new Planner(solution_Matrix.getRowsCount(),solution_Matrix.getColumnsCount()); //Sequanza di cicli For che costruiscono il campo da gioco su cui si svolgerà la partita playground.add(new JLabel(new ImageIcon(getClass().getResource("/img/space.png")))); //blocco vacante per allineamento grafico for(i=0; i<n; i++){ for(j=0; j<m; j++){ user_matrix.getelement(i, j).getbutton().addmouselistener(this); for(i=0;i<m;i++){ playground.add(planner.getplan()[i+n]); for(i=0; i<n; i++){ playground.add(planner.getplan()[i]); for(j=0; j<m; j++){ playground.add(user_matrix.getelement(i,j).getbutton()); gametimer = new MyTimer(); //Creo un istanza di oggetto MyTimer usata per gestire il tempo in Game game_panel.add(gametimer); //inserisco il Timer grafico al Pannello di gioco game_panel.add(playground); //inserisco il campo di gioco grafico al Pannello di gioco 27

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella

Finestra.java. static String nomicolonne[] = {ind.,cognome,nome,telefono,e-mail}; //nomi delle colonne della tabella import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

COPERTURA WI-FI (aree chiamate HOT SPOT)

COPERTURA WI-FI (aree chiamate HOT SPOT) Wi-Fi Amantea Il Comune di Amantea offre a cittadini e turisti la connessione gratuita tramite tecnologia wi-fi. Il progetto inserisce Amantea nella rete wi-fi Guglielmo ( www.guglielmo.biz), già attivo

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

MANUALE GESTIONE DELLE UTENZE - PORTALE ARGO (VERS. 2.1.0)

MANUALE GESTIONE DELLE UTENZE - PORTALE ARGO (VERS. 2.1.0) Indice generale PREMESSA... 2 ACCESSO... 2 GESTIONE DELLE UTENZE... 3 DATI DELLA SCUOLA... 6 UTENTI...7 LISTA UTENTI... 8 CREA NUOVO UTENTE...8 ABILITAZIONI UTENTE...9 ORARI D'ACCESSO... 11 DETTAGLIO UTENTE...

Dettagli

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL.

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL. Data: 8 Ottobre 2013 Release: 1.0-15 Feb 2013 - Release: 2.0 - Aggiunta procedura per inviare email da Windows con php Release: 2.1-20 Mar 2013 Release: 2.2-8 Ottobre 2013 - Aggiunta procedura per inviare

Dettagli

Import Dati Release 4.0

Import Dati Release 4.0 Piattaforma Applicativa Gestionale Import Dati Release 4.0 COPYRIGHT 2000-2005 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati.questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Documentazione Servizio SMS WEB. Versione 1.0

Documentazione Servizio SMS WEB. Versione 1.0 Documentazione Servizio SMS WEB Versione 1.0 1 Contenuti 1 INTRODUZIONE...5 1.1 MULTILANGUAGE...5 2 MESSAGGI...7 2.1 MESSAGGI...7 2.1.1 INVIO SINGOLO SMS...7 2.1.2 INVIO MULTIPLO SMS...9 2.1.3 INVIO MMS

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers La procedura di installazione è divisa in tre parti : Installazione dell archivio MySql, sul quale vengono salvati

Dettagli

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

MANUALE D USO G.ALI.LE.O GALILEO. Manuale d uso. Versione 1.1.0. [OFR] - Progetto GALILEO - Manuale d uso

MANUALE D USO G.ALI.LE.O GALILEO. Manuale d uso. Versione 1.1.0. [OFR] - Progetto GALILEO - Manuale d uso [OFR] - - G.ALI.LE.O Versione 1.1.0 MANUALE D USO pag. 1 di 85 [OFR] - - pag. 2 di 85 [OFR] - - Sommario 1 - Introduzione... 6 2 - Gestione ALbI digitale Ordini (G.ALI.LE.O.)... 7 2.1 - Schema di principio...

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

NetMonitor. Micro guida all uso per la versione 1.2.0 di NetMonitor

NetMonitor. Micro guida all uso per la versione 1.2.0 di NetMonitor NetMonitor Micro guida all uso per la versione 1.2.0 di NetMonitor Cos è NetMonitor? NetMonitor è un piccolo software per il monitoraggio dei dispositivi in rete. Permette di avere una panoramica sui dispositivi

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

Dettagli

Gestione Nuova Casella email

Gestione Nuova Casella email Gestione Nuova Casella email Per accedere alla vecchia casella questo l indirizzo web: http://62.149.157.9/ Potrà essere utile accedere alla vecchia gestione per esportare la rubrica e reimportala come

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

Posta Elettronica Certificata

Posta Elettronica Certificata Posta Elettronica Certificata Manuale di utilizzo del servizio Webmail di Telecom Italia Trust Technologies Documento ad uso pubblico Pag. 1 di 33 Indice degli argomenti 1 INTRODUZIONE... 3 1.1 Obiettivi...

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Guida ai Servizi Voce per l Utente. Guida ai ai Servizi Voce per l Utente

Guida ai Servizi Voce per l Utente. Guida ai ai Servizi Voce per l Utente Guida ai Servizi Voce per l Utente Guida ai ai Servizi Voce per l Utente 1 Indice Introduzione... 3 1 Servizi Voce Base... 4 1.1 Gestione delle chiamate... 4 1.2 Gestione del Numero Fisso sul cellulare...

Dettagli

Manuale d'istruzioni. Alimentatore DC Programmabile 200 Watt (40 Volt / 5 Amp) Modello 382280

Manuale d'istruzioni. Alimentatore DC Programmabile 200 Watt (40 Volt / 5 Amp) Modello 382280 Manuale d'istruzioni Alimentatore DC Programmabile 200 Watt (40 Volt / 5 Amp) Modello 382280 382280 Introduzione Congratulazioni per aver acquistato l'alimentatore DC Programmabile 382280 della Extech.

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Client PEC Quadra Guida Utente

Client PEC Quadra Guida Utente Client PEC Quadra Guida Utente Versione 3.2 Guida Utente all uso di Client PEC Quadra Sommario Premessa... 3 Cos è la Posta Elettronica Certificata... 4 1.1 Come funziona la PEC... 4 1.2 Ricevuta di Accettazione...

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Manuale di installazione e d uso

Manuale di installazione e d uso Manuale di installazione e d uso 1 Indice Installazione del POS pag. 2 Funzionalità di Base - POS Sagem - Accesso Operatore pag. 2 - Leggere una Card/braccialetto Cliente con il lettore di prossimità TeliumPass

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

WINDOWS - Comandi rapidi da tastiera più utilizzati.

WINDOWS - Comandi rapidi da tastiera più utilizzati. WINDOWS - Comandi rapidi da tastiera più utilizzati. La prima colonna indica il tasto da premere singolarmente e poi rilasciare. La seconda e terza colonna rappresenta la combinazione dei i tasti da premere

Dettagli

WEB Conference, mini howto

WEB Conference, mini howto Prerequisiti: WEB Conference, mini howto Per potersi collegare o creare una web conference è necessario: 1) Avere un pc con sistema operativo Windows XP o vista (windows 7 non e' ancora certificato ma

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

Guida all uso. Come ricevere ed inviare Fax ed Sms tramite E-mail in 3 semplici passi.

Guida all uso. Come ricevere ed inviare Fax ed Sms tramite E-mail in 3 semplici passi. Guida all uso Come ricevere ed inviare Fax ed Sms tramite E-mail in 3 semplici passi. Legenda Singolo = Fax o SMS da inviare ad un singolo destinatario Multiplo = Fax o SMS da inviare a tanti destinatari

Dettagli

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB...

CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 1. CHE COS È DOCFLY FATTURAZIONE PA... 3 1.1 IL GESTIONALE WEB... 3 1.2 ACCESSO ALL INTERFACCIA WEB... 4 1.3 FUNZIONALITÀ DELL INTERFACCIA WEB... 5 1.3.1 CREAZIONE GUIDATA DELLA FATTURA IN FORMATO XML

Dettagli

G e s t i o n e U t e n z e C N R

G e s t i o n e U t e n z e C N R u t e n t i. c n r. i t G e s t i o n e U t e n z e C N R G U I D A U T E N T E Versione 1.1 Aurelio D Amico (Marzo 2013) Consiglio Nazionale delle Ricerche - Sistemi informativi - Roma utenti.cnr.it -

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

GUIDA ALL UTILIZZO DELL ECM 8

GUIDA ALL UTILIZZO DELL ECM 8 GUIDA ALL UTILIZZO DELL ECM 8 GUIDA ALL UTILIZZO DELL ECM 8 1) Introduzione Pg 3 2) L area amministratore Pg 3 2.1) ECM Pg 4 2.1.1) Sezione Struttura Pg 5 2.1.2) Sezione Documento Pg 7 2.1.3) Sezione Pubblicazione

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Piattaforma Applicativa Gestionale. Import dati. Release 7.0

Piattaforma Applicativa Gestionale. Import dati. Release 7.0 Piattaforma Applicativa Gestionale Import dati Release 7.0 COPYRIGHT 2000-2012 by ZUCCHETTI S.p.A. Tutti i diritti sono riservati. Questa pubblicazione contiene informazioni protette da copyright. Nessuna

Dettagli

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli

GUIDA UTENTE PROTOCOLLO FACILE

GUIDA UTENTE PROTOCOLLO FACILE GUIDA UTENTE PROTOCOLLO FACILE (Vers. 4.4.0) Installazione... 3 Prima esecuzione... 6 Login... 7 Funzionalità... 8 Protocollo... 9 Inserimento nuovo protocollo... 11 Invio SMS... 14 Ricerca... 18 Anagrafica...

Dettagli

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa di Ilaria Lorenzo e Alessandra Palma Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa Code::Blocks

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

TeamViewer 8 Manuale Controllo remoto

TeamViewer 8 Manuale Controllo remoto TeamViewer 8 Manuale Controllo remoto Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 6 1.1 Informazioni sul software... 6

Dettagli

Manuale Software. www.smsend.it

Manuale Software. www.smsend.it Manuale Software www.smsend.it 1 INTRODUZIONE 3 Multilanguage 4 PANNELLO DI CONTROLLO 5 Start page 6 Profilo 7 Ordini 8 Acquista Ricarica 9 Coupon AdWords 10 Pec e Domini 11 MESSAGGI 12 Invio singolo sms

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

SERVER VIDEO 1-PORTA H.264

SERVER VIDEO 1-PORTA H.264 SERVER VIDEO 1-PORTA H.264 MANUALE UTENTE DN-16100 SALVAGUARDIA IMPORTANTE Tutti i prodotti senza piombo offerti dall'azienda sono a norma con i requisiti della legge Europea sulla restrizione per l'uso

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

Dettagli

Guida all utilizzo del dispositivo USB

Guida all utilizzo del dispositivo USB Guida all utilizzo del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1. Glossario... 3 2. Guida all utilizzo del dispositivo USB... 4 2.1 Funzionamento del

Dettagli

Manuale - TeamViewer 6.0

Manuale - TeamViewer 6.0 Manuale - TeamViewer 6.0 Revision TeamViewer 6.0 9947c Indice Indice 1 Ambito di applicazione... 1 1.1 Informazioni su TeamViewer... 1 1.2 Le nuove funzionalità della Versione 6.0... 1 1.3 Funzioni delle

Dettagli

Procedura per il ripristino dei certificati del dispositivo USB

Procedura per il ripristino dei certificati del dispositivo USB Procedura per il ripristino dei certificati del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1 Glossario... 3 2 Presentazione... 4 3 Quando procedere al ripristino

Dettagli

SOGEAS - Manuale operatore

SOGEAS - Manuale operatore SOGEAS - Manuale operatore Accesso La home page del programma si trova all indirizzo: http://www.sogeas.net Per accedere, l operatore dovrà cliccare sulla voce Accedi in alto a destra ed apparirà la seguente

Dettagli

GUIDA UTENTE PRATICA DIGITALE

GUIDA UTENTE PRATICA DIGITALE GUIDA UTENTE PRATICA DIGITALE (Vers. 4.4.0) Installazione... 3 Prima esecuzione... 6 Login... 7 Funzionalità... 8 Pratiche... 10 Anagrafica... 13 Documenti... 15 Inserimento nuovo protocollo... 17 Invio

Dettagli

Guida alla configurazione dell'e-mail di altri provider sul cellulare Galaxy S.

Guida alla configurazione dell'e-mail di altri provider sul cellulare Galaxy S. Guida alla configurazione dell'e-mail di altri provider sul cellulare Galaxy S. All accensione del Tab e dopo l eventuale inserimento del codice PIN sarà visibile la schermata iniziale. Per configurare

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

TeamViewer 8 Manuale Meeting

TeamViewer 8 Manuale Meeting TeamViewer 8 Manuale Meeting Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni

Dettagli

Se il corso non si avvia

Se il corso non si avvia Se il corso non si avvia Ci sono quattro possibili motivi per cui questo corso potrebbe non avviarsi correttamente. 1. I popup Il corso parte all'interno di una finestra di popup attivata da questa finestra

Dettagli

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA Supponiamo di voler eseguire una istantanea del nostro desktop, quella che in gergo si chiama Screenshot (da screen, schermo, e shot, scatto fotografico).

Dettagli

Di seguito sono descritti i prerequisiti Hardware e Software che deve possedere la postazione a cui viene collegata l Aruba Key.

Di seguito sono descritti i prerequisiti Hardware e Software che deve possedere la postazione a cui viene collegata l Aruba Key. 1 Indice 1 Indice... 2 2 Informazioni sul documento... 3 2.1 Scopo del documento... 3 3 Caratteristiche del dispositivo... 3 3.1 Prerequisiti... 3 4 Installazione della smart card... 4 5 Avvio di Aruba

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

AMICO CI SENTO. Manuale di istruzioni - Italiano

AMICO CI SENTO. Manuale di istruzioni - Italiano AMICO CI SENTO Manuale di istruzioni - Italiano 1. Per iniziare 1.1 Batteria 1.1.1 Installare la batteria Rimuovere il coperchio della batteria. Allineare i contatti dorati della batteria con i relativi

Dettagli

iphone in azienda Guida alla configurazione per gli utenti

iphone in azienda Guida alla configurazione per gli utenti iphone in azienda Guida alla configurazione per gli utenti iphone è pronto per le aziende. Supporta Microsoft Exchange ActiveSync, così come servizi basati su standard, invio e ricezione di e-mail, calendari

Dettagli

SCUOLANET UTENTE DOCENTE

SCUOLANET UTENTE DOCENTE 1 ACCESSO A SCUOLANET Si accede al servizio Scuolanet della scuola mediante l'indirizzo www.xxx.scuolanet.info (dove a xxx corrisponde al codice meccanografico della scuola). ISTRUZIONI PER IL PRIMO ACCESSO

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Guida alla compilazione

Guida alla compilazione Guida alla compilazione 1 Guida alla compilazione... 1 PARTE I REGISTRAZIONE ORGANIZZAZIONE... 5 LA PRIMA REGISTRAZIONE... 5 ACCESSO AREA RISERVATA (LOGIN)...11 ANAGRAFICA ORGANIZZAZIONE...12 ANAGRAFICA

Dettagli

PHP: form, cookies, sessioni e. Pasqualetti Veronica

PHP: form, cookies, sessioni e. Pasqualetti Veronica PHP: form, cookies, sessioni e mysql Pasqualetti Veronica Form HTML: sintassi dei form 2 Un form HTML è una finestra contenente vari elementi di controllo che consentono al visitatore di inserire informazioni.

Dettagli

Database Manager Guida utente DMAN-IT-01/09/10

Database Manager Guida utente DMAN-IT-01/09/10 Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software

Dettagli

Guida al sistema Bando GiovaniSì

Guida al sistema Bando GiovaniSì Guida al sistema Bando GiovaniSì 1di23 Sommario La pagina iniziale Richiesta account Accesso al sistema Richiesta nuova password Registrazione soggetto Accesso alla compilazione Compilazione progetto integrato

Dettagli

DVR Icatch serie X11 e X11Z iwatchdvr applicazione per iphone /ipad

DVR Icatch serie X11 e X11Z iwatchdvr applicazione per iphone /ipad DVR Icatch serie X11 e X11Z iwatchdvr applicazione per iphone /ipad Attraverso questo applicativo è possibile visualizzare tutti gli ingressi del DVR attraverso il cellulare. Per poter visionare le immagini

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

GUIDA alla configurazione di un DVR o Router su dyndns.it. in modalità compatibile www.dyndns.org

GUIDA alla configurazione di un DVR o Router su dyndns.it. in modalità compatibile www.dyndns.org GUIDA alla configurazione di un DVR o Router su dyndns.it in modalità compatibile www.dyndns.org Questa semplice guida fornisce le informazioni necessarie per eseguire la registrazione del proprio DVR

Dettagli

Portale Unico dei Servizi NoiPA

Portale Unico dei Servizi NoiPA Portale Unico dei Servizi NoiPA Guida all accesso al portale e ai servizi self service Versione del 10/12/14 INDICE pag. 1 INTRODUZIONE... 3 2 MODALITÀ DI PRIMO ACCESSO... 3 2.1 LA CONVALIDA DELL INDIRIZZO

Dettagli

WORD (livello avanzato): Struttura di un Documento Complesso. Struttura di un Documento Complesso

WORD (livello avanzato): Struttura di un Documento Complesso. Struttura di un Documento Complesso Parte 5 Adv WORD (livello avanzato): Struttura di un Documento Complesso 1 di 30 Struttura di un Documento Complesso La realizzazione di un libro, di un documento tecnico o scientifico complesso, presenta

Dettagli

Windows Mail Outlook Express 6 Microsoft Outlook 2003 Microsoft Outlook 2007 Thunderbird Opera Mail Mac Mail

Windows Mail Outlook Express 6 Microsoft Outlook 2003 Microsoft Outlook 2007 Thunderbird Opera Mail Mac Mail Configurare un programma di posta con l account PEC di Il Titolare di una nuova casella PEC può accedere al sistema sia tramite Web (Webmail i ), sia configurando il proprio account ii nel programma di

Dettagli