SECONDA FASE DELLO SVIPLUPPO DEL PROGRAMMA

Modulo MAIN
Completamente sviluppato
Modulo STATO
Interfaccia parzialmente sviluppata
Modulo SCHEDA
Interfaccia parzialmente sviluppata
Modulo ATTVITÀ BASE
Interfaccia completamente sviluppata e corpo parzialmente sviluppato
Modulo COMANDI
Interfaccia parzialmente sviluppata e corpo parzialmente sviluppato
Modulo RISPOSTE


MODULO MAIN

var  COM: COMMANDO;
     C: CHAR;

begin
  writeln('Vuoi recuperare lo stato iniziale ? (S/N)?');
  readln(C);
  if C= 'S' then RECUPERA_STATO
  else STATO_VUOTO;
  repeat
    LEGGI_COMMANDO(COM);
    ESEGUI(COM);
  until  E_FINIRE(COM);
  SALVA_STAT0;
end.

MODULO ATTIVITÀ BASE

procedure ESEGUI(COM:COMMANDO);
{ Usa la variabile globale ARCHI }

  procedure INSER;
  var NOME, COGNOME: PAROLA;
      M: MATRICOLA;
      G: GRUPPO;
      S: SCHEDA;
  begin
    LEGGI_PAROLA(NOME);
    LEGGI_PAROLA(COGNOME);
    LEGGI_MAT(M);
    LEGGI_GRUPPO(G);
    SCHEDA_INIZIALE(NOME,COGNOME,M,G,S);
    AGGIUNGI_SCHEDA(S);    
  end; {INSER}
.....
begin {ESEGUI}
case COM of
  INSERISCI: INSER;
  CANCELLA: CANC;
  CAMBIA_GRUPPO: CAMBIA_G;
  VOTO_ORALE: VOTO_O;
  VOTO_SCRITTO: VOTO_S;
  VOTO_PROGETTO: VOTO_P;
  PASSATO: PASS;
  STAMPA_GRUPPI: STAMPA_G;
  STAMPA_MATRICOLA: STAMPA:M;
  STAMPA_COGNOME: STAMPA_C;
  STAMPA_PASSATI: STAMPA_PAS;
  STATISTICHE: STA;
  FINE:
end; 
end; {ESEGUI}
sviluppo successivo del modulo

MODULO COMANDI

type  COMANDO =
(INSERISCI, CANCELLA, CAMBIA_GRUPPO, VOTO_ORALE, VOTO_SCRITTO, VOTO_PROGETTO,
 PASSATO, STAMPA_GRUPPI, STAMPA_MATRICOLA, STAMPA_COGNOME,
 STAMPA_PASSATI, STATISTICHE, FINE); 

procedure LEGGI_COMMANDO(var COM: COMANDO);
.....
end;

function E_FINE(COM: COMANDO): bool;
....
end;
sviluppo successivo del modulo

MODULO STATO

type STATO = .....

var  ARCHI: STATO;

procedure RECUPERA_STATO;
{ recupero lo stato corrente dalla memoria di massa e lo mette in ARCHI }
.....
end;

procedure SALVA_STATO;
{salva lo stato corrente, contenuto nella variabile ARCHI, sulla memoria di massa}
.....
end;

procedure STATO_VUOTO;
{assegna alla variabile ARCHI l'archivio vuoto}
.....
end;

procedure AGGIUNGI_SCHEDA(S: SCHEDA);
{aggiunge la scheda S all'archivio contenuto nella variabile ARCHI }
.....
end;

sviluppo successivo del modulo



MODULO SCHEDA

type PAROLA =  ....
     MATRICOLA = .....
     GRUPPO= ..... 
     SCHEDA = ....

procedure LEGGI_PAROLA(var P: PAROLA);
......
end;

procedure LEGGI_MAT(var M: MATRICOLA);
......
end;

procedure LEGGI_GRUPPO(var G: GRUPPO);
......
end;

procedure SCHEDA_INIZIALE(N, M: PAROLA; MAT: MATRICOLA; G: GRUPPO;
                          var S: SCHEDA);
......
end;
sviluppo successivo del modulo

MODULO RISPOSTE

....
sviluppo successivo del modulo