[C] Baza danych książek

Agniezcka
Użytkownik
Użytkownik
Posty: 153
Rejestracja: 15 kwie 2012, o 19:40
Płeć: Kobieta
Lokalizacja: Kraków
Podziękował: 12 razy
Pomógł: 2 razy

[C] Baza danych książek

Post autor: Agniezcka »

Proszę o pomoc przy programie, który ma zadanie umozliwiać wprowadzenie danych o maksymalnie 10 książkach. Można wyświetlać informacje o dowolnie wybranej książce i dowolnie je usuwać. Oto co udało mi się zrobić(można wprowadzić dokladnie 10 książek). Z góry mówię, że dopiero zaczynam naukę programowania.

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>

typedef struct
  {
          char tytul[40];  
          char autor[30]; 
          int rok_wyd; 
          char gatunek[20];
          int ocena;
          } book;
          
      void wypisz(book w)
  {
       printf("Tytul           %s\n", w.tytul);
       printf("Autor:          %s\n", w.autor);
       printf("Rok wydania:    %d\n", w.rok_wyd);
       printf("Gatunek:        %s\n", w.gatunek);
       printf("Ocena:          %d\n", w.ocena);
  }
     
     book zapisz()
     {
          book z;
          printf("Podaj tytul ksiazki.\n");
          gets(z.tytul); 
          printf("Podaj autora.\n");
          gets(z.autor);
          printf("Podaj rok wydania.\n");
          scanf("%d", &z.rok_wyd);
          getchar();
          printf("Podaj gatunek\n");
          gets(z.gatunek);
          printf("Ocen ksiazke od 1 do 5\n");
          scanf("%d", &z.ocena);
          getchar();
          return z; 
          }  
          
int main(int argc, char *argv[])
{
int klawisz;      
int i=0;

char tyt[11];
char aut[11];
int rok[11];
char gat[11];
int oc[11]; 

for(i=0; i<10; i++)  
 {  do
   {
     printf("Podaj podstawowe informacje o ksiazce.\n");
     book a;
        
          tyt[i]=&tytul; 
          aut[i]=&autor;
          rok[i]=&rok_wyd;
          gat[i]=&gatunek;
          oc[i]=&ocena;                                                
            
     FILE *do_zapisu;
     do_zapisu=fopen("Ksiazki","w");
     a=zapisz();
     fwrite(&a, sizeof(book), 1, do_zapisu);//zapis na dysk
     fclose(do_zapisu);
     
     FILE*do_wczytania;
     do_wczytania=fopen("Ksiazki","r");
     fread(&a, sizeof(book), 1, do_wczytania);
     fclose(do_wczytania);
     wypisz(a);
                 
     printf("Kontynuowac? <y,n>\n");
     klawisz=getch();
   }
   while(klawisz=='y'||'Y');
   printf("Zakonczyles wypisywanie informacji o ksiazkach\n");
                                

}
printf("Maksymalna liczba ksiazek jakie mozesz przechowac wynosi 10. Niestety wykorzystales juz limit.\n");            
                    
  
    
  system("PAUSE");	
  return 0;
}
Ostatnio zmieniony 5 maja 2012, o 19:08 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Stosuj tagi [code].
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Baza danych książek

Post autor: Afish »

A jakieś pytanie?
Agniezcka
Użytkownik
Użytkownik
Posty: 153
Rejestracja: 15 kwie 2012, o 19:40
Płeć: Kobieta
Lokalizacja: Kraków
Podziękował: 12 razy
Pomógł: 2 razy

[C] Baza danych książek

Post autor: Agniezcka »

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct
  {
          char tytul[40];  
          char autor[30]; 
          int rok_wyd; 
          char gatunek[20];
          int ocena;
          } book;
          
      void wypisz(book w)
  {
       printf("Tytul           %s\n", w.tytul);
       printf("Autor:          %s\n", w.autor);
       printf("Rok wydania:    %d\n", w.rok_wyd);
       printf("Gatunek:        %s\n", w.gatunek);
       printf("Ocena:          %d\n", w.ocena);
  }
     
     book zapisz()
     {
          book z;
          printf("Podaj tytul ksiazki.\n");
          gets(z.tytul); 
          printf("Podaj autora.\n");
          gets(z.autor);
          printf("Podaj rok wydania.\n");
          scanf("%d", &z.rok_wyd);
          getchar();
          printf("Podaj gatunek\n");
          gets(z.gatunek);
          printf("Ocen ksiazke od 1 do 5\n");
          scanf("%d", &z.ocena);
          getchar();
          return z; 
          }  
          
int main(int argc, char *argv[])
{
char klawisz;      
int i=0;

char tyt[11];
char aut[11];
int rok[11];
char gat[11];
int oc[11]; 

for(i=0; i<10; i++)  
{    printf("%d\n",i+1);//numer ksiazki
     printf("Podaj podstawowe informacje o ksiazce.\n");
     book a;
        
         /* tyt[i]=&tytul; 
          aut[i]=&autor;
          rok[i]=&rok_wyd;
          gat[i]=&gatunek;
          oc[i]=&ocena; */                                               
            
     FILE *do_zapisu;
     do_zapisu=fopen("Ksiazki","w");
     a=zapisz();
     fwrite(&a, sizeof(book), 1, do_zapisu);//zapis na dysk
     fclose(do_zapisu);
     
     FILE*do_wczytania;
     do_wczytania=fopen("Ksiazki","r");
     fread(&a, sizeof(book), 1, do_wczytania);
     fclose(do_wczytania);
     wypisz(a);
                 
     printf("Kontynuowac? <y,n>\n");
     klawisz=getch();
     if((klawisz=='n')||(klawisz=='N'))
       {
        printf("Zakonczyles wypisywanie informacji o ksiazkach\n");
        break;
        }                 
}   
if(i==10)
printf("Maksymalna liczba ksiazek jakie mozesz przechowac wynosi 10. Niestety wykorzystales juz limit.\n");            
/*
//wyswietlanie dowolnej ksiazki
printf("Czy chcesz wyswietlic informacje o dowolnej ksiazce? <y,n>\n");
int klawisz2;
klawisz2=getch();
if((klawisz=='y')||(klawisz=='Y'))
{
    int t;
    printf("Podaj liczbe od 1 do 10 oznaczajaca numer wpisywanej ksiazki\n");
    switch (t)
    {
           case'1':printf();
           system("Pause");break;
           case'2':printf();
           system("Pause");break;
           case'3':printf();
           system("Pause");break;
           case'4':printf();
           system("Pause");break;
           case'5':printf();
           system("Pause");break;
           case'6':printf();
           system("Pause");break;
           case'7':printf();
           system("Pause");break;
           case'8':printf();
           system("Pause");break;
           case'9':printf();
           system("Pause");break;
           case'10':printf();
           system("Pause");break;
           default:
                   printf("Podales zla liczbe, nie masz tylu ksiazek\n");
    }
}
else
printf("Nie wyraziles zgody na wyswietlenie informacji o ksiazce");
  */         
  system("PAUSE");	
  return 0;
}
Tyle udalo mi się dorobić. Nie wiem jak przypisać dane do tablicy.
ODPOWIEDZ