Correzione prova pratica del 7 luglio 2004
Correzione prova pratica del 7 luglio 2004
Istruzioni:
il commento iniziale rappresenta il giudizio complessivo sul programma. Nei commenti trovate:
- FIXME segnalazione di un errore, non necessariamente sono tutti segnalati e non necessariamente sono tutti presi in considerazione
per il voto finale
- TODO segnala l'assenza di parti di codice
- XXX segnala qualcosa di non chiaro o inutile ai fini del codice, commenti di ordine generale, errori di battitura o suggerimenti
Il codice presentato non è necessariamente identico a quello consegnato in quanto possono essere state effettuate modifiche per
renderlo compilabile e/o per la corretta indentazione.
//XXX forti carenze nella conoscenza del linguaggio
//Longo Giancarlo Emanuele mat.157017 giancarlo_pr@virgilio.it 07.07.2004
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <iostream>
using namespace std;
void file_princ(void);
void inserimento(void);
void compila(void);
void save_all(void);
void stampa(void);
void intestazione(void);
int tabella_dati[7][2];
char risp[8];
int i;
int a;
char uno,due,tre,quattro;
char cinque,sei,sette,otto; //FIXME mai sentito parlare di array?
int main()
{
intestazione();
file_princ();
inserimento();
compila();
save_all();
stampa();
system("PAUSE");
return 0;
}
void file_princ(void)
{ //Leggo il file tabella.txt e inserisco i valori in una tabella
ifstream tab("tabella.txt");
if(!tab) //FIXME struttura dati non adeguata
{
cout <<" Impossibile aprire il file.";
}
while(tab)
{
for(a=0;a<=7;a++)
{
for(i=0;i<=2;i++)
tab >>tabella_dati[a][i]; //FIXME il formato del file era differente
}
}
tab.close();
}
//FIXME del file viene dato il nome, ma non č detto che il contenuto sia sempre lo stesso
void inserimento(void) // inserimento dei dati da utente e creo risp che conterrā i dati inseriti
{
//FIXME le variabili uno,due... non sono inizializzate
cout <<" Inserire i dati letterali."<<endl,endl;
cout <<endl,endl;
cout <<" Il treno delle:"<<" "<<uno<<" "<<"e"<<" "<<due;
cout <<" porta un ritardo di"<<" "<<tre<<" "<<"minuti.";
cout <<" Chissa'se mi rimborseranno i"<<" "<<quattro<<" "<<","<<cinque;
cout <<" euro del biglietto?"<<" ";
cout <<" Il giorno"<<" "<<sei<<" "<<"/"<<sette<<"/2004";
cout <<" ci sara' un'altra riunione alle"<<" "<<otto;
risp[0]=uno; //XXX ???
risp[1]=due;
risp[2]=tre;
risp[3]=quattro;
risp[4]=cinque;
risp[5]=sei;
risp[6]=sette;
risp[7]=otto;
risp[8]='\0';
}
void compila(void) // confronto i singoli dati inseriti prima con quelli che ho nel file e di dovrebbe creare un risp trasformato
{
do{
for(a=0;a<=7;a++)
{
if(tabella_dati[a][1]=risp[a])risp[a]=tabella_dati[a][2]; //FIXME ==, approccio un po' sbagliato
}while(risp[a]!='\0')
}
}
void save_all(void) //salvo nel file testo.txt come dati sotto in nome x poterli richiamare nella stampa.Il file viene sempre sovrascritto
{
ofstream salva("testo.txt");
if(!salva)
{
cout <<" Impossibile scrivere su questo file.";
}
salva << uno=risp[0]; //XXX ?
salva << due=risp[1];
salva << tre=risp[2];
salva << quattro=risp[3];
salva << cinque=risp[4];
salva << sei=risp[5];
salva <<sette=risp[6];
salva <<otto=risp[7];
salva.close();
} //FIXME fuori tema
void stampa(void) //Stampo il testo leggendo dal file testo.txt edesso i numeri corrispondenti alle lettere inserite da utente
{
ifstream stampa("testo.txt");
if(!stampa)
{
cout <<" Impossibile leggere da file.";
}
stampa >>" Il treno delle:"<<" "<<uno<<" "<<"e"<<" "<<due; //FIXME mescola << e >>
stampa >>" porta un ritardo di"<<" "<<tre<<" "<<"minuti.";
stampa >>" Chissa'se mi rimborseranno i"<<" "<<quattro<<" "<<","<<cinque;
stampa >>" euro del biglietto?"<<" ";
stampa <<" Il giorno"<<" "<<sei<<" "<<"/"<<sette<<"/2004";
stampa >>" ci sara' un'altra riunione alle"<<" "<<otto;
stampa.close();
}
void intestazione(void)
{
cout <<endl,endl;
cout <<endl;
cout <<"Fondamenti di informatica A prova pratica del 7/7/04"<<endl,endl;
cout <<"*****************************************************"<<endl;
cout <<"* Di Longo Giancarlo Emanuele mat.157017 *"<<endl;
cout <<"* e_mail: giancarlo_pr@virgilio.it *"<<endl;
cout <<"* *"<<endl;
cout <<"* *"<<endl;
cout <<"* *"<<endl;
cout <<"*****************************************************"<<endl;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT