Anda di halaman 1dari 9

TEMA 13

MANEJO DE ARCHIVOS

Se solicita realizar un programa que permita el ingreso de los siguientes datos:

Codigo
Nombre
Apellido
Edad
Promedio.

El programa deber contar con un men con las siguientes opciones:

Crear archivo .txt


Almacenar datos
Consultar datos por cdigo
Eliminar datos por cdigo
Modificar datos por cdigo.
Salir.

Cdigo en c++

#include <iostream>
#include <conio>
#include <stdlib>
#include <iomanip>
#include <stdio>
int op;
int crear();
int escribir();
int consultar();
int modificar();
int elimnar();
int menu(){

cout<<" MENU";
cout<<endl;
cout<<" 1 crear archivo de texto"<<endl;
cout<<" 2 almacenar datos"<<endl;
cout<<" 3 consultar datos"<<endl;
cout<<" 4 modificar datos"<<endl;
cout<<" 5 eliminar datos "<<endl;
cout<<" 6 salir del programa"<<endl;
cin>>(op);
switch(op)
{
case 1:
crear();
break;

case 2:
escribir();
break;

case 3:
consultar();
break;

case 4:
modificar();
break;

case 5:
elimnar();
break;

case 6:
cout<<" eligio salir "<<endl;
break;

default:
cout<<" esta opcion no esta disponible";
cout<<endl;
menu();
}}
struct{
int matricula;
char nombre [30],apellido[30];
int edad,codigo,promedio;
}alumno;
int clave;

int crear(){
FILE*archdisco;
archdisco=fopen("estudiante.txt","w");
fclose(archdisco);
cout<<"archivo de texto creado";
cout<<endl;
menu();}

int escribir(){
cout<<" ingrese codigo; "<<endl;
cin>>alumno.codigo;
cout<<" ingrese nombre; "<<endl;
cin>>alumno.nombre;
cout<<" ingrese apellido; "<<endl;
cin>>alumno.apellido;
cout<<" dame edad; "<<endl;
cin>>alumno.edad;
cout<<" ingrese promedio; "<<endl;
cin>>alumno.promedio;

FILE*archdisco;
archdisco=fopen("estudiante.txt","at+");
fwrite(&alumno,sizeof(alumno),1,archdisco);
fclose(archdisco);
cout<<" insertado"<<endl;;
menu();}

int consultar(){
cout<<" ingrese codigo para consultar: "<<endl;
cin>>clave;

FILE*archdisco;
archdisco=fopen("estudiante.txt","at+");

while(fread(&alumno,sizeof(alumno),1,archdisco)==1)
{
if(clave==alumno.codigo)
{
cout<<" codigo: "<<alumno.codigo;
cout<<" nombre: "<<alumno.nombre;
cout<<" apellido: "<<alumno.apellido;
cout<<" edad: "<<alumno.edad;
cout<<" promedio: "<<alumno.promedio;
cout<<"\n";
};};

fclose(archdisco);
cout<<endl;
menu();}

int modificar(){
cout<<" ingrese codigo a editar: "<<endl;
cin>>clave;
FILE*arch1;
FILE*arch2;
arch1=fopen("estudiante.txt","r+");
arch2=fopen("temporal.txt","at+");

while(fread(&alumno,sizeof(alumno),1,arch1)==1)
{
if(clave==alumno.codigo){
cout<<" ingrese nuevo nombre: "<<endl;
cin>>alumno.nombre;
cout<<" ingrese nuevo apellido: "<<endl;
cin>>alumno.apellido;
cout<<" ingrese promeio: "<<endl;
cin>>alumno.promedio;
cout<<"\n";
cout<<"\n";
fwrite(&alumno,sizeof(alumno),1,arch2);
}

};
fclose(arch1);
fclose(arch2);

remove("ESTUDIANTE.txt");
rename("TEMPORAL.txt","ESTUDIANTE.txt");
cout<<"registro editado";
getch();
cout<<endl;
menu();
}

int elimnar(){
cout<<" ingrese clave a eliminar: "<<endl;
cin>>clave;
FILE*arch1;
FILE*arch2;
arch1=fopen("estudiante.txt","r+");
arch2=fopen("temporal.txt","at+");

while(fread(&alumno,sizeof(alumno),1,arch1)==1)
{
if(clave!=alumno.matricula)
fwrite(&alumno,sizeof(alumno),1,arch2);
};
fclose(arch1);
fclose(arch2);

remove("ESTUDIANTE.txt");
rename("TEMPORAL.txt","ESTUDIANTE.txt");
cout<<"registro eliminado";
getch();
cout<<endl;
menu();
}

