LABORATORIO DI INFORMATICA L-A
APPELLO DEL 17/12/2002 - PRIMO TURNO
ESERCIZIO 1

È dato un file di testo denominato LOG.TXT che contiene l'elenco degli accessi ad un sito web di un intero mese.
Il file contiene al massimo 200 righe e ogni riga contiene nell'ordine:

  1. Una data  nel formato gg/mm/aaaa (giorno mese e anno)
  2. Uno o più spazi
  3. Un'ora nel formato hh:mm:ss (ore, minuti e secondi)
  4. Uno o più spazi
  5. Un numero intero che indica il giorno della settimana (0=lunedì, 1=martedì, ... 6=domenica)

Si chiede di scrivere un programma C, denominato conteggio, con le seguenti caratteristiche:

Il programma dovrà essere suddiviso in 3 file.

  1. funzioni.h: dovrà contenere le definizioni dei tipi e le dichiarazioni delle funzioni sotto descritte
  2. funzioni.c: dovrà contenere le definizioni delle funzioni dichiarate in funzioni.h
  3. main.c: dovrà contenere solo la funzione main()

Il programma dovrà comprendere:

  1. Un tipo di struttura denominato riga destinato a contenere i dati di una riga del file di log.
  2. Un tipo di struttura denominato log che contiene un array di strutture di tipo riga e il numero di righe effettivamente lette.
  3. Una funzione denominata leggi() che, dato il nome del file riempia una struttura di tipo log contenente le righe lette dal file.
  4. Una procedura denominata conta() che sulla base della struttura contenente le righe lette dal file riempia un array di interi, dimensionato in modo da avere un elemento per ogni giorno della settimana (0..6). Ogni elemento dell'array dovrà riportare il numero totale di accessi nel corrispondente giorno della settimana.
  5. Una funzione denominata scrivi() che scriva in un file di testo, passato come parametro, una riga per ogni elemento dell'array di contatori riempito da conta(), passato come secondo parametro. Ogni riga avrà il seguente formato:

    - Numero del giorno della settimana (0..6)
    - Uno spazio
    - Numero di accessi per tale giorno

Il programma, utilizzando le suddette funzioni, dovrà:

  1. Leggere il file LOG.TXT  - usando la funzione leggi() ) segnalando a video eventuali problemi
  2. Usare la funzione conta() per conare il numero degli accessi per ogni giorno della settimana
  3. Scrivere nel file di testo ACCESSI.TXT, usando la funzione scrivi() il conteggio degli accessi per ogni giorno della settimana, segnalando a video eventuali problemi.