LABORATORIO DI INFORMATICA L-A
APPELLO DEL 01/04/2003
ESERCIZIO 2

È dato un file di testo che contiene le schedine vincenti del totocalcio per un certo numero di partite.
Il file contiene al massimo 20 righe e ogni riga contiene:

Si chiede di scrivere un programma C, 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:

Tipi di strutture

  1. schedina che contiene i dati di schedina (giorno, mese, anno, risultati e un numero intero num, che servirà per i conteggi successivi)
  2. schedine che contiene un array di strutture di tipo schedina e il numero di schedine effettivamente lette.

Funzioni e procedure

  1. funzione denominata leggi():  dato il nome di un file riempie una struttura di tipo schedine contenente le righe lette dal file. La funzione restituisce 1 se l'operazione è andata a buon fine, altrimenti restituisce 0. 
  2. funzione denominata conta(): data una stringa di risultati restituisce il numero di pareggi (carattere X)
  3. procedura denominata elabora() che elabora una struttura di tipo schedine e mette per ogni schedina il numero ottenuto applicando la funzione conta()
  4. funzione denominata scrivi() che scrive in un file di testo, il cui nome viene passato come parametro, una riga per ogni schedina con il formato

    - gg-mm-aaaa (attenzione il formato è diverso da quello letto dal file, ha il trattino e non la barra!)
    - Uno spazio
    - Il numero di pareggi per quella data

    La funzione restituisce 1 se l'operazione è andata a buon fine, altrimenti restituisce 0.

Il programma, utilizzando le suddette funzioni, dovrà:

  1. Leggere il file SCHEDINE.TXT  - usando la funzione leggi() ) segnalando a video eventuali problemi
  2. Usare la procedura elabora() per determinare il numero di pareggi per ogni schedina
  3. Scrivere nel file di testo STAT.TXT, usando la funzione scrivi(), il risultato dell'elaborazione fatta dalla procedura elabora(), segnalando a video eventuali problemi.