Está en la página 1de 4

Escuela Profesional de Ingeniería Electrónica y de Telecomunicaciones

Curso: Programación I
2020 – I

Grupo : IET. 1.1, IET 1.2


Fecha : 27 de junio de 2020
Profesor: Dra. Roxana Flores Quispe

Guía No 22 : Implementando una Base de Datos con


estructuras
Nota:
Alumno:
___________________________________________________

I. Objetivos
 Presentar al alumno la utilización del software ZINJAI para la programación en C++ con la
implementación de estructuras anidadas.

II. Equipos y materiales


Equipos y dispositivos:
 PC.
Software:
 ZinjaI.

III. Actividades

a) Utilizando el software ZinjaI, implemente el siguiente código, que define la


estructura alumno con sus campos nombre, código y promedio, además se tiene un
conjunto de subprogramas para mostrar una diversidad de funciones para manejar
los datos almacenados en la estructura; asi mismo los datos se leen y actualizan en
un fichero .

#include<iostream>
#include<fstream>
using namespace std;

const int ma=10;

struct alumno{
string nombre;
string codigo;
float promedio;
};
void leer(int c, alumno bd[ma])
{
cout<<"Ingrese nombre:" ; cin>>bd[c].nombre;
cout<<"Ingrese codigo:" ; cin>>bd[c].codigo;
cout<<"Ingrese promedio:" ; cin>>bd[c].promedio;
cout<<endl;
}
int cargar(ifstream &en, alumno C[])
{ int t;
en.open("d:\\temp\\datos.txt");
en>>t;
for(int i=0;i<t;i++)
{ en>> C[i].nombre;
en>> C[i].codigo;
en>> C[i].promedio;
}
en.close();
return t;
}

void grabar(ofstream &en, alumno C[], int t)


{
en.open("d:\\temp\\datos.txt");
en<<t<<endl;
for(int i=0;i<t;i++)
{ en<< C[i].nombre<<endl;
en<< C[i].codigo<<endl;
en<< C[i].promedio<<endl;
}
en.close();
}

void Mostrar(int c, alumno bd[ma])


{
for(int i=0; i<c;i++)
{
cout<<"Nombre:" ; cout<<bd[i].nombre<<endl;
cout<<"Codigo:" ; cout<<bd[i].codigo<<endl;
cout<<"Promedio:" ; cout<<bd[i].promedio<<endl;
cout<<endl;
}
}
void MostrarU(int c, alumno bd[ma])
{
cout<<"Nombre:" ; cout<<bd[c-1].nombre<<endl;
cout<<"Codigo:" ; cout<<bd[c-1].codigo<<endl;
cout<<"Promedio:" ; cout<<bd[c-1].promedio<<endl;
cout<<endl;

void Borrar(int r, int can, alumno bd[ma])


{
for(int i= r; i<can;i++)
{ bd[i-1].nombre=bd[i].nombre ;
bd[i-1].codigo=bd[i].codigo ;
bd[i-1].promedio=bd[i].promedio ;
}

void modificar(int r,alumno bd[ma])


{
cout<<"Ingrese nombre:" ; cin>>bd[r-1].nombre;
cout<<"Ingrese codigo:" ; cin>>bd[r-1].codigo;
cout<<"Ingrese promedio:" ; cin>>bd[r-1].promedio;
cout<<endl;
}

int menu()
{ int op;
cout<< "Ingrese la opcion:";
cout<<"(1)Agregar (2)Borrar (3)Modificar (4)Mostrar (5)Salir : ";
cout<<endl;
cin>>op;
return op;

int main(int argc, char *argv[]) {


ifstream en;
ofstream on;

alumno base[ma];
int cant=0;
int opt;
int reg;
string res;
cant=cargar(en,base);
cout<<"Cantidad actual de registros : " <<cant<<endl;
opt=menu();
while(opt!=5)
{
if(opt==1)
{ if(cant<ma)
{ leer(cant,base);
cant++;
}
else
cout<<"Base de datos llena"<<endl;
}
if(opt==2)
{ cout<<"Ingrese el numero de registro a borrar"; cin>>reg;
if(reg>=0 &&reg<=cant )
{ Borrar(reg, cant, base);
cant--;
}
else
cout<<"Registro no existe";
}
if(opt==3)
{cout<<"Ingrese el numero de registro a modificar"; cin>>reg;
if(reg<=cant)
{
modificar(reg,base);
}
else
{
cout<<"sin registro";
}
}

if(opt==4)
{cout<<"Desea mostrar todos los registros: ";cin>>res;
if(res=="si")
{Mostrar(cant,base);

}
else
{cout<<"Ingrese el numero de registro a mostrar"; cin>>reg;
MostrarU(reg,base);
}
}
opt=menu();
}
grabar(on,base,cant);
return 0;
}

IV. Resultados

El alumno comprende el uso y aplicación de las estructuras y sus aplicaciones.

También podría gustarte