martedì 4 maggio 2010

Esercizi per il 6/05/2010

1) creare la tabella materia fatta dai campi id e nome
2) nella tabella titolo aggiungere la chiave esterna materia_id
3) fare la jsp che inserisce un titolo con la materia scelta da un menù dropdownj con la selct

suggerimento punto 3
inserire da mysql alcuni dati di prova in materia, oppure fare la gestione completa di materia


1) create table materia (id int not null, nome varchar(15), primary key(id));

2) per aggiungere una chiave esterna ad una tabella uso il comando alter table:
alter table titolo add materia_id int;

3) questo es lo pubblicherò prossimamente (il prima possibile) dato che a scuola non sono riuscito a finire l'esercizio e quindi mi mancano alcuni dati, domani mi rimetterò alla pari con la programmazione (sono rimasto indietro di qualche riga di codice e non riesco a completare del tutto questo esercizio)

sperando che almeno i primi due vadano bene
saluti da Marco :D

mercoledì 25 novembre 2009

compiti per il 26/11/09

Nella speranza di averci capito qualcosa in più dall'ultima volta pubblico il seguente esercizio =)

ES. 10 PAG. 233

Anagrafica: (Nome, Cognome, Matricola, Nascita, Indirizzo, CodiceDipartimento, NomeDipartimento, IndirizzoDipartimento, Stipendio)

Dipendenze funzionali
CodiceDipartimento --> NomeDipartimento, IndirizzoDipartimento
Violazione della seconda forma normale

Tabelle
Anagrafica: (Nome, Cognome, Matricola, Nascita, Indirizzo)
Dipartimento: (CodiceDipartimento, NomeDipartimento, IndirizzoDipartimento)

domenica 8 febbraio 2009

Calcolatrice

Calcolatrice con le seguenti operazioni: addizione, sottrazione, moltiplicazione e divisione.


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Calcolatrice{

JFrame f=new JFrame("Calcolatrice");
JLabel l1=new JLabel("Digita il primo numero");
JLabel l2=new JLabel("Digita il secondo numero");
JTextField f1=new JTextField();
JTextField f2=new JTextField();
JButton b1=new JButton("Addizione");
JButton b2=new JButton("Sottrazione");
JButton b3=new JButton("Moltiplicazione");
JButton b4=new JButton("Divisione");
JTextField risultato=new JTextField();

public Calcolatrice(){

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setLayout(new GridLayout(5,8));
f.add(l1);
f.add(f1);
f.add(l2);
f.add(f2);
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
f.add(risultato);
b1.addActionListener(new Addizione());
f.setVisible(true);
b2.addActionListener(new Sottrazione());
f.setVisible(true);
b3.addActionListener(new Moltiplicazione());
f.setVisible(true);
b4.addActionListener(new Divisione());
f.setVisible(true);

}

public class Addizione implements ActionListener{
public void actionPerformed(ActionEvent event){
String testo1=f1.getText();
String testo2=f2.getText();
int t=Integer.parseInt(testo1);
int t1=Integer.parseInt(testo2);
double addizione=t+t1;
String r=Double.toString(addizione);
risultato.setText(r);
}
}

public class Sottrazione implements ActionListener{
public void actionPerformed(ActionEvent e){
String testo1=f1.getText();
String testo2=f2.getText();
int t=Integer.parseInt(testo1);
int t1=Integer.parseInt(testo2);
double sottrazione=t-t1;
String r=Double.toString(sottrazione);
risultato.setText(r);
}
}

public class Moltiplicazione implements ActionListener{
public void actionPerformed(ActionEvent e){
String testo1=f1.getText();
String testo2=f2.getText();
int t=Integer.parseInt(testo1);
int t1=Integer.parseInt(testo2);
int moltiplicazione=t*t1;
String r=Integer.toString(moltiplicazione);
risultato.setText(r);
}
}

public class Divisione implements ActionListener{
public void actionPerformed(ActionEvent e){
String testo1=f1.getText();
String testo2=f2.getText();
int t=Integer.parseInt(testo1);
int t1=Integer.parseInt(testo2);
double divisione=t/t1;
String r=Double.toString(divisione);
risultato.setText(r);

}
}

public static void main (String []args){
Calcolatrice f=new Calcolatrice();
}

}

giovedì 8 gennaio 2009

Albero di Natale

Codice:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class AlberoNatale{
private JFrame albero;
private PannelloAlbero a;
private JButton accende;
private JButton spegne;
private JPanel pannelloBottoni=new JPanel(new GridLayout(2,1));
private int on_off=0;
private java.util.Timer pallineAccese;
public AlberoNatale(){
albero=new JFrame("Albero Natale 2008");
albero.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
albero.setSize(500,500);
a=new PannelloAlbero();
accende=new JButton("accendi le lampadine");
spegne=new JButton("spegni le lampadine");
pannelloBottoni.add(accende);
pannelloBottoni.add(spegne);
albero.add(a,BorderLayout.CENTER);
albero.add(pannelloBottoni,BorderLayout.SOUTH);
accende.addActionListener(new BottoneAccende());
spegne.addActionListener(new BottoneSpegne());
albero.setVisible(true);
}
public class PannelloAlbero extends JPanel{
public void paintComponent(Graphics g){
Graphics g2d=(Graphics2D) g;
Image alberoImmagine=new ImageIcon("albero.jpg").getImage();
g.drawImage(alberoImmagine,0,0,albero.getWidth(),albero.getHeight(),null);

//palline
g.setColor(getColore());
g.fillOval(250,350,20,20);
g.setColor(getColore());
g.fillOval(250,250,20,20);
g.setColor(getColore());
g.fillOval(250,150,20,20);
g.setColor(getColore());
g.fillOval(250,50,20,20);
g.setColor(getColore());
g.fillOval(200,300,20,20);
g.setColor(getColore());
g.fillOval(200,200,20,20);
g.setColor(getColore());
g.fillOval(200,100,20,20);
g.setColor(getColore());
g.fillOval(150,350,20,20);
g.setColor(getColore());
g.fillOval(150,250,20,20);
g.setColor(getColore());
g.fillOval(100,300,20,20);
g.setColor(getColore());
g.fillOval(300,300,20,20);
g.setColor(getColore());
g.fillOval(300,200,20,20);
g.setColor(getColore());
g.fillOval(300,100,20,20);
g.setColor(getColore());
g.fillOval(350,350,20,20);
g.setColor(getColore());
g.fillOval(350,250,20,20);
g.setColor(getColore());
g.fillOval(400,300,20,20);
}
}
private Color getColore(){
if(on_off==1){
int verde=(int)(Math.random()*225);
int rosso=(int)(Math.random()*225);
int blu=(int)(Math.random()*225);
Color colore=new Color(rosso,blu,verde);
return colore;
}
else
{
Color colore=new Color(0,0,0);
return colore;
}
}
public class BottoneAccende implements ActionListener{
public void actionPerformed(ActionEvent event){
if (on_off==0){
on_off=1;
pallineAccese=new java.util.Timer();
pallineAccese.schedule(new TimerTask(){
public void run(){
SwingUtilities.invokeLater(
new Runnable(){
public void run(){
albero.repaint();
}
});
}
},0,500);
}
}
}
public class BottoneSpegne implements ActionListener{
public void actionPerformed(ActionEvent event){
on_off=0;
pallineAccese.cancel();
albero.repaint();
}
}
public static void main(String[] args){
AlberoNatale albero=new AlberoNatale();
}
}

giovedì 23 ottobre 2008

gioco stanghette

Sono le 8.22 di mattina...ed ecco come promesso il sorgente del gioco.
Ricordo che il sorgente è nato dalla collaborazione con Matteo Gastaldi.



#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUMRIGHE 4

int limiti[NUMRIGHE] = {7,5,3,1};
//Limiti per le righe
int rows[NUMRIGHE][7];
// Tavola di gioco
int fill[NUMRIGHE];
// Livelli di riempimento delle righe
char symbol[3]= {'','+','-'};
// Simboli del gioco

//Disegna la tavola
void repaint()
{
system ("cls");

int i;

printf("Il gioco delle sette stanghette");

for(i=0;i<7;i++)
printf("%c",symbol[rows[0][i]]);

printf("\n ");

for(i=0; i<5; i++)
printf("%c",symbol[rows[1][i]]);

printf("\n ");

for(i=0; i<3; i++)
printf("%c",symbol[rows[2][i]]);

printf("\n ");

for(i=0; i<1; i++)
printf("%c",symbol[rows[3][i]]);

printf("\n\n");
}