int main(){
menu();
getch();
}

Se requiere realice un programa una agenda telefnica que almacene los


datos en un archivo de texto y permita consultar, modificar y eliminar
informacin. Todas la ocio es deben estar contenidas en un men.

Cdigo c++

#include <iostream>
#include <conio>
#include <stdlib>
#include <iomanip>
#include <stdio>
int op;
int crear();
int escribir();
int consultar();
int modificar();
int elimnar();
int menu(){

cout<<" MENU DE AGENDA TELEFONICA";


cout<<endl;
cout<<" 1 crear archivo de texto"<<endl;
cout<<" 2 almacenar datos"<<endl;
cout<<" 3 consultar datos"<<endl;
cout<<" 4 modificar datos"<<endl;
cout<<" 5 eliminar datos "<<endl;
cout<<" 6 salir del programa"<<endl;
cin>>(op);

switch(op)
{
case 1:
crear();
break;

case 2:
escribir();
break;

case 3:
consultar();
break;

case 4:
modificar();
break;

case 5:
elimnar();
break;

case 6:
cout<<" eligio salir "<<endl;
break;

default:
cout<<" esta opcion no esta disponible";
cout<<endl;
menu();
}}
struct{
int matricula;
char nombre [30],apellido[30],telefono[25];
int edad,codigo,promedio;
}agenda;
int clave;
int c;
int crear(){
FILE*archdisco;
archdisco=fopen("agenda.txt","w");
fclose(archdisco);
cout<<"archivo de agenda creado";
cout<<endl;
menu();}

int escribir(){
cout<<" escribir el numero de agenda: "<<endl;
cin>>c;
for(int a=1; a<=c; a++){
cout<<" ingrese codigo; "<<endl;
cin>>agenda.codigo;
cout<<" ingrese nombre; "<<endl;
cin>>agenda.nombre;
cout<<" ingrese apellido; "<<endl;
cin>>agenda.apellido;
cout<<" ingrese numero de telefono; "<<endl;
cin>>agenda.telefono;

FILE*archdisco;
archdisco=fopen("agenda.txt","at+");
fwrite(&agenda,sizeof(agenda),1,archdisco);
fclose(archdisco);
cout<<" se ha insertado un nuevo contacto"<<endl;}
menu();}

int consultar(){
cout<<" ingrese codigo para consultar: "<<endl;
cin>>clave;

FILE*archdisco;
archdisco=fopen("agenda.txt","at+");

while(fread(&agenda,sizeof(agenda),1,archdisco)==1)
{
if(clave==agenda.codigo)
{
cout<<" codigo: "<<agenda.codigo;
cout<<" nombre: "<<agenda.nombre;
cout<<" apellido: "<<agenda.apellido;
cout<<" telefono: "<<agenda.telefono;
cout<<"\n";
};};

fclose(archdisco);
cout<<endl;
menu();}

int modificar(){
cout<<" ingrese codigo a editar: "<<endl;
cin>>clave;
FILE*arch1;
FILE*arch2;
arch1=fopen("agenda.txt","r+");
arch2=fopen("temporal.txt","at+");

while(fread(&agenda,sizeof(agenda),1,arch1)==1)
{
if(clave==agenda.codigo){
cout<<" codigo: "<<endl;
cin>>agenda.codigo;
cout<<" ingrese nuevo nombre: "<<endl;
cin>>agenda.nombre;
cout<<" ingrese nuevo apellido: "<<endl;
cin>>agenda.apellido;
cout<<" ingrese telefono: "<<endl;
cin>>agenda.telefono;
cout<<"\n";
fwrite(&agenda,sizeof(agenda),1,arch2);
}

};
fclose(arch1);
fclose(arch2);

remove("agenda.txt");
rename("temporal.txt","agenda.txt");
cout<<"registro editado";
getch();
cout<<endl;
menu();
}

int elimnar(){
cout<<" ingrese clave a eliminar: "<<endl;
cin>>clave;
FILE*arch1;
FILE*arch2;
arch1=fopen("agenda.txt","r+");
arch2=fopen("temporal.txt","at+");

while(fread(&agenda,sizeof(agenda),1,arch1)==1)
{
if(clave!=agenda.matricula)
fwrite(&agenda,sizeof(agenda),1,arch2);
};
fclose(arch1);
fclose(arch2);

remove("agenda.txt");
rename("temporal.txt","agenda.txt");
cout<<"registro eliminado";
getch();
cout<<endl;
menu();
}
int main(){
menu();
getch();
}

Anda mungkin juga menyukai