Come completare questo programma in C++ di gestione di un ar

di il
2 risposte

Come completare questo programma in C++ di gestione di un ar

Using namespace std;

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstring>

#define DIM_MAX 100
#define STR_MAX 100

typedef char Stringa [STR_MAX];

typedef Stringa Elenco[DIM_MAX];

typedef struct Cartella {
Stringa Nome;
Stringa Cognome;
Stringa Reparto;
int pmin;
int pmax;
float temp;
int num_farmaci;
Elenco Farmaci;
};

typedef Cartella Archivio [DIM_MAX];


void visualizza_cartelle(const Archivio, int);
int carica_archivio_cartelle (Archivio, const Stringa, int&);
int salva_archivio_cartelle (const Archivio, const Stringa, int);

// inserire i prototipi delle funzioni da sviluppare


void visualizza_cartelle(const Archivio a, int n) {
int i,j;
for (i=0;i<n;i++) {
cout<<"Nome: "<<a.Nome<<endl;
cout<<"Cognome: "<<a.Cognome<<endl;
cout<<"Reparto: "<<a.Reparto<<endl;
cout<<"Pressione Minima: "<<a.pmin<<endl;
cout<<"Pressione Massima: "<<a.pmax<<endl;
cout<<"Temperatura: "<<a.temp<<endl;
cout<<"Farmaci somministrati: ";
for (j=0;j<a.num_farmaci;j++) cout<<a.Farmaci[j]<<" ";
cout<<endl;
}
}

int carica_archivio_cartelle (Archivio a, const Stringa file, int& n) {
fstream f;
int i, exit;
n=0;
f.open(file,ios::in);
if(!f) exit=0;
else {
while (!f.eof()) {
f>>a[n].Nome>>a[n].Cognome>>a[n].Reparto>>a[n].pmin>>a[n].pmax>>a[n].temp>>a[n].num_farmaci;
for (i=0;i<a[n].num_farmaci;i++) f>>a[n].Farmaci;
n++;
}
exit=1;
}
return exit;
}


int salva_archivio_cartelle (const Archivio a, const Stringa file, int n) {
fstream f;
int i, j, exit;
f.open(file,ios::out);
if(!f) exit=0;
else {
exit=1;
for (i=0;i<n;i++) {
if (i==0) {
f<<a.Nome<<" "<<a[i].Cognome<<" "<<a[i].Reparto<<" "<<a[i].pmin<<" "<<a[i].pmax<<" "<<a[i].temp<<" "<<a[i].num_farmaci<<" ";
for (j=0;j<a[i].num_farmaci;j++) {if (j<a[i].num_farmaci-1) f<<a[i].Farmaci[j]<< " "; else f<<a[i].Farmaci[j];}
f<<endl;
}
else if (i<n-1) {
f<<endl;
f<<a[i].Nome<<" "<<a[i].Cognome<<" "<<a[i].Reparto<<" "<<a[i].pmin<<" "<<a[i].pmax<<" "<<a[i].temp<<" "<<a[i].num_farmaci<<" ";
for (j=0;j<a[i].num_farmaci;j++) {if (j<a[i].num_farmaci-1) f<<a[i].Farmaci[j]<< " "; else f<<a[i].Farmaci[j];}
f<<endl;
}

else {
f<<endl;
f<<a[i].Nome<<" "<<a[i].Cognome<<" "<<a[i].Reparto<<" "<<a[i].pmin<<" "<<a[i].pmax<<" "<<a[i].temp<<" "<<a[i].num_farmaci<<" ";
for (j=0;j<a[i].num_farmaci;j++) {if (j<a[i].num_farmaci-1) f<<a[i].Farmaci[j]<< " "; else f<<a[i].Farmaci[j];}
}
}
}
return exit;
}


int main() {
Archivio a;
int n=0;
int esito;
Stringa file;
cout<<endl<<"Inserisci il nome del file dove e' presente l'archivio: ";
cin>>file;
esito=carica_archivio_cartelle(a,file,n);
if (esito) {
cout<<endl<<"Archivio correttamente caricato..."<<endl;
system("PAUSE");
}
else {
cout<<endl<<"Archivio non caricato..."<<endl;
return -1;
};
cout<<endl<<" -- Pazienti presenti in archivio -- "<<endl;
visualizza_cartelle(a,n);
system("PAUSE");
// inserire qui l'attivazione delle funzioni sviluppate per effettuare dei casi di test

system("PAUSE");
return 0;
}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte