/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Ejemplo de un programa en C, administración de Libros.

 
      Índice del Foro elrincondelc.com -> Windows
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
mollepla



Registrado: 01 Jun 2006
Mensajes: 64

MensajePublicado: 23/02/2012 3:09 pm
Título: Ejemplo de un programa en C, administración de Libros.

Hola
Os presento un exercio en C que hicimos en ASI, con el compilador ese TurBo C con la pantalla toda azul.




Es todo por memoria, tengo el mismo hecho con ficheros y que recuerde no me da error.

Parte que nos permite entrar libros como una biblioteca, mediante esta estructura:
CODIGO[10],TITULO[30],AUTOR[20],EDITORIAL[30],SITUACION[30];
int PRECIO;

y sale este menu para ir entrando,consultando,modificar y borrar.

1 para introducir un libro
2 para borrar un libro
3 para consultar un libro
4 para modificar un libro
5 para consultar una editorial
6 para consultar un autor

----

Espero que os sirva, aqui lo dejo:


Código:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct libro
{
char CODIGO[10],TITULO[30],AUTOR[20],EDITORIAL[30],SITUACION[30];
int PRECIO;
};
struct libro g[100];
int nr=0;



void introducir()
{
int rep=0,j=0;
char sn;
sn='s';

while(sn!='n')

  {

   do{
   clrscr();
   gotoxy(28,20);
   printf("Introduce el codigo del libro");
   gotoxy(58,20);
   scanf("%[^\n]",g[nr].CODIGO);
   fflush(stdin);

   rep=0;
   for(j=0;j<nr;j++)
     if (strcmp(g[j].CODIGO,g[nr].CODIGO)==0) rep=1;
   if(rep==1)
   {
   gotoxy(28,23);
   printf("El codigo introducido ya existe.Pulsa una tecla.");
   getch();
   }
    }while (rep!=0);
    fflush (stdin);

 gotoxy(28,21);
 printf("Introduce el titulo");
 gotoxy(48,21);
 scanf("%[^\n]",g[nr].TITULO);
 fflush(stdin);

 gotoxy(28,22);
 printf("Introduce el autor");
 gotoxy(47,22);
 scanf("%[^\n]",g[nr].AUTOR);
 fflush(stdin);

 gotoxy(28,23);
 printf("Introduce la editorial");
 gotoxy(51,23);
 scanf("%[^\n]",g[nr].EDITORIAL);
 fflush(stdin);

 gotoxy(28,24);
 printf("Introduce el precio ");
 gotoxy(48,24);
 scanf("%d",&g[nr].PRECIO);
 fflush(stdin);

 gotoxy(28,25);
 printf("Introduce la situacion");
 gotoxy(51,25);
 scanf("%[^\n]",g[nr].SITUACION);
 fflush(stdin);

 nr++;

gotoxy(28,28);
printf("Introducir otro:s/n");
gotoxy(48,28);
scanf("%c",&sn);
fflush(stdin);

}
getch();
}



void borrar()
{
int i=0,j=0;
char a[10];
clrscr();
gotoxy(28,20);
printf("Introduce el codigo del libro");
gotoxy(58,20);
scanf("%s",&a);
fflush(stdin);


while((strcmp(a,g[i].CODIGO)!=0)&& i<nr)
i++;
if(i==nr)
{
gotoxy(28,22);
printf("El libro no se ha encontrado");
getch();
}
else
{
for(j=i;j<nr-1;j++)
g[j]=g[j+1];
nr--;

gotoxy(28,22);
printf("El libro se ha borrado");
getch();
}
}


void consultar()
{
int i=0;
char cod[10];
clrscr();
gotoxy(28,20);
printf("Introduce el codigo del libro");
gotoxy(58,20);
scanf ("%s",cod);
fflush(stdin);

while (strcmp(cod,g[i].CODIGO)!=0 && i<nr)

i++;

gotoxy(28,24);
if(i==nr)
{
printf("El codigo no se ha encontrado");
}
else
{
gotoxy(28,25);
printf ("el codigo es %s",g[i].CODIGO);
gotoxy(28,26);
printf ("el titulo es %s",g[i].TITULO);
gotoxy(28,27);
printf ("el autor es %s",g[i].AUTOR);
gotoxy(28,28);
printf ("la editorial es %s",g[i].EDITORIAL);
gotoxy(28,29);
printf ("el precio es %d",g[i].PRECIO);
gotoxy(28,30);
printf ("la situacion es %s",g[i].SITUACION);
}
getch();
}



