#include #include #include # include # include # include using namespace std; void intro(); void modif(); void borra(); void consu(); void error(); void espacios(int); void menu(); struct hospital { int codmedico; int numpaciente; int edadpaciente; int pesopaciente; int telmedico; int telpaciente; int fechainicio; int fechaprox; char nombremedico[50]; char apellidomedico[50]; char especialidad[50]; char nombrepaciente[50]; char apellidopaciente[50]; char diagnostico[50]; }datos; FILE *fichero; char nom[30]; int tama; void espacios(int final){ for(int i=1; i>datos.nombremedico; cout <>datos.apellidomedico; cout<>datos.especialidad; cout<>datos.codmedico; cout<>datos.telmedico; cout<>datos.nombrepaciente; cout <>datos.apellidopaciente; cout<>datos.diagnostico; cout<>datos.numpaciente; cout<>datos.edadpaciente; cout<<"Peso del paciente"<>datos.pesopaciente; cout<<"Telefono del paciente"<>datos.telpaciente; cout<<"Fecha de inicio"<>datos.fechainicio; cout<<"Fecha de proxima cita"<>datos.fechaprox; cout<>opc; if(opc==1){ fwrite(&datos,sizeof(datos),1,fichero); } cout<> w; }while (w==1); fclose(fichero); } /* modificar registros*/ void modif() { int opc=0; nom[0]='\0'; tama=sizeof(datos); if((fichero=fopen("c:\\Hospital.dat","r+b"))==NULL)error(); espacios(15);cout<<"Introduce nombre a modificar:"<>nom; while(!feof(fichero)) { fread(&datos,sizeof(datos),1,fichero); if(strcmp(datos.nombremedico,nom)==0) { espacios(15);cout<<"1.- Nombre : "<>opc; switch(opc) { case 1 :cout<<"Ingrese el nuevo dato: "<>datos.nombremedico; break; case 2 :cout<<"Ingrese el nuevo dato: "<>datos.apellidomedico;break; case 3 :cout<<"Ingrese el nuevo dato: "<>datos.especialidad;break; case 4 :cout<<"Ingrese el nuevo dato: "<>datos.codmedico;break; case 5 :cout<<"Ingrese el nuevo dato: "<> datos.telmedico;break; case 6 :cout<<"Ingrese el nuevo dato: "<>datos.nombrepaciente;break; case 7 :cout<<"Ingrese el nuevo dato: "<>datos.apellidopaciente;break; case 8 :cout<<"Ingrese el nuevo dato: "<>datos.diagnostico;break; case 9 :cout<<"Ingrese el nuevo dato: "<>datos.numpaciente;break; case 10 :cout<<"Ingrese el nuevo dato: "<> datos.edadpaciente;break; case 11 :cout<<"Ingrese el nuevo dato: "<>datos.pesopaciente;break; case 12 :cout<<"Ingrese el nuevo dato: "<>datos.telpaciente;break; case 13 :cout<<"Ingrese el nuevo dato: "<>datos.fechainicio;break; case 14 :cout<<"Ingrese el nuevo dato: "<>datos.fechaprox;break; case 15 :fseek(fichero,-tama,SEEK_CUR); fwrite(&datos,sizeof(datos),1,fichero);break; default:break; } } break; } } fclose(fichero); } /* borrar registros */ void borra() { int opc2; nom[0]='\0'; tama=sizeof(datos); if((fichero=fopen("c:\\Hospital.dat","r+b"))==NULL)error(); espacios(15);cout<<"Introduce nombre a borrar:"<>nom; while(!feof(fichero)) { fread(&datos,sizeof(datos),1,fichero); if(strcmp(datos.nombremedico,nom)==0) { espacios(15);cout<<"1.- Nombre : "<> opc2; if(opc2==1) { strcpy(datos.nombremedico,"*"); fseek(fichero,-tama,SEEK_CUR); fwrite(&datos,sizeof(datos),1,fichero); break; } } } fclose(fichero); } /*consultar un registro*/ void consu() { strcpy(nom,""); if((fichero=fopen("c:\\Hospital.dat","rb"))==NULL)error(); espacios(15);cout<<"Introduce nombre a consultar:"<>nom; while(!feof(fichero)) { fread(&datos,sizeof(datos),1,fichero); if(strcmp(datos.nombremedico,nom)==0) { espacios(15);cout<<"1.- Nombre : "<> opc; switch(opc) { case 1:intro();break; case 2:modif();break; case 3:borra();break; case 4:consu();break; case 5:exit(0); default: break; } }while (opc != 5); } int main() { menu(); return 0; }