Compiti Vacanze estive Informatica per le Seconde

Download:

daniele-corti_informatica_Lavori estivi seconde

 

Prerequisiti:

  • Sintassi di base del linguaggio C++.
  • Selezione e iterazione.
  • Array e Array paralleli.

 

Materiale di supporto:

  • Gli appunti per ripassare gli argomenti sono gli stessi distribuiti durante l’anno scolastico.

 

 

Problema:

  1. Realizzare in C++ un’applicazione che consenta di risolvere uno dei problemi elencati qui sotto, in base al numero identificativo di classe.

 

Consegna:

  1. Consegnare il file cpp su pen drive USB.

 

 

Elenco problemi da realizzare:

  1. Gestione stazione di servizio

Il programma deve gestire una stazione di servizio (rifornimento carburante) avente le seguenti funzionalità:

  1. Prezzi del giorno (accessibile solo dal gestore della stazione mediante PIN): il gestore imposta i prezzi del giorno.
  2. Visualizza i prezzi del carburante (Benzina, GPL, Diesel) al litro.
  3. Esegui rifornimento: il cliente inserisce l’importo e poi sceglie il tipo di carburante.
  4. Il cliente può pagare in contanti o con carta.
  5. L’utente abbonato ha diritto a sconti o premi: sulla tessera vengono caricati punti in base a quanto spende per rifornirsi di carburante.
  6. Statistiche: calcolo del consumo del carburante e il consumo kilometrico del veicolo.
  7. Scopri i nostri prodotti: la stazione vende anche dei prodotti: guide stradali, tergicristalli, olio, etc.

 

 

  1. Gestione parcheggio

Il programma deve gestire un parcheggio avente le seguenti funzionalità:

  1. Il parcheggio dispone di un certo numero di posti pertanto occorre gestire i posti disponibili e non consentire a un veicolo di entrare se non c’è posto. All’ingresso del parcheggio è indicato il numero di posti disponibili per ogni zona dello stesso (coperto, aperto).
  2. Registrazione dell’ingresso di un veicolo: all’utente di quel veicolo viene assegnata una tessera per identificarlo.
  3. L’utente può scegliere dove posizionare il veicolo: al coperto o all’aperto (i costi variano).
  4. All’uscita del veicolo viene calcolato il costo in base al tempo di permanenza.
  5. Praticare degli sconti in base al tempo di permanenza.
  6. Gestire il fatturato giornaliero.

 

  1. Gestione sala

Il programma deve gestire una multisala cinematografica avente le seguenti funzionalità:

  1. Ogni sala ha un nome.
  2. In ogni sala elencare gli eventi del giorno: nome dell’evento, orario di visione, costo dell’evento e numero di posti disponibili.
  3. Gestione dell’utente che prenota uno o più biglietti e calcolo del costo (costo anche del diritto di prenotazione).
  4. Gestione dei posti disponibili.
  5. Praticare sconti in base all’età (bambini e anziani pagano di meno).
  6. Praticare sconti a chi è socio.
  7. Gestione del fatturato giornaliero.

 

  1. Gestione pizzeria

Il programma deve gestire una pizzeria avente le seguenti funzionalità:

  1. Elenco delle pizze e relativi costi e ingredienti.
  2. Costi per eventuali ingredienti aggiuntivi.
  3. Gestione del cliente che prenota una o più pizze per un certo orario e calcolo del costo.
  4. Gestione del fatturato giornaliero.

 

  1. Gestione campionato da 4 squadre (gestione punti e gironi)

Il programma deve gestire un campionato sportivo costituito da 4 squadre avente le seguenti funzionalità:

  1. Per ogni partita registrare i goal fatti da ogni squadra.
  2. Calcolare i punti fatti da ogni squadra in ogni partita.
  3. Generare la classifica aggiornata.

 

  1. Gestione biblioteca

Il programma deve gestire i prestiti di libri di una biblioteca avente le seguenti funzionalità:

  1. Elenco dei libri disponibili in biblioteca e del numero di copie di ogni libro presenti.
  2. Gestione prestito di una copia ad un utente.
  3. Elenco delle copie di libri in prestito.
  4. Elenco degli utenti che hanno preso in prestito copie di libri.
  5. Gestione del tempo di riconsegna.
  6. Calcolo del numero di copie di libri prestati (giornaliero).

 

  1. Gestione libreria

Il programma deve gestire i libri venduti da una libreria avente le seguenti funzionalità:

  1. Elenco dei libri disponibili in libreria e del numero di copie di ogni libro presenti.
  2. Gestione vendita di una copia ad un cliente.
  3. Elenco degli utenti che hanno acquistato una copie di un libri.
  4. Calcolo del fatturato giornaliero.

 

  1. Gestione distributore automatico di bevande calde

Il programma deve gestire un distributore automatico di bevande calde avente le seguenti funzionalità:

  1. L’utente può inserire solo le seguenti monete: 0.10, 0.20, 0.50, 1.00 e 2.00.
  2. La macchina dà il resto.
  3. Ogni prodotto ha un codice, un nome e un prezzo.
  4. L’utente può decidere la quantità di zucchero: (da zero a un massimo).
  5. L’utente può scegliere il tipo di zucchero (saccarosio, integrale, etc.).
  6. Il base al costo il programma verifica se è possibile prendere il prodotto.
  7. Il programma calcola la quantità venduta nel giorno di un determinato prodotto.
  8. La macchina accetta anche le chiavette che possono essere caricate di soldi.
  9. Aggiungere altre funzionalità che si ritiene opportuno.

 

  1. Prenotazione volo

Il programma deve gestire le prenotazioni dei voli in un aeroporto avente le seguenti funzionalità:

  1. Elencare i voli del giorno: codice del volo, destinazione, orario e posti disponibili.
  2. Prenotare n posti su un determinato volo (facendo attenzione al numero di posti disponibili). Visualizzare il costo totale.
  3. Praticare sconti su determinati voli o su determinati utenti (utenti VIP).
  4. Gestire i costi per bagagli extra, per scegliere un posto e per saltare la fila con il servizio di Speedy Boarding.
  5. Gestire i posti sul velivolo: file+posto.

 

  1. Elenco trasmissioni del giorno

Il programma deve gestire gli eventi trasmessi in televisione in un dato giorno avente le seguenti funzionalità:

  1. Elencare le trasmissioni del giorno: nome dell’evento, canale, tipologia (sport, telefilm, film, intrattenimento, scientifico, etc) e orario.
  2. Ricercare un evento in base all’orario.
  3. Ricercare un evento in base al canale.
  4. Ricercare un evento in base al nome dell’evento.
  5. Ricerche multiple, per esempio: ricercare tutti gli eventi trasmessi dopo le 20.00 di natura scientifica.

 

  1. Quiz-Milionario Mod

Il programma deve simulare il gioco del milionario. Le sue regole sono le seguenti:

  • N aspiranti partecipano al gioco. Solo il concorrente estratto a sorte ha diritto a giocare per un milione di euro.
  • Per vincere il concorrente deve rispondere correttamente a 15 domande.
  • Ogni domanda ha 4 possibili risposte, di cui una sola corretta.
  • Le domande hanno difficoltà crescente, senza limiti di tempo.
  • Le domande 5 e 10 costituiscono dei traguardi intermedi: una volta superati, in caso di risposta sbagliata alla successiva domanda, il concorrente vincerà la cifra corrispondente al traguardo raggiunto. Il concorrente può anche decidere di ritirarsi dal gioco e conservare il premio totalizzato fino a quel momento.
  • Il concorrente dispone dei seguenti aiuti:
    • 50:50: il computer elimina due delle possibili opzioni errate.
    • Telefonata a casa: simulare la chiamata a casa; l’amico o il parente a casa gli fornisce una risposta.
    • Aiuto del pubblico: simulare la votazione del pubblico.
    • Switch: la domanda viene cambiata con un’altra di uguale valore e difficoltà ma di tutt’altro argomento.

 

  1. Dizionario tecnico

Il programma deve gestire un dizionario tecnico ITA/ENG avente le seguenti funzionalità:

  1. Memorizza in un file di testo i termini INGLESI con le relative traduzioni in ITALIANO, per esempio

COMPUTER    CALCOLATORE

TASK               PROCESSO

KEYBOARD     TASTIERA

PROGRAM      PROGRAMMA

CALCULATOR CALCOLATORE

PICTURE         IMMAGINE

PROCESSOR    PROCESSORE

  1. Ricercare (ricerca semplificata) la traduzione di un termine da ITA a ENG oppure da ENG a ITA. Una ricerca si dice semplificata se si verificare se una sotto sequenza di caratteri è contenuta in una data sequenza. Per esempio: inserendo PRO mi trova PROCESSO, PROGRAMMA; inserendo MM trova PROGRAMMA e IMMAGINE; inserendo RE trova CALCOLATORE e PROCESSORE.
  2. Il software deve permettere l’inserimento di un nuovo termine, la cancellazione di un termine o la modifica di un termine.
  3. Visualizzare i termini in ordine alfabetico: l’utente, per esempio digitando la lettera B gli vengono mostrati tutti i termini che iniziano con B ordinati alfabeticamente.
  4. Categorizzare i termini: informatica, matematica, scienze, etc. Ricercare i termini in base alla categoria.

 

  1. Gioco dell’oca educativo

Il programma deve simulare il gioco dell’oca, in cui il giocatore deve rispondere a delle domande per poter lanciare i dadi, avente le seguenti funzionalità:

  • Numero di Giocatori: da 2 a 6.
  • Scacchiera: il tabellone da gioco è formato da 90 caselle. Ogni giocatore è contraddistinto da una differente pedina e sono compresi due dadi.
  • Regole: all’inizio occorre stabilire il giocatore che ha diritto di lanciare per primo i dadi: il giocatore che lanciando i dadi fa il punteggio più alto sarà il primo a iniziare. Si procederà poi in senso orario. Il prescelto comincerà lanciando i dadi e muovendo la propria pedina di un numero di caselle pari alla somma uscita dai dadi. Alcune caselle rappresentano delle oche. Il giocatore che arriva su di esse può spostarsi in avanti di un numero di caselle pari a quelle ottenute con il lancio dei dati. Le caselle oca sono solitamente poste ogni nove caselle normali. Ci sono poi altre caselle speciali che sono:
    • Il ponte (6) dove si paga la posta e si ripete il movimento come nelle caselle con le oche.
    • La locanda (19) in cui si sta fermi 3 turni.
    • Il pozzo (31) e la prigione (52) si rimane bloccati finché non arriva un’altra pedina che prenderà il nostro posto.
    • Il labirinto (42) che fa tornare alla casella 33.
    • Lo scheletro (58) che fa retrocedere fino alla casella 1.
    • La casella di arrivo va raggiunta con un lancio di dadi esatto altrimenti si retrocede dei punti in surplus.
  • Scopo: il giocatore che giunge per primo alla casella finale è il vincitore.
  • Regole didattiche:
    • Il giocatore di turno deve rispondere a una domanda didattica (storia, geografia, etc); se risponde correttamente può lanciare i dadi altrimenti passa il turno.
    • Ci sono caselle chiamate IMPREVISTI (si avanza o si indietreggia di un certo numero di caselle) e DOMANDE (il giocatore di turno se risponde correttamente alla domanda ha diritto a fare un altro lancio).

 

Supponiamo che sia il turno del giocatore 1 e che lanciando i dadi vada oltre il 90:

sommaDadi=casuale(1,6)+casuale(1,6)

posGiocatore1=posGiocatore1+sommaDadi

if(poGiocatore1>90){

temp= posGiocatore1-90; //avanzo di temp posizioni per arrivare a 90

posGiocatore1=90-temp; //torno indietro di 90-temp caselle

}

NB

Le due istruzioni

temp= posGiocatore1-90; //avanzo di temp posizioni per arrivare a 90

posGiocatore1=90-temp; //torno indietro di 90-temp caselle

sono accorpabili in un’unica istruzione:

posGiocatore1=180- posGiocatore1;

 

 

  1. Gestione acquisto biglietto treni tratta VARESE -MILANO

Il programma deve gestire l’acquisto dei biglietti lungo la tratta ferroviaria VARESE-MILANO avente le seguenti funzionalità:

  • Elencare l’orario dei treni diretti da VARESE a MILANO.
  • Permettere ad un utente di acquistare uno o più biglietti.
  • Gestire le tariffe dei biglietti che variano a seconda che i treni siano locali (fermano a tutte le stazioni), regionali (fermano solo ad alcune stazioni) o diretti (non fermano in nessuna stazione). Se si acquista un biglietto per un treno diretto l’utente è obbligato a scegliere l’orario in quanto i posto sono numerati (riservati) e limitati; occorre quindi verificare la disponibilità di posti su quel treno diretto.
  • Gestire il fatturato giornaliero.
  • Per i clienti VIP praticare sconti in base al numero di biglietti acquistati.

 

  1. Frigorifero intelligente

Il programma deve gestire i prodotti conservati in frigorifero avente le seguenti funzionalità:

  • Elencare i prodotti presenti nel frigorifero (codice, nome, peso, data scadenza).
  • Elencare i prodotti mancanti dal frigo.
  • Visualizzare i prodotti scaduti.
  • Visualizzare i prodotti che scadranno nei prossimi N giorni.
  • Cercare un prodotto.
  • Scrivere dei post-it (promemoria).

 

  1. Autonoleggio

Il programma deve simulare la gestione di un autonoleggio di vetture avente le seguenti funzionalità:

  • Elencare le vetture disponibili che il cliente può noleggiare: tipo di vettura (automobile, furgoncino, etc), marca, modello.
  • Prenotare una vettura: numero di giorni, costo, dati del cliente.
  • Ricercare una vettura prenotabile in base al tipo, alla marca o al modello.
  • Praticare sconti in base a differenti criteri: numero di giorni, periodo dell’anno (bassa o alta stagione), etc.
  • Fatturato giornaliero dell’autonoleggio.

 

  1. Telecomando TV

Il programma deve simulare il funzionamento del telecomando del TV avente le seguenti funzionalità:

  • Elencare i canali TV (nome canale, posizione numerica sul telecomando, preferito, control_parent); il parametro preferito se è impostato a 1 indica che è un canale fra i preferiti; il parametro control_parent se è impostato a 1 indica un canale protetto visibile solo inserendo un PIN.
  • Ricercare un canale TV in base al nome del canale o alla posizione numerica.
  • Elencare i canali preferiti.
  • Aggiungere un canale ai preferiti.
  • Eliminare un canale dai preferiti.
  • Elencare i canali con control_parent attivo.

 

  1. Self Service

Il programma deve simulare un self service che consente di fornire i seguenti servizi:

  • ricariche telefoniche (nome gestore e prezzo),
  • ricariche pay tv,
  • ricariche mezzi di trasporto (tipo trasporto, urbano o extraurbano prezzo),
  • ricariche parcheggio (tempo e prezzo),
  • funzione di ricerca (farmacie di turno, guardia medica, posizione bagni pubvlici),
  • chiamata taxi.

 

  1. Last Second Tour

Il programma deve simulare un’agenzia viaggi che offre i seguenti servizi:

  • Ogni viaggio ha le seguenti caratteristiche: data_partenza, data_arrivo, numero_giorni, destinazione_citta, prezzo_per_persona.
  • Inserire i viaggi last second.
  • Elencare i viaggi last second che l’agenzia può fornire.
  • Elencare i viaggi last second che hanno come destinazione una città desiderata impostata dal cliente.
  • Elencare i viaggi last second che hanno un prezzo inferiore a un valore impostato dal cliente.
  • Elencare i viaggi last second che hanno come destinazione una città desiderata impostata dal cliente e che hanno anche un prezzo inferiore a un valore impostato dal cliente.
  • Eliminare i viaggi scaduti.

 

  1. Gestione catalogo musicale.

Il programma deve gestire il catalogo personale di musica. Il sistema ha le seguenti funzionalità.

  • Inserire le canzoni: titolo, cantante, genere.
  • Visualizzare le canzoni in ordine alfabetico per titolo.
  • Ricercare una canzone il base al titolo o all’autore o al genere.
  • Elencare le canzoni di un cantante.
  • Modificare una canzone.
  • Eliminare una canzone.

 

  1. Tutor Control

Il programma deve simulare un sistema di monitoraggio dei veicoli in infrazione (superamento dei limiti di velocità) in un tratto autostrade.

In un tratto d’autostrada, lungo L Km, viene installato il sistema di controllo Safety Tutor utilizzato per il rilievo della velocità media:

Vm=L/(ta-tB)

Al passaggio di un veicolo al punto iniziale A e al punto finale B, dei dispositivi (sensori di posizione e fotocamere) rilevano i dati del veicolo (targa) e l’istante di tempo in cui è passato (tA e tB).

A
B
L Km

Si richiede di realizzare le seguenti funzionalità:

  1. Inserimento dei dati (orario e targa) di tutti i veicoli passati nel tratto AB nell’arco di un mese. L’orario è espresso in ore, minuti e secondi e deve essere trasformato in secondi.

tA=OreA*60*60+MinutiA*60+SecA

tB=OreB*60*60+MinutiB*60+SecB

  1. Estrazione dei dati dei soli veicoli che hanno commesso infrazione nel tratto AB (orario, targa e velocità media).
  2. Determinazione e visualizzazione del tipo di sanzione in base alle norme di legge vigenti.
  3. Supponendo di suddividere il tratto AB in due parti, AC e CB con C un punto generico del tratto AB, determinare a quale velocità media massima il veicolo deve percorre la seconda parte CB, per evitare sanzioni, se nella prima parte AC ha viaggiato ad una velocità media superiore di deltaV rispetto al limite imposto.
  4. Progettare un sistema di controllo della velocità da installare sul veicolo, che consenta di regolare automaticamente la velocità istantanea ad un valore preimpostato, comunque inferiore al limite consentito, rispettando altresì le distanze dai veicoli più lenti che vi precedono sulla stessa corsia.

 

  1. Recensione Film

Il programma deve gestire le valutazioni che gli utenti danno ai film in prima visione. Il sistema offre i seguenti servizi:

  • Inserire i film (Titolo, Genere) in prima visione.
  • Inserire le valutazioni che un utente assegna a un film: ogni utente può votare uno o più film. L’utente nell’assegnare una valutazione può scegliere fra varie opzioni (come riportato nell’elenco seguente).
  • Stilare la classifica dei film più raccomandabili, più consigliabili, più complessi, più futili e più sconsigliati.
  • Stilare la classifica dei generi di film più raccomandabili, più consigliabili, più complessi, più futili e più sconsigliati.

 

Valutazioni Globali

  • Raccomandabile: film positivo o comunque privo di elementi negativi, di elevato valore formale, ricco di contenuti etico-culturali.
  • Consigliabile: film sostanzialmente positivo, perciò destinato alla programmazione ordinaria.
  • Complesso: film che non può essere accettato globalmente per la presenza di alcuni aspetti fortemente problematici dal punto di vista morale.
  • Futile: film privo di autentici contenuti etico-culturali e/o di valori formali, trattati comunque con superficialità.
  • Sconsigliato – Non utilizzabile: film non proponibile per la mancanza di contenuti etico-culturali e per un modo narrativo immorale o licenzioso.

 

  1. Gestione carrello acquisti al McDonald’s

Il programma deve simulare il funzionamento dei nuovi terminali utilizzati per acquistare i prodotti al McDonalds. Il sistema ha le seguenti caratteristiche:

  • Inserire i prodotti acquistabili: nome, prezzo e descrizione.
  • Visualizzare l’elenco dei prodotti acquistabili.
  • Acquistare uno o più prodotti creando il carrello (l’ordine).
  • Il carrello contiene l’elenco dei prodotti (nome prodotto, quantità e prezzo) e il prezzo totale. Consentire al cliente di togliere un prodotto dal carrello, o modificare l’ordine.
  • Visualizzare il numero di clienti in attesa e il cliente prossimo a essere servito.

 

  1. Store Online

Il programma deve simulare l’acquisto di prodotti da uno store online. Il sistema ha le seguenti caratteristiche:

  • Inserire i prodotti dello store (nome, marca, categoria, prezzo unitario, quantità disponibili).
  • Ricercare un prodotto nello store in base al nome o alla categoria.
  • Creare il carrello acquisti: nel carrello sono elencati i prodotti che un utente intende acquistare fra quelli disponibili nello store. Ogni riga del carrello contiene le seguenti informazioni: nome-prodotto, quantità, prezzo unitario e prezzo totale (prezzo unitario X quantità).
  • Il carrello fornisce informazioni anche sul costo finale (somma dei prezzi totali) comprensivo del costo relativo alle spese di spedizioni che possono variare in base al numero di quantità totali presenti nel carrello stesso).

 

  1. Prenotazione visite mediche

