Correzione prova pratica del 9 luglio 2003
Correzione prova pratica del 9 luglio 2003
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 (4) si perde in strutture dati inutilmente complicate, qualche imprecisione
// progetto: gestire gli studenti in un' univerista' //FIXME decisamente no
// COGNOME : FANKEM
// NOME : JEAN JAURES
// CORSO : INGEGNERIA INFORMATICA
// MATRICOLA : 152117 //FIXME manca l'indirizzo di posta elettronica
#include <fstream.h>
#include <iomanip.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
struct file
{
char *x,*y;
struct file* succ;
}; //XXX il programma era semplice, perche' usare strutture dati complicate???
void getfile(file*&,file*);
void stampafile(file*);
file *base=NULL,*ptr;
int i,j;
int partita[2][2]; //FIXME la matrice doveva essere 3x3
int turno;
char *num1,*num2;
int main()
{
num1=new char[1];
num2=new char[1];
for (i=0;i<3;++i)
for (j=0;j<3;++j)
partita[i][j]=0; //XXX corretto, pero' bastava scrivere int partita[3][3]={0}; in fase di definizione dell'array
ifstream fin;
fin.open("tris.txt",ios::in);
if (fin)
{
while ( (fin >> num1) && EOF) //FIXME EOF non serve a niente in questa condizione
{
fin >> num2;
ptr=new file;
ptr->x=num1;
ptr->y=num2;
ptr->succ=NULL;
getfile(base,ptr);
num1=new char[1];
num2=new char[1];
}
}
stampafile(base);
return 0;
}
void getfile(file*& lista, file* elemento)
{
if (lista)
getfile(lista->succ,elemento);
else
lista=elemento;
}
void stampafile(file* lista)
{
while(lista)
{
cout << lista->x;
cout << lista->y << endl;
lista=lista->succ;
}
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT