Trabajo final de C consejoss
Publicado por xar (1 intervención) el 04/06/2006 21:57:33
Hola soy nuevo. :D
Hola, tengo un trabajo final de C para el dia 12,
El exercicio es:
Tenemos que gestionar el volumen de libros de una librería.
Campos:
CODI_LLIBRE char[10]
TITOL char[10]
AUTOR char [30]
Editorial char[15]
Preu int
El menú preguntara:
1 Alta de libros
2 Baja de libros
3 Consulta
Consulta por codi
Consulta por editorial
Consulta por posicio de registre (creo que se utiliza el fseek)
Consulta por autor
4 listado de llibos
5 salir
Yo del año pasado tengo este que se parece pero sin ficheros.
[quote]
#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,2;
printf("Introducir otro:s/n");
gotoxy(48,2;
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,2;
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,2;
printf ("Introduce el precio");
gotoxy(48,2;
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,2;
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();
}[/quote]
Es buena base? Como tendria que modificarlo ¿
Hola, tengo un trabajo final de C para el dia 12,
El exercicio es:
Tenemos que gestionar el volumen de libros de una librería.
Campos:
CODI_LLIBRE char[10]
TITOL char[10]
AUTOR char [30]
Editorial char[15]
Preu int
El menú preguntara:
1 Alta de libros
2 Baja de libros
3 Consulta
Consulta por codi
Consulta por editorial
Consulta por posicio de registre (creo que se utiliza el fseek)
Consulta por autor
4 listado de llibos
5 salir
Yo del año pasado tengo este que se parece pero sin ficheros.
[quote]
#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,2;
printf("Introducir otro:s/n");
gotoxy(48,2;
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,2;
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,2;
printf ("Introduce el precio");
gotoxy(48,2;
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,2;
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();
}[/quote]
Es buena base? Como tendria que modificarlo ¿
Valora esta pregunta


0