// Azzera i dati di gioco
void inizializza()
{
int i, j;

for(i=0; i<7; i++)
{
if (i<NUMRIGHE)
fill[i]=0;

for(j=0; j<NUMRIGHE; j++)
rows[j][i]=0;
//todo: presente lavoro superfluo
}
}


// Controlla che l'imput passatogli sia giusto
int controllaInput(int rigan, int cellen, int sender)
{
if (rigan==0 && cellen==0)
return 0;

if (rigan>NUMRIGHE rigan<1)
{
if (sender == 1)
printf("Numero di riga errato.");
return 0;
}

if ( fill[rigan-1]+cellen > limiti[rigan-1] )
{
if (sender == 1)
printf("Impossibile prendere il numero di celle richiesto.");
return 0;
}

return 1;
}

// Valorizza il numero di celle richieste nella riga specificata
// (richiede un input verificato)
void prendiCelle(int rigan, int cellen, int value)
{
int i=-1;
rigan--;

fill[rigan] += cellen;

while (cellen>0 && ++i<limiti[rigan])
if (rows[rigan][i]==0)
{
rows[rigan][i]=value;
cellen--;
}
}

// Controlla se la partita è finita o può continuare
int checkMatch()
{
// controllo se è rimasta una cella libera
if (celleRimaste()<=1)
return 1;

return 0;
// Parita non finita
}

// ritorna il numero di celle rimaste
int celleRimaste()
{
return limiti[0]+limiti[1]+limiti[2]+limiti[3]-fill[0]-fill[1]-fill[2]-fill[3];
}

// Genera un numero casuale compreso tra 1 e 'num'
int getRndUpTo(int num)
{
return (int) 1 + (num * (rand()/(RAND_MAX+1.0)));
}

// Motore del giocatore AI (pseudo AI)
void execAImove()
{
//todo: implementare IA per bene (vedi programmazione dinamica)

int i=0, CelleDaPrendere = celleRimaste()-1;

// Cerco di prendere tutte le celle rimaste tranne una
for(i=0;i<NUMRIGHE;i++)
if (controllaInput(i,CelleDaPrendere,2)==1)
{
prendiCelle(i,CelleDaPrendere,2);
return;
}


// Sennò cicla random finché non trova una soluzione accettabile
int rigascelta = getRndUpTo(NUMRIGHE);
int ncellescelto = getRndUpTo(limiti[rigascelta]);

while (controllaInput(rigascelta,ncellescelto,2)==0)
{
rigascelta = getRndUpTo(NUMRIGHE);
ncellescelto = getRndUpTo(limiti[rigascelta]);
}

// Prendo le celle scelte
prendiCelle(rigascelta,ncellescelto,2);
}


main()
{
// inizializzo la 'scacchiera'
inizializza();

int rigan, cellen, togglePlayer=1;
// inizia il player

// Cicla finché il match non è terminato
while (checkMatch()==0)
{
if (togglePlayer==1)
{
// ridisegno la tavola ogni volta che ha giocato IA o all'inizio
repaint();

//azzero le variabili
rigan=0, cellen=0;

// chiedo l'input al player
while(controllaInput(rigan,cellen,1)==0)
{
printf("\nImmetti riga (1-4) e num. di stanghette che vuoi prendere (separati da virgola):");
scanf("%d,%d",&rigan,&cellen);
}

// prendo il numero di celle scelto dal player
prendiCelle(rigan,cellen,1);

togglePlayer = 2;
}
else
{
// eseguo la mossa AI
execAImove();

togglePlayer = 1;
}
}

repaint();

// finalizzo
printf("\n\nPartita terminata. ");
if (togglePlayer==2)
printf("Hai vinto!\n\n");
else
printf("Hai perso...\n\n");

// possibile ciclare per ripetere il gioco
system("PAUSE");
}























Gioco delle stanghette

Sono le una di notte. Finalmente dopo un pomeriggio e una serata intera io e il mio compagno di studi Matteo Gastaldi siamo riusciti a finire il gioco che ci aveva assegnato come compito il prof.

Il sorgente del suddetto gioco lo pubblicherò domani mattina a scuola onde evitare scopiazzamenti vari.

Buona notte a tutti i lettori!

martedì 30 settembre 2008

asd

blog in costruzione ^^