Home  >  Esami di Stato  >  Prova scritta esame di stato  >  Esame 2023

Soluzione seconda prova scritta Esame di Stato 2023 ITIA - 22 giugno 2023


La Traccia dell'Esame 2023, ritenuta dagli studenti lineare e fattibile, chiede di realizzare per una scuola una piattaforma web per la fruizione di educational games (videogiochi in ambito educativo), per migliorare l'apprendimento nelle varie materie.

Questa è la mia soluzione della prima parte in formato pdf.

Apri PDF   Download PDF



Questa è la soluzione della seconda parte in formato pdf.

Apri PDF   Download PDF



Il sorgente PHP per la risoluzione del quesito numero 6.


Download del codice
<?php
    session_start();

    if(isset($_POST['nome'])) $nome =$_POST['nome'];
    if(isset($_POST['materia'])) $materia =$_POST['materia'];
    $id_docente = $_SESSION['id_utente'];
    
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "2023";
    
    // Creare la connessione
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check della connessione
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    //creo codice classe random
    $codice_classe = '';
    for($i = 1; $i <= 6; $i++)
    {
        $codice_ascii = rand(65,90); //range lettere maiuscole
        $codice_classe = $codice_classe . chr($codice_ascii);
    }
    //creazione link con il codice classe
    $link = "http://piattaformaesame2023/" . $codice_classe;
    
    $sql = "INSERT INTO classi(codice, nome, materia, link, id_docente) ".
    " VALUES ('". $codice_classe . "' ,'".$nome."' ,'".$materia."' ,'".$link."',".$id_docente.");";
    
    if ($conn->query($sql) === TRUE) {
             echo "<br>Classe inserita correttamente! " ;
    
    } else {
        echo "Errore durante la creazione: " . $sql . "<br>" . $conn->error ."Si prega di ritentare.";
        //Per scongiurare il rischio molto remoto, così remoto da rendere inutile un controllo
        //ma in caso di chiave primaria duplicata si richiede di reinserire la classe
        }
    $conn->close();
    ?>
    

Il sorgente HTML della form per la risoluzione del quesito numero 6


Download del codice
<html lang="it">
    <head>
    <title>Esame 2023</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  </head>
  <body>  

<form class="form-horizontal" action="insclasse2023.php" method="post" >
<fieldset>

<!-- Form Name -->
<legend>Creazione Classe Virtuale</legend>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="nome">Nome</label>  
  <div class="col-md-4">
  <input id="nome" name="nome" type="text" placeholder="nome classe" class="form-control input-md" required="">
    
  </div>
</div>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="materia">Materia</label>  
  <div class="col-md-4">
  <input id="materia" name="materia" type="text" placeholder="materia" class="form-control input-md" required="">
    
  </div>
</div>
<!-- Button -->
<div class="form-group">
    <label class="col-md-4 control-label" for=""></label>
    <div class="col-md-4">
      <button id="" name="" class="btn btn-primary">Crea</button>
    </div>
  </div>
</fieldset>
</form>

</body>
</html>

Script SQL del Database


