Sei sulla pagina 1di 6

#include <stdio.h> // Para el manejo de archivos #include <string.h> // Para el manejo de cadenas #include <conio.

h> // Para el manejo de clrscr #include <iostream.h> // Para el manejo de cout #include <ctype.h> // Para el uso de toupper struct tipo_registro { int codigo; char apellidos[30]; int pc1; int pc2; int pc3; int exp; int exf; };

struct tipo_registro Registro; FILE *alias; alias = fopen(ARCHIVO.TXT, ab); void main() { char dec; do{ clrscr(); cout<<"A.REGISTRAR";

cout<<"\nB.MOSTRAR"; cout<<"\nC.MODIFICAR"; cout<<"\nD.ELIMINAR"; cout<<"\nE.SALIR"; do{ do { dec = toupper(getch());

}while(!isalpha(dec)); }while(dec<'A' || dec>'E');

switch(dec) { case 'A':{ ALTA_DIRECTA() ; break;}

case 'B' : { CONSULTA_DIRECTA(); break;}

}while(dec!='E');

getch(); } void ALTA_DIRECTA(void) { int codigo; // Variable local para el numero de producto clrscr(); cout << "\n\rALTAS DE REGISTROS DE ALUMNOS"; alias=fopen("PRODUCTO.DIR","rb+"); // Intenta abrir el archivo PRODUCTO.DIR // en modo de lectura/escritura if(alias==NULL) alias=fopen("PRODUCTO.DIR","wb"); // Crea el archivo en caso de no existir cout << "\n\n\n\rNumero de producto: "; cin >> codigo; dir_fisica=no_prod*sizeof(Registro); // Calculo de la dir. fisica fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo fread(&Registro,sizeof(Registro),1,alias); // Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias" if(Registro.codigo==codigo) { cout << "\n\n\n\rRegistro duplicado !!!"; fclose(alias); getch(); return; }

cout << "\n\rApellidos: "; gets(Registro.apellidos); cout << "\n\rPractica1 : "; cin >> Registro.pc1; cout << "\n\rPractica2 : "; cin >> Registro.pc2; cout << "\n\rPractica2 : "; cin >> Registro.pc3; cout << "\n\rPractica2 : "; cin >> Registro.exp; cout << "\n\rPractica2 : "; cin >> Registro.exf; Registro.codigo=codigo; fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo fwrite(&Registro,sizeof(Registro),1,alias); // Grabar el Registro completo fclose(alias); // Cierra el archivo cout << "\n\n\n\rAlumno registrado !!!"; cout << "\n\r<<< Oprima cualquier tecla para continuar >>>"; getch(); return; }

void CONSULTA_DIRECTA(void) { int codigo; // Variable local para el numero de producto que desea consultar clrscr(); cout << "\n\rCONSULTA DE REGISTROS DE PRODUCTOS"; alias=fopen("PRODUCTO.DIR","rb"); // Intenta abrir el archivo PRODUCTO.DIR // en modo de solo lectura if(alias==NULL) {

cout << "\n\n\n\rNo existe el archivo !!!"; cout << "\n\r<<< Oprima cualquier tecla para continuar >>>"; getch(); return; } cout << "\n\n\n\rCodigo: "; cin >> codigo; dir_fisica=codigo*sizeof(Registro); // Calculo de la dir. fisica fseek(alias,dir_fisica,SEEK_SET); //Posicionar el apuntador del archivo fread(&Registro,sizeof(Registro),1,alias); archivo "alias" if(Registro.codigo==codigo) { cout << "\n\Codigo Apellidos Pc1 Pc2 Exp Exf"; cout << "\n\r-----------------------------------------------------------------------"; // Lee el "Registro", de tamano=sizeof(Registro) del

printf("\n\r%3d\t%30s\t%3d\t\t$%4.2f\t%c",Registro.codigo,Registro.apellidos,Registro.pc1,Regis tro.pc2,Registro.pc3, Registro. exp, Registro.exf); } else { cout << "\n\n\n\rNo existe ese registro !!!"; } fclose(alias); cout << "\n\n\n\n\r<<< Oprima cualquier tecla para continuar >>>"; getch();

return; }

Potrebbero piacerti anche