Hola a todos, soy nuevo por estos rumbos xD , bueno, a mi me gusta mucho la programacion, y algun dia poder ser uno de los mejoer (sueños vagos) y e estado practicando, pero si me a costado mucho trabajo, y la verdad me tope con un programa que, no me sale :(
Aun no comprendo bien la estructura de c++ y actualmente tomo cursos, solo queria que me dieran una pequeña ayuda, para ver en que estoy fallando y poder mejorar.
Bueno, mi programa se supone debe hacer lo siguiente:
Realizar un programa que contenga un menu:
1.Registrar libros
2.Consulta
3.Salir
en el numero 1 se debera poder registrar libros
(materia, autor, editorial y precio )
regresar al menu presionando cualquier tecla
en el 2 consultar los libros que se registraron por materia
y el valor de ellos de la materia escogida
y 3 salir
Y bueno, esto es lo que llevo, pero esta muy mal :(
Código:
#include <stdio.h>
#include <stdlib.h>
struct Datos{
int iD,precio;
char nombre[30];};
int main(void) {
int opcion;struct Datos libro;
FILE *f;
do{
system("cls");
printf("MENU.\n");
printf("1 - Registrar libros.\n");
printf("2 - Consultar libros.\n");
printf("3 - Salir.\n");
printf("Ingrese una opcion[1-3]: ");
scanf("%d",&opcion);
system("cls");
switch(opcion){
case 1: printf("Ingrese la materia: ");
scanf("%d",&libro.iD);
printf("\nIngrese autor: ");
fflush(stdin);
gets(libro.nombre);
printf("\nIngrese el precio: ");
scanf("%d",&libro.precio);
f=fopen("C:\\alums.dat","a");
fwrite(&libro,sizeof(Datos),1,f);
fclose(f);
printf("\nDatos agregados correctamente.\n");
system("pause");
break;
case 2: if((f=fopen("C:\\libro.dat","r"))==NULL)
printf("Error.\nNo hay datos agregados.\n");
else{
while(fread(&libro,sizeof(Datos),1,f)
!=NULL){
printf("Materia: %d",libro.iD);
printf("\nAutor: %s",libro.nombre);
printf("\nPrecio:%d\n--------------\n",libro.precio);}
fclose(f);}
system("pause");
break;}
}while(opcion!=3);
return 0;}
Agradeceria mucho si alguien me pudiera ayudar, para ver en que estoy mal, o que me falta, muchas gracias de antemano :)