void modificar()
{
char cod[10];
int i=0;

clrscr();

gotoxy(28,20);
printf("Introduce el codigo del libro");
gotoxy(58,20);
scanf("%s",cod);

while (strcmp(cod,g[i].CODIGO)!=0 && i<nr)
i++;

if (i==nr)
{
 gotoxy(28,22);
 printf("El codigo no se ha encontrado");

}

else
{
  fflush(stdin);

  gotoxy(28,25);
  printf("Introduce el titulo del libro");
  gotoxy(58,25);
  scanf ("%[^\n]",g[i].TITULO);
  fflush(stdin);

  gotoxy(28,26);
  printf("introduce el nombre del autor");
  gotoxy(58,26);
  scanf ("%[^\n]",g[i].AUTOR);
  fflush(stdin);

  gotoxy(28,27);
  printf("Introduce la editorial");
  gotoxy(51,27);
  scanf ("%[^\n]",g[i].EDITORIAL);
  fflush(stdin);

  gotoxy(28,28);
  printf ("Introduce el precio");
  gotoxy(48,28);
  scanf  ("%d",&g[i].PRECIO);
  fflush (stdin);

  gotoxy(28,29);
  printf ("Introduce su situacion");
  gotoxy(51,29);
  scanf  ("%[^\n]",g[i].SITUACION);
  fflush (stdin);

}

getch();
}




void editorial()
{
int i=0,j=0,f=0;
char cod[30];
clrscr();
gotoxy(28,20);
printf("Introduce la editorial");
gotoxy(51,20);
scanf("%s",&cod);

for (i=0;i<nr;i++)
{

if(strcmp(cod,g[i].EDITORIAL)==0)

{
 gotoxy(28,22+(f++));
printf("La editorial tiene el libro %s",g[i].TITULO);

}
else
j++;
}
if(j==nr)
{
gotoxy(28,22);
printf("La editorial no se ha encontrado");
}
getch();
}



void autor()
{
int i=0,j=0,f=0;
char cod[20];
clrscr();
gotoxy(28,20);
printf("Introduce el autor");
gotoxy(47,20);
scanf("%s",&cod);

for (i=0;i<nr;i++)
{

if(strcmp(cod,g[i].AUTOR)==0)

{
gotoxy(28,22+(f++));
printf("El autor tiene el libro %s",g[i].TITULO);

}
else
j++;
}
if(j==nr)
{
gotoxy(28,22);
printf("El autor no se ha encontrado");
}
getch();
}



void main ()
{
int menu;
do{
clrscr();
gotoxy(38,16);
printf("Menu");
gotoxy(28,20);
printf("1 para introducir un libro");
gotoxy(28,22);
printf("2 para borrar un libro");
gotoxy(28,24);
printf("3 para consultar un libro");
gotoxy(28,26);
printf("4 para modificar un libro");
gotoxy(28,28);
printf("5 para consultar una editorial");
gotoxy(28,30);
printf("6 para consultar un autor");
gotoxy(28,32);
printf("7 para salir");
gotoxy(28,34);
printf("Opcion:");
scanf("%d",&menu);
fflush(stdin);

if(menu==1)
introducir();
if(menu==2)
borrar();
if(menu==3)
consultar();
if(menu==4)
modificar();
if(menu==5)
editorial();
if(menu==6)
autor();
}while(menu!=7);

getch();
}


Ultima edición por mollepla el 27/09/2012 3:45 am; editado 1 vez
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7517
Ubicación: Mexico

MensajePublicado: 23/02/2012 3:54 pm
Título:

Un problema con el programa es el uso excesivo de la biblioteca conio de Borland mas otros "detallitos" como "fflush(stdin)". Muevo el tema al foro sobre MS Windows.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
      Índice del Foro elrincondelc.com -> Windows
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com