Arquitectura de Compadoras
  LECTURA Y ESCRITURA DE MEMORIARAM
 

LECTURA Y ESCRITURA DE LA MEMORIA RAM

 




Realizamos un programa en el cual realizaba las operaciones basicas de Lectura y escritura de datos en la memoria Ram. Este programa almacenaba los datos en los archivos que se creaban al generar el programa, para despues poder realizar algunas modificaciones de datos.

CODIGO DEL PROGRAMA

#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
#include "string.h"
#include "dos.h"
#define g gotoxy
char *capturar(int longitud, int tipo); //FUNCION DE VALIDACION( CUANDO SE QUIERE QUE SE DIGITE LO QUE ES)
void iniciar();
void adicionar();
void listar();
void eliminar();
void ordenar();
void modificar();
void load(); //EMULA UNA BARRA DE PROGRESO
struct libro
{
int cod;
char tit[30],aut[30],edi[30],gen[30],fec[30];
};
libro **bib=NULL;libro **aux=NULL; //libro **aux2=NULL; DECLARACION DE PUNTEROS
int tam=0; //VARIABLE QUE ME DETERMINA EL NUMERO DE LIBROS
void main()
{ clrscr();
window(1,1,80,25);textbackground(1);clrscr();window(3,2,78,24);
textbackground(0);textcolor(15);clrscr();
char op;
do{ //CREACION DEL MENU
g(60,23);textcolor(BLINK+RED);cputs("'ESC' PARA SALIR");
textattr(30);
gotoxy(28,8);
cprintf("Menu Principaln");
gotoxy(28,9);
textattr(14);
cprintf("1");
textattr(7);
cprintf(" - ADICIONARn");
gotoxy(28,10);
textattr(14);
cprintf("2");
textattr(7);
cprintf(" - LISTADOSn");
gotoxy(28,11);
textattr(14);
cprintf("3");
textattr(7);
cprintf(" - ELIMINARn");
gotoxy(28,12);
textattr(14);
cprintf("4");
textattr(7);
cprintf(" - ORDENARn");
gotoxy(28,13);
textattr(14);
cprintf("5");
textattr(7);
cprintf(" - MODIFICAR");
gotoxy(28,15);
textattr(15);
cprintf("Opcion");
cprintf("[ ]bb");
op=getch();
switch(op)
{
case '1':
clrscr();
adicionar( );
break;
case '2':
clrscr();
listar( );
break;
case '3':
clrscr();
eliminar( );
break;
case '4':
clrscr();
ordenar( );
break;
case '5':
clrscr();
modificar();
}
} while (op!=27);
if(bib) bib=NULL; delete bib;
if (aux) aux=NULL; delete aux;
}
void iniciar() //PIDO MEMORIA
{
bib =new libro*[tam];
}
void adicionar() //FUNCION PARA ADICIONAR LIBROS
{
clrscr();
if(tam==0){iniciar(); bib[tam]=new libro;}
else
{
aux =new libro*[tam+1];
aux[tam]=new libro;
for(int i=0;i {aux[i]=bib[i];
}
if(bib) bib=NULL; delete bib;
bib=aux;
aux=NULL; delete aux;
}
clrscr();
g(4,4);cout<<"CODIGO: ";int w=atoi(capturar(30,0));bib[tam]->cod=w;
g(4,5);cout<<"TITULO: ";strcpy(bib[tam]->tit,capturar(30,1));
g(4,6);cout<<"AUTOR : ";strcpy(bib[tam]->aut,capturar(30,1));
g(4,7);cout<<"EDITORIAL: ";strcpy(bib[tam]->edi,capturar(30,1));
g(4,8);cout<<"GENERO: ";strcpy(bib[tam]->gen,capturar(30,1));
g(4,9);cout<<"FECHA : ";strcpy(bib[tam]->fec,capturar(30,2));tam++; clrscr();
}
void listar() //FUNCION PARA LISTAR LOS LIBROS
{
clrscr();int y=2;
for(int i=0;i{if(bib[i])
{
g(1,1);textcolor(GREEN);cputs("CODIGO TITULO AUTOR EDITORIAL GENERO FECHA ");
g(1,y);cout<cod;
g(8,y);cout<tit;
g(25,y);cout<aut;
g(41,y);cout<edi;
g(56,y);cout<gen;
g(66,y);cout<fec;
y++;
}
}
getch();
clrscr();
}
void eliminar() //FUNCION QUE ELIMINA LIBROS
{clrscr();int AUX;
g(4,4);puts("CD0049GO: ");g(14,4);int z=atoi(capturar(30,0));AUX=z;
for(int i=0;icod;i++);
if(i==tam){
g(4,20);puts("NO EXISTE EL CODIGO;");
getch();clrscr();}
else
{ bib[i]=NULL;g(4,20);puts("LIBRO ELIMINADO"); getch();
aux=new libro*[tam-1]; clrscr();
aux[tam]=new libro;
for(int i=0,j=0;i{if(bib[i]){aux[j]=bib[i];j++;}
}
if(bib) {bib=NULL;delete bib;}
bib=aux;getch();tam=j;
}
}
void ordenar() //FUNCION QUE ORDENA LOS LIBROS POR AUTOR
{libro *aux2;
int com=0,i;
if(tam!=0)
{
for(int i=0;i{for(int j=i;j{com=strcmp(bib[j]->aut,bib[i]->aut);
if(com<0)
{aux2=bib[i];
bib[i]=bib[j];
bib[j]=aux2;
}
}
}
load();clrscr();//g(4,20);puts("DATOS ORDENADOS ...");getch();clrscr();
}
else{g(4,20);puts("NO HAY DATOS"); getch();clrscr();}
}
void modificar() //FUNCION PARA MODIFICAR DATOS DE LOS LIBROS EXCEPTO CODIGO
{
clrscr();
int auz;
g(4,3);puts("CD0049GO:");g(12,3);int x=atoi(capturar(30,0));auz=x; g(4,3); clreol();
for(int i=0;icod;i++);
if(i==tam){g(4,20);puts("NO EXISTE EL CODIGO;");getch();clrscr(); }
else
{
g(4,4);cout<<"CODIGO: ";cout<cod;
g(4,5);cout<<"TITULO: ";cout<tit;
g(4,6);cout<<"AUTOR : ";cout<aut;
g(4,7);cout<<"EDITORIAL:";cout<edi;
g(4,8);cout<<"GENERO: ";cout<gen;
g(4,9);cout<<"FECHA : ";cout<fec;
g(25,15);puts("Qu‚ dato desea modificar?");
g(60,23);textcolor(BLINK+RED);cputs("0 PARA SALIR");
g(4,16);cout<<"1 - TITULO ";
g(4,17);cout<<"2 - AUTOR ";
g(4,18);cout<<"3 - EDITORIAL";
g(4,19);cout<<"4 - GENERO ";
g(4,20);cout<<"5 - FECHA ";
g(4,23);printf("Opcion");
printf("[ ]bb");
char op2=getch(); char aus[30];
switch(op2)
{
case '1':
clrscr();
g(4,4);puts("NUEVO TTULO:");g(15,4);strcpy(aus,capturar(30,1));
strcpy(bib[i]->tit,aus);
break;
case '2':
clrscr();
g(4,4);puts("NUEVO AUTOR:");g(18,4);strcpy(aus,capturar(30,1));
strcpy(bib[i]->aut,aus);
break;
case '3':
clrscr();
g(4,4);puts("NUEVO EDITORIAL:");g(20,4);strcpy(aus,capturar(30,1));
strcpy(bib[i]->edi,aus);
break;
case '4':
clrscr();
g(4,4);puts("NUEVO GENERO:");g(18,4);strcpy(aus,capturar(30,1));
strcpy(bib[i]->gen,aus);
break;
case '5':
clrscr();
g(4,4);puts("NUEVA FECHA:");g(18,4);strcpy(aus,capturar(30,2));
strcpy(bib[i]->fec,aus);
break;
}
clrscr();
}
}
//FUNCION DE VALIDACION
char *capturar(int longitud,int tipo)//tipo 0=NUMEROS,1=LETRAS,2=NUMEROS Y LETRAS Y (-)
{
char aux[81],i=0;
unsigned char tecla;
while(tecla!=13)
{ tecla=getch();
if(tecla==8)
{ if( i>0)
{ gotoxy(wherex()-1,wherey());
cout<<" ";
gotoxy(wherex()-1,wherey());
i--;
}
}
if(tecla==0) getch();
else
{ if(i{switch(tipo)
{case 1: if ((tecla>='A'&& tecla<='Z') || (tecla>='a' && tecla<='z') || (tecla==' ')) {
cout< aux[i++]=tecla;
}
break;
case 2: if ((tecla>='0'&& tecla<='9') || (tecla>='A'&& tecla<='Z') || (tecla>='a' && tecla<='z') || (tecla==' ') || (tecla=='-'))
{ cout< aux[i++]=tecla;
}
break;
case 0: if((tecla>='0'&& tecla<='9'))
{cout< aux[i++]=tecla;
}
break;
}//switch
}//if
}//else
}//while
aux[i]=0;
cout<<"n";
return aux;
}
void load()
{
textbackground(BLACK);
clrscr();
int p=-3,x;
textcolor(RED);g(26,5);cprintf(" ORDENANDO ...");
gotoxy(16,6);cprintf("0%

 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis