Upload
dochen-lizama-trancer
View
1
Download
0
Embed Size (px)
DESCRIPTION
programa
Citation preview
//Programa de archivos binarios
// Alumno: Juan Rosendo Lizama Mares
// Prof. Ing Edmundo Barajas Ramirez
// Electronica 3º semestre
#include <stdio.h>
#include <conio.h>
struct alumnos
{
char nombre[50];
int edad;
int estado;
};
alumnos a[50];
int op;
int n,nn,i,j;
void agregaralumnos();
void cambios();
void dardebaja();
void despliegues();
void cambiarnombre();
void cambiaredad();
void despliegueespecifico();
void desplieguetodo();
void guardarcambios();
int main()
{
int t;
FILE *archivo;
char caracter;
char nom[50];
int edad1;
archivo = fopen("proyectofinal.txt","r");
if (archivo == NULL){
printf("\nError de apertura del archivo. \n\n");
}
else {
int h =0;
char texto[50];
int zenb;
printf("nombre");
printf("\t\t\t edad");
while(fgets(a[h].nombre, 50, archivo))
{
printf("\n%s", a[h].nombre);
fgets(texto,50,archivo);
sscanf(texto,"%d",&zenb);
a[h].edad=zenb;
printf("\t\t\t%d", a[h].edad);
h++;
}
fclose(archivo);
getch();
}
do
{
clrscr();
printf("Altas................1\n");
printf("Cambios..............2\n");
printf("Bajas................3\n");
printf("Despliegues..........4\n");
printf("Salir................5\n");
scanf("%d",&op);
switch(op){
case 1:agregaralumnos();
break;
case 2:cambios();
break;
case 3:dardebaja();
break;
case 4:despliegues();
break;
}
getch();
}while(op!=5);
return 0;
}
void agregaralumnos()
{
int i;
printf("Cuantos alumnos desea agregar?:\n");
scanf("%d", &nn);
clrscr();
FILE *fp;
fp = fopen ("proyectofinal.txt", "a" );
for(i=0;i<nn;i++)
{
getchar();
printf("Escriba el nombre del alumno\n");
gets(a[i].nombre);
printf("Escriba la edad del alumno\n");
scanf("%d", &a[i].edad);
fprintf(fp,"%s\n",a[i].nombre);
fprintf(fp,"%d\n",a[i].edad);
}
fclose ( fp );
getch();
}
void cambios()
{
do
{
clrscr();
printf("Cambiar el nombre............1\n");
printf("Cambiar la edad..............2\n");
printf("Regresar al menu principal...3\n");
scanf("%d", &op);
switch(op){
case 1:cambiarnombre();
break;
case 2:cambiaredad();
break;
}
getch();
}while(op!=3);
}
void cambiarnombre()
{
int v;
int n;
printf("Que numero de alumno desea cambiar?\n");
scanf("%d", &v);
printf("Ponga el nuevo nombre\n");
scanf("%s", &a[v].nombre);
guardarcambios();
}
void cambiaredad()
{
int v;
printf("Que numero de alumno desea cambiar\n");
scanf("%d", &v);
printf("ponga la nueva edad\n");
scanf("%d", &a[v].edad);
guardarcambios();
}
void dardebaja()
{
int b;
char s;
printf("Desea dar de baja a algun alumno?\n");
scanf("%s",&s);
if(s==s){
printf("Que numero desea dar de baja?\n");
scanf("%d", &b);
a[b].estado=1;
guardarcambios();
}
getch();
}
void despliegues()
{
do
{
clrscr();
printf("Desplegar todos los alumnos.........1\n");
printf("Desplegar un alumno en especifico...2\n");
printf("Regresar al menu principal..........3\n");
scanf("%d", &op);
fflush(stdin);
switch(op)
{
case 1:desplieguetodo();
getch();
break;
case 2:despliegueespecifico();
getch();
break;
}
getch();
}while(op!=3);
}
void desplieguetodo()
{
FILE *fp;
fp = fopen ("proyectofinal.txt", "a" );
printf("nombre");
printf("\t\t\t edad");
for( int n=0; n<nn; n++)
{
printf("\n%s", a[n].nombre);
printf("\t\t\t%d", a[n].edad);
}
}
void despliegueespecifico()
{
int b;
printf("Cual alumno desea imprimir?\n");
scanf("%d", &b);
printf("nombre");
printf("\t\t\t edad");
printf("\n%s", a[b].nombre);
printf("\t\t\t%d", a[b].edad);
}
void guardarcambios()
{
FILE *fp;
fp = fopen ("proyectofinal.txt", "w" );
for(i=0;i<nn;i++)
{
if(a[i].estado!=1){
fprintf(fp,"%s\n",a[i].nombre);
fprintf(fp,"%d\n",a[i].edad);
}
}
fclose ( fp );
}
CORRIDA DEL PROGRAMA
Archivo guardado, se cerro el programa, se volvió abrir y se puso la opción de recuperar lo capturado(abrir el archivo).