#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define backspace 8
#define enter 13
struct fecha {
int mes;
int dia;
int anno;
} fecha;
struct fecha_reg{
struct fecha fecha_reg;
char nombre [20];
char direccion [30];
int cedula;
int edad;
};
file *registro;
/*DECLARACION DE TIPO DE FUNCIONES*/
void muestradato ();
void crear_archivo (void);
void leerdato (void);
void eliminadato(void);
void listardato (void);
void consultadato (void);
void modificadato (void);
void pantalla (void);
char llamamenu (void);
long filesize (void);
{
unsigned int total;
struct fecha fecha_reg;
total= 0;
while (!feof(registro))
{
if (fread(®, sizeof (struct fecha_reg), 1, registro)==1)
total+=1;
else
return total;
}
return total;
}
/*FUNCION PARA CREAR EL ARCHIVO*/
void crear_archivo (void)
{
register int i;
if ((registro=fopen("registro.dat", "rb"))==null){
gotoxy(21,20); printf("el archivo no existe y se creara");
delay (2000);
if((registro=fopen("registro.dat", "wb"))==null){
cprintf("no se puede abrir registro.dat");
delay (2000);
return;
}
else{
cprintf("archivo creado con exito");
}
}
else{
}
}
fclose (registro);
return;
}
int main()
{
char opcion;
crear_archivo();
do{
opcion=llamamenu();
switch(opcion){
case 'I': leerdato();
break;
case 'M': modificadato();
break;
case 'C': consultadato();
break;
case 'E': eliminadato();
break;
case 'L': listardato();
break;
}
}while (opcion!='S');
return 0;
}
/*MENU PRINCIPAL*/
char llamamenu(void)
{
char ch= ' ';
clrscr ();
gotoxy(30,6); printf("[I]ncluir");
gotoxy(30,8); printf("[C]onsulatar");
gotoxy(30,10); prinrf("[M]odificar");
gotoxy(30,12); printf("[E]liminar");
gotoxy(30,14); printf("[L]istar");
gotoxy(30,16); printf("[S]alir");
gotoxy(26,20); printf("elija su opcion");
ch=toupper(getch());
return ch;
}
void cadena(s,tope,col,lin)
/*FUNCION PARA LEER SOLO CARACTERES*/
char*s;
int tope;
int col;
int lin;
{
int pos;
int inicio=col;
char ch;
pos=0;
for(;;){
gotoxy(col,lin);
ch=leer_caracter();
if(ch !=' ')ch = toupper(ch);
if(ch == backspace && col >inicio){
pos--;
gotoxy(col,lin);
cprintf("%c",' ');
col--;
}
if ((ch >= 'A' && ch <= 'Z' && pos <= tope) || (ch == ' ')) {
gotoxy(col,lin); cprintf("%c",ch);
s[pos] = ch;
pos++;
col++;
}
if(pos== tope || ch== enter)
{
if (pos> 0)
{
s[pos] = '\0';
break;
}
}
}
}
int leer_caracter (void)
Felicidades cumplió con lo solicitado
ResponderEliminar