program file_utente;uses crt;
type compactdisk=record {dichiarazione record}
nome:string[20];
cognome:string[20]; {campi del record}
consumo:real;
codice:string[20];
end;
ut=file of utente; {inizializzazione struttura dati}
var f:ut;
rec:utente; {dichiarazione delle variabili utilizzate}
a:integer;
x:string;
sce:integer;
totalemese:real;
procedure crea(var f1:ut); {procedura creazione}
begin
rewrite(f1); {apertura file}
reset(f1);
repeat
writeln('INSERISCI I DATI DELL'UTENTE);
writeln('-------------------------------------------------');
writeln('inserisci il NOME DELL'UTENTE');
readln(rec.nome); { inserimento campo }
writeln('inserisci il cognome dell'utente');
readln(rec.cognome);
writeln('inserisci il consumo giornaliero dell'utente');
readln(rec.consumo); { inserimento campo } { inserimento campo }
writeln('inserisci codice utente');
readln(rec.codice); { inserimento campo }
writeln('--------------------------------------------------');
writeln('vuoi inserire un altro utente? s/n'); {richiesta di un nuovo elemento}
readln(x); { lettura scelta}
writeln('');
write(f1,rec);
clrscr;
until x='n'; {scelta}
close(f1); {chiusura file}
end; {fine}
procedure stampa(var f1:ut); {procedura stampa}
begin
clrscr; {inizio}
reset(f1); {apertura file}
while not eof(f1) do {ciclo precondizionato}
begin {inizio}
read (f1,rec);
writeln('nome utente: ',rec.nome); {stampa nome}
writeln('cognome utente: ',rec.cognome); {stampa cognome}
writeln('codice utente: ',rec.codice); {stampa codice}
writeln('consumo giornaliero: ',rec.consumo:5:5 ,' euro'); {stampa consumo}
consumomensile:(rec.consumo*30);
writeln(' consumo mensile: ',totalemese:5:5,'euro');
writeln('');
end;
close(f1); {chiusura}
end;
procedure inserimento(var f1:ut); {procedura inserimento}
begin
clrscr; {inizio}
reset(f1);
while not eof(f1) do {apertura file}
read (f1,rec);
writeln('inserisci il nomte del nuovo utente'); {lettura campo}
readln(rec.nome);
writeln('inserisci ilcognome del nuovo utente');{lettura campo}
readln(rec.cognome);
writeln('inserisci il consumo giornaliero'); {lettura campo}
readln(rec.consumo);
writeln('inserisci il codice del nuovo utente'); {lettura campo}
readln(rec.codice);
write(f1,rec);
Close(f1);
{chiusura file}
{fine}
begin {inizio}
clrscr;
assign(f,'cd.dat'); {assegnazione dello spazio nella memoria di massa}
crea(f); {creazione}
clrscr;
repeat {ripeti}
clrscr;
writeln('MENU DI SCELTA utente'); {menu al video}
writeln('---------------------');
writeln(' 1)inserisci un nuovo utente');
writeln(' 2)stampa lista degli utenti');
writeln(' 8)uscire');
writeln('---------------------');
writeln('');
repeat {ripeti}
writeln('quale paragrafo vuoi consultare?'); {scelta}
readln(sce); {lettura variabile scelta}
until (sce>0) and (sce<4) or (sce=8); {fine ciclo fino a che}
case sce of {case}
1: begin
clrscr;
inserimento(f);
writeln('...premere invio per continuare...');
readln();
end; {procudure scelte}
2: begin
clrscr;
stampa(f);
readln;
writeln('...premere invio per continuare...');
readln();
end;
end;
end;
until (sce=8); {fine ciclo finoa che sce =8}
end. {fine}