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
martedì 4 maggio 2010
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)
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();
}
}
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.
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!
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
Iscriviti a:
Post (Atom)