Il programma deve gestire le prenotazioni delle visite in uno studio medico. Il sistema ha le seguenti funzionalità:

  • Visualizzare per il mese in corso gli orari ancora disponibili e quindi prenotabili.
  • Inserire i dati degli utenti registrati (nome, cognome, email, password).
  • Registrare un utente che prenota una visita.
  • Elencare gli utenti che hanno prenotato (nome, cognome, giorno, orario).

 

  1. Gestione sportelli di un ufficio pubblico

Il programma deve gestire gli sportelli di un ufficio pubblico. Il sistema ha le seguenti funzionalità:

  • L’ufficio offre tre differenti servizi (A, B, C) disponibili in uno dei quattro sportelli (S1, S2, S3, e S4).
  • Per ogni servizio l’utente deve prendere il relativo numero/servizio e aspettare il proprio turno; per esempio se prende 32/A significa che desidera usufruire del servizio A e se attualmente è servito il 28/A significa che davanti a lui ci sono ancora altre 3 persone.
  • Simulare il prelievo da parte di un utente di un numero/servizio.
  • Visualizzare quanti numeri mancano prima di essere serviti. Visualizzare una notifica del tipo “fra tre numeri è il tuo turno”.
  • Visualizzare il display che riporta quali sono i numeri servizi per ogni servizio in ogni sportello.
  1. Personal Training

Sviluppare un software per memorizzare i tempi di allenamento per la preparazione ad una gara di atletica leggera (x metri, dove x è impostato dall’utente). Il sistema ha le seguenti funzionalità:

  • Per ogni prova registrare i tempi degli allenamenti: data (giorno, mese, anno), numero di giri, tempo sul giro, metri per ogni giro.
  • Visualizzare per ogni prova il tempo totalizzato, il miglior giro, il peggior giro.
  • Visualizzare le prove in cui l’atleta ha ottenuto i migliori tre tempi.
  • Effettuare altre statistiche utili.
  • Gestire le calorie consumate.
  • Realizzare un cronometro.

 

  1. Gestione prenotazioni al bar della scuola

Il programma deve simulare la prenotazione di prodotti al bar della scuola. Il sistema ha le seguenti funzionalità:

  • Elencare i prodotti disponibili (nome prodotto, quantità disponibili, prezzo unitario).
  • Consentire ad ogni persona di prenotare uno o più prodotti in quantità desiderate in base alle quantità disponibili.
  • Visualizzare il costo totale dei prodotti prenotati.

 

  1. Gestione iscrizioni assemblee di istituto

Il programma deve simulare le iscrizioni alle assemblee di istituto in una scuola. Il sistema ha le seguenti funzionalità:

  • Elencare le possibili assemblee di istituto – gruppi tematici. Ogni assemblea ha le seguenti caratteristiche: nome del gruppo tematico, numero di posti max, ora.
  • Le assemblee sono distribuite i due turni differenti in base all’orario. Turno 1: 8.00 – 10.30, Turno 2: 10.40 – 13.10.
  • Consentire ad ogni studente di iscriversi a un corso verificando la disponibilità di posti.
  • Ogni studente può iscriversi a una sola assemblea per turno.
  • Registrare anche gli eventuali alunni che non intendono partecipare a nessuna assemblea.
  • Visualizzare per ogni turno l’elenco degli iscritti ad ogni assemblea.

 

  1. Gestione vendita biglietti per un evento

Il programma deve simulare la prenotazione di un biglietto per un evento musicale. Il sistema ha le seguenti funzionalità:

  • Inserire gli eventi prenotabili: data, nome evento, artista, prezzo.
  • Elencare gli eventi.
  • Consentire a un utente di prenotare un evento: numero biglietti e prezzo.
  • Gestire i posti rimasti per ogni evento.
  • I prezzi variano a seconda della zona all’interno dell’ambiente in cui si terrà l’evento.