Download del codice
-- phpMyAdmin SQL Dump
    -- version 5.2.0
    -- https://www.phpmyadmin.net/
    --
    -- Host: localhost
    -- Generation Time: Jun 23, 2023 at 12:36 PM
    -- Server version: 10.4.21-MariaDB
    -- PHP Version: 7.4.29
    
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    START TRANSACTION;
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
    
    --
    -- Database: `2023`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `Argomenti`
    --
    
    CREATE TABLE `Argomenti` (
      `Codice` varchar(4) NOT NULL,
      `Descrizione` varchar(64) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `classi`
    --
    
    CREATE TABLE `classi` (
      `codice` varchar(6) NOT NULL,
      `nome` varchar(4) NOT NULL,
      `materia` varchar(64) NOT NULL,
      `link` varchar(128) NOT NULL,
      `id_docente` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `Docenti`
    --
    
    CREATE TABLE `Docenti` (
      `id` int(4) NOT NULL,
      `nome` varchar(64) NOT NULL,
      `cognome` varchar(64) NOT NULL,
      `login` varchar(24) NOT NULL,
      `password` varchar(128) NOT NULL,
      `email` varchar(64) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `premi`
    --
    
    CREATE TABLE `premi` (
      `id_studente` int(11) NOT NULL,
      `cod_vodeogioco` int(11) NOT NULL,
      `monete` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `studente_classe`
    --
    
    CREATE TABLE `studente_classe` (
      `id_studente` int(11) NOT NULL,
      `cod_classe` varchar(6) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `Studenti`
    --
    
    CREATE TABLE `Studenti` (
      `id` int(4) NOT NULL,
      `nome` varchar(64) NOT NULL,
      `cognome` varchar(64) NOT NULL,
      `login` varchar(24) NOT NULL,
      `password` varchar(128) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `videogiochi`
    --
    
    CREATE TABLE `videogiochi` (
      `codice` int(5) NOT NULL,
      `titolo` varchar(64) NOT NULL,
      `Desc_breve` varchar(160) NOT NULL,
      `Desc_lunga` text NOT NULL,
      `max_monete` int(5) NOT NULL,
      `URL_img1` varchar(128) NOT NULL,
      `URL_img2` varchar(128) DEFAULT NULL,
      `URL_img3` varchar(128) DEFAULT NULL,
      `link` varchar(128) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `videos_argomento`
    --
    
    CREATE TABLE `videos_argomento` (
      `cod_videogiochi` int(11) NOT NULL,
      `cod_argomento` varchar(4) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `videos_classe`
    --
    
    CREATE TABLE `videos_classe` (
      `cod_classe` varchar(6) NOT NULL,
      `cod_videogioco` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    
    
    
    --
    -- Indexes for dumped tables
    --
    
    --
    -- Indexes for table `Argomenti`
    --
    ALTER TABLE `Argomenti`
      ADD PRIMARY KEY (`Codice`);
    
    --
    -- Indexes for table `classi`
    --
    ALTER TABLE `classi`
      ADD PRIMARY KEY (`codice`),
      ADD KEY `docente` (`id_docente`);
    
    --
    -- Indexes for table `Docenti`
    --
    ALTER TABLE `Docenti`
      ADD PRIMARY KEY (`id`);
    
    --
    -- Indexes for table `premi`
    --
    ALTER TABLE `premi`
      ADD KEY `stud` (`id_studente`),
      ADD KEY `videos` (`cod_vodeogioco`);
    
    --
    -- Indexes for table `studente_classe`
    --
    ALTER TABLE `studente_classe`
      ADD KEY `cod_classe` (`cod_classe`),
      ADD KEY `id_studente` (`id_studente`);
    
    --
    -- Indexes for table `Studenti`
    --
    ALTER TABLE `Studenti`
      ADD PRIMARY KEY (`id`);
    
    --
    -- Indexes for table `videogiochi`
    --
    ALTER TABLE `videogiochi`
      ADD PRIMARY KEY (`codice`);
    
    --
    -- Indexes for table `videos_argomento`
    --
    ALTER TABLE `videos_argomento`
      ADD KEY `video` (`cod_videogiochi`),
      ADD KEY `arg` (`cod_argomento`);
    
    --
    -- Indexes for table `videos_classe`
    --
    ALTER TABLE `videos_classe`
      ADD KEY `cod_videogioco` (`cod_videogioco`),
      ADD KEY `cod_classe` (`cod_classe`);
    
    --
    -- Constraints for dumped tables
    --
    
    --
    -- Constraints for table `classi`
    --
    ALTER TABLE `classi`
      ADD CONSTRAINT `docente` FOREIGN KEY (`id_docente`) REFERENCES `Docenti` (`id`);
    
    --
    -- Constraints for table `premi`
    --
    ALTER TABLE `premi`
      ADD CONSTRAINT `stud` FOREIGN KEY (`id_studente`) REFERENCES `Studenti` (`id`),
      ADD CONSTRAINT `videos` FOREIGN KEY (`cod_vodeogioco`) REFERENCES `videogiochi` (`codice`);
    
    --
    -- Constraints for table `studente_classe`
    --
    ALTER TABLE `studente_classe`
      ADD CONSTRAINT `studente_classe_ibfk_1` FOREIGN KEY (`cod_classe`) REFERENCES `classi` (`codice`),
      ADD CONSTRAINT `studente_classe_ibfk_2` FOREIGN KEY (`id_studente`) REFERENCES `Studenti` (`id`);
    
    --
    -- Constraints for table `videos_argomento`
    --
    ALTER TABLE `videos_argomento`
      ADD CONSTRAINT `arg` FOREIGN KEY (`cod_argomento`) REFERENCES `Argomenti` (`Codice`),
      ADD CONSTRAINT `video` FOREIGN KEY (`cod_videogiochi`) REFERENCES `videogiochi` (`codice`);
    
    --
    -- Constraints for table `videos_classe`
    --
    ALTER TABLE `videos_classe`
      ADD CONSTRAINT `videos_classe_ibfk_1` FOREIGN KEY (`cod_videogioco`) REFERENCES `videogiochi` (`codice`),
      ADD CONSTRAINT `videos_classe_ibfk_2` FOREIGN KEY (`cod_classe`) REFERENCES `classi` (`codice`);
    COMMIT